|
@@ -1,231 +0,0 @@
|
|
|
-package ui.view;
|
|
|
-
|
|
|
-import javax.swing.DefaultListModel;
|
|
|
-import javax.swing.JList;
|
|
|
-import javax.swing.JPanel;
|
|
|
-import javax.swing.JScrollPane;
|
|
|
-import java.awt.BorderLayout;
|
|
|
-import java.awt.FlowLayout;
|
|
|
-import javax.swing.GroupLayout;
|
|
|
-import javax.swing.GroupLayout.Alignment;
|
|
|
-import javax.swing.GroupLayout.Group;
|
|
|
-import javax.swing.JLabel;
|
|
|
-import java.awt.Font;
|
|
|
-import javax.swing.JCheckBox;
|
|
|
-import javax.swing.LayoutStyle.ComponentPlacement;
|
|
|
-import java.awt.Color;
|
|
|
-import javax.swing.SwingConstants;
|
|
|
-import javax.swing.event.ListSelectionEvent;
|
|
|
-import javax.swing.event.ListSelectionListener;
|
|
|
-
|
|
|
-import classes.HolonObject;
|
|
|
-import interfaces.GraphListener;
|
|
|
-import ui.controller.Control;
|
|
|
-import ui.model.Model;
|
|
|
-
|
|
|
-import javax.swing.JComboBox;
|
|
|
-import javax.swing.JButton;
|
|
|
-import java.awt.event.ActionListener;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.awt.event.ActionEvent;
|
|
|
-
|
|
|
-public class StatisticPane extends JPanel implements GraphListener{
|
|
|
- private JScrollPane listScrollPane = new JScrollPane();
|
|
|
- private JList objectList;
|
|
|
- private DefaultListModel listModel = new DefaultListModel();
|
|
|
- private Model model;
|
|
|
- private Control controller;
|
|
|
- //private StatisticGraph statGraph1;
|
|
|
- private JPanel statGraph1;
|
|
|
- //private StatisticGraph statGraph2;
|
|
|
- private JPanel statGraph2;
|
|
|
- private HashMap<String, HolonObject> objectHashMap = new HashMap<String, HolonObject>();
|
|
|
- private JLabel nameThreshHolder;
|
|
|
- private GroupLayout groupLayout;
|
|
|
-
|
|
|
-
|
|
|
- public StatisticPane(Model m, Control c){
|
|
|
- model = m;
|
|
|
- controller = c;
|
|
|
- objectList = new JList(listModel);
|
|
|
- listScrollPane.setViewportView(objectList);
|
|
|
-
|
|
|
- JLabel lblOverallStatistics = new JLabel("Overall Statistics:");
|
|
|
- lblOverallStatistics.setFont(new Font("Tahoma", Font.PLAIN, 13));
|
|
|
-
|
|
|
- JCheckBox chckbxNewCheckBox = new JCheckBox("total consumption");
|
|
|
- chckbxNewCheckBox.setForeground(Color.RED);
|
|
|
-
|
|
|
- JCheckBox chckbxNewCheckBox_1 = new JCheckBox("total production");
|
|
|
- chckbxNewCheckBox_1.setForeground(Color.BLUE);
|
|
|
-
|
|
|
- JLabel lblObject = new JLabel("Object:");
|
|
|
- lblObject.setFont(new Font("Tahoma", Font.PLAIN, 13));
|
|
|
-
|
|
|
- JLabel lblName = new JLabel("Name:");
|
|
|
-
|
|
|
- nameThreshHolder = new JLabel("...");
|
|
|
- nameThreshHolder.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
-
|
|
|
- JCheckBox checkBox = new JCheckBox("total consumption");
|
|
|
- checkBox.setForeground(Color.RED);
|
|
|
-
|
|
|
- JCheckBox checkBox_1 = new JCheckBox("total production");
|
|
|
- checkBox_1.setForeground(Color.BLUE);
|
|
|
-
|
|
|
- //statGraph1 = new StatisticGraph(model, controller);
|
|
|
- statGraph1 = new JPanel();
|
|
|
-
|
|
|
- JButton btnRefresh = new JButton("Refresh Tracked Objects");
|
|
|
- btnRefresh.addActionListener(new ActionListener() {
|
|
|
- public void actionPerformed(ActionEvent e) {
|
|
|
- refreshTrackedList();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- //statGraph2 = new StatisticGraph(model, controller);
|
|
|
- statGraph2 = new JPanel();
|
|
|
-
|
|
|
- JButton btnUntrack = new JButton("Untrack");
|
|
|
- btnUntrack.addActionListener(new ActionListener() {
|
|
|
- public void actionPerformed(ActionEvent e) {
|
|
|
- controller.getTrackingObj().remove(objectHashMap.get(nameThreshHolder.getText()));
|
|
|
- refreshTrackedList();
|
|
|
- nameThreshHolder.setText("...");
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- JButton btnAddGraph = new JButton("add Graph");
|
|
|
- btnAddGraph.addActionListener(new ActionListener() {
|
|
|
- public void actionPerformed(ActionEvent e) {
|
|
|
- JPanel tmp = new JPanel();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- /*
|
|
|
- Group gr = groupLayout.createParallelGroup();
|
|
|
- for(int i = 0; i < 4; i++){
|
|
|
- gr.addComponent(statGraph2, GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE);
|
|
|
- }
|
|
|
- */
|
|
|
- groupLayout = new GroupLayout(this);
|
|
|
- groupLayout.setHorizontalGroup(
|
|
|
- groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addContainerGap()
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGap(323))
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addGap(10)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(lblName)
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
- .addComponent(nameThreshHolder, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
|
|
|
- .addComponent(checkBox, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
|
|
|
- .addComponent(checkBox_1, GroupLayout.PREFERRED_SIZE, 101, GroupLayout.PREFERRED_SIZE)))
|
|
|
- .addComponent(lblOverallStatistics, GroupLayout.PREFERRED_SIZE, 126, GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addGap(10)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addComponent(chckbxNewCheckBox_1)
|
|
|
- .addComponent(chckbxNewCheckBox)))
|
|
|
- .addComponent(lblObject, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(btnUntrack)
|
|
|
- .addGap(18)
|
|
|
- .addComponent(btnAddGraph)))
|
|
|
- .addGap(125)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addComponent(statGraph2, GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE)
|
|
|
- .addComponent(statGraph1, GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE)))
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(btnRefresh)
|
|
|
- .addContainerGap(349, Short.MAX_VALUE)))))
|
|
|
- );
|
|
|
- groupLayout.setVerticalGroup(
|
|
|
- groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addGap(17)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(lblOverallStatistics)
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
- .addComponent(chckbxNewCheckBox)
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
- .addComponent(chckbxNewCheckBox_1))
|
|
|
- .addComponent(statGraph1, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE))
|
|
|
- .addGap(41)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
- .addComponent(lblObject)
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
- .addComponent(lblName)
|
|
|
- .addComponent(nameThreshHolder))
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
- .addComponent(checkBox)
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
- .addComponent(checkBox_1)
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
- .addComponent(btnUntrack)
|
|
|
- .addComponent(btnAddGraph))
|
|
|
- .addGap(30)
|
|
|
- .addComponent(btnRefresh)
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
- .addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED))
|
|
|
- .addComponent(statGraph2, GroupLayout.PREFERRED_SIZE, 122, GroupLayout.PREFERRED_SIZE))
|
|
|
- .addContainerGap(89, GroupLayout.PREFERRED_SIZE))
|
|
|
- );
|
|
|
- setLayout(groupLayout);
|
|
|
-
|
|
|
- objectList.addListSelectionListener(new ListSelectionListener(){
|
|
|
-
|
|
|
- @Override
|
|
|
- public void valueChanged(ListSelectionEvent arg0){
|
|
|
- if(objectList.getSelectedValue() != null){
|
|
|
- nameThreshHolder.setText(objectList.getSelectedValue().toString());
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public void refreshTrackedList(){
|
|
|
- listModel.removeAllElements();
|
|
|
- objectHashMap.clear();
|
|
|
- for(int i = 0; i < controller.getTrackingObj().size(); i++){
|
|
|
- String name = controller.getTrackingObj().get(i).getName() + " " +
|
|
|
- controller.getTrackingObj().get(i).getID();
|
|
|
-
|
|
|
- listModel.addElement(name);
|
|
|
- objectHashMap.put(name, controller.getTrackingObj().get(i));
|
|
|
- if(i < 8){
|
|
|
- //statGraph1.addObject(controller.getTrackingObj().get(i));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- public void updateGraphs(){
|
|
|
- statGraph1.repaint();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void repaintTree() {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- statGraph1.repaint();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addTrackedObject(ArrayList<HolonObject> hl) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
-
|
|
|
- }
|
|
|
-}
|