|
@@ -14,15 +14,27 @@ import javax.swing.JCheckBox;
|
|
import javax.swing.LayoutStyle.ComponentPlacement;
|
|
import javax.swing.LayoutStyle.ComponentPlacement;
|
|
import java.awt.Color;
|
|
import java.awt.Color;
|
|
import javax.swing.SwingConstants;
|
|
import javax.swing.SwingConstants;
|
|
|
|
+
|
|
|
|
+import ui.controller.Control;
|
|
|
|
+import ui.model.Model;
|
|
|
|
+
|
|
import javax.swing.JComboBox;
|
|
import javax.swing.JComboBox;
|
|
|
|
+import javax.swing.JButton;
|
|
|
|
+import java.awt.event.ActionListener;
|
|
|
|
+import java.awt.event.ActionEvent;
|
|
|
|
|
|
public class StatisticPane extends JPanel{
|
|
public class StatisticPane extends JPanel{
|
|
private JScrollPane listScrollPane = new JScrollPane();
|
|
private JScrollPane listScrollPane = new JScrollPane();
|
|
private JList objectList;
|
|
private JList objectList;
|
|
- private DefaultListModel model = new DefaultListModel();
|
|
|
|
|
|
+ private DefaultListModel listModel = new DefaultListModel();
|
|
|
|
+ private Model model;
|
|
|
|
+ private Control controller;
|
|
|
|
+ private JPanel statGraph;
|
|
|
|
|
|
- public StatisticPane(){
|
|
|
|
- objectList = new JList(model);
|
|
|
|
|
|
+ public StatisticPane(Model m, Control c){
|
|
|
|
+ model = m;
|
|
|
|
+ controller = c;
|
|
|
|
+ objectList = new JList(listModel);
|
|
listScrollPane.setViewportView(objectList);
|
|
listScrollPane.setViewportView(objectList);
|
|
|
|
|
|
JLabel lblOverallStatistics = new JLabel("Overall Statistics:");
|
|
JLabel lblOverallStatistics = new JLabel("Overall Statistics:");
|
|
@@ -51,70 +63,96 @@ public class StatisticPane extends JPanel{
|
|
JLabel lblGraph = new JLabel(" Graph:");
|
|
JLabel lblGraph = new JLabel(" Graph:");
|
|
|
|
|
|
JComboBox comboBox = new JComboBox();
|
|
JComboBox comboBox = new JComboBox();
|
|
|
|
+
|
|
|
|
+ statGraph = new JPanel();
|
|
|
|
+
|
|
|
|
+ JButton btnRefresh = new JButton("Refresh");
|
|
|
|
+ btnRefresh.addActionListener(new ActionListener() {
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for(int i = 0; i < controller.getTrackingObj().size(); i++){
|
|
|
|
+ listModel.addElement(controller.getTrackingObj().get(i).getName() +
|
|
|
|
+ controller.getTrackingObj().get(i).getID());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
GroupLayout groupLayout = new GroupLayout(this);
|
|
GroupLayout groupLayout = new GroupLayout(this);
|
|
groupLayout.setHorizontalGroup(
|
|
groupLayout.setHorizontalGroup(
|
|
groupLayout.createParallelGroup(Alignment.LEADING)
|
|
groupLayout.createParallelGroup(Alignment.LEADING)
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addContainerGap()
|
|
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
|
- .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()
|
|
|
|
- .addGap(10)
|
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
|
|
|
+ .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()
|
|
|
|
+ .addGap(10)
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addGap(4)
|
|
|
|
+ .addComponent(lblName)
|
|
|
|
+ .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
|
+ .addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
|
|
|
|
+ .addComponent(checkBox_1, GroupLayout.PREFERRED_SIZE, 101, GroupLayout.PREFERRED_SIZE)
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
- .addGap(4)
|
|
|
|
- .addComponent(lblName)
|
|
|
|
|
|
+ .addComponent(lblGraph, GroupLayout.PREFERRED_SIZE, 54, GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(ComponentPlacement.RELATED)
|
|
.addPreferredGap(ComponentPlacement.RELATED)
|
|
- .addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
|
|
|
|
- .addComponent(checkBox_1, GroupLayout.PREFERRED_SIZE, 101, GroupLayout.PREFERRED_SIZE)
|
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
|
|
|
|
- .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
- .addComponent(lblGraph, GroupLayout.PREFERRED_SIZE, 54, GroupLayout.PREFERRED_SIZE)
|
|
|
|
- .addPreferredGap(ComponentPlacement.RELATED)
|
|
|
|
- .addComponent(comboBox, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
|
- .addComponent(checkBox, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)))))
|
|
|
|
|
|
+ .addComponent(comboBox, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
|
+ .addComponent(checkBox, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE))))
|
|
.addComponent(lblOverallStatistics, GroupLayout.PREFERRED_SIZE, 126, GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(lblOverallStatistics, GroupLayout.PREFERRED_SIZE, 126, GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE))
|
|
.addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE))
|
|
- .addContainerGap(263, Short.MAX_VALUE))
|
|
|
|
|
|
+ .addPreferredGap(ComponentPlacement.RELATED, 37, Short.MAX_VALUE)
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addComponent(btnRefresh)
|
|
|
|
+ .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
|
+ .addComponent(statGraph, Alignment.TRAILING, GroupLayout.PREFERRED_SIZE, 226, GroupLayout.PREFERRED_SIZE)))
|
|
);
|
|
);
|
|
groupLayout.setVerticalGroup(
|
|
groupLayout.setVerticalGroup(
|
|
groupLayout.createParallelGroup(Alignment.LEADING)
|
|
groupLayout.createParallelGroup(Alignment.LEADING)
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
.addGroup(groupLayout.createSequentialGroup()
|
|
- .addContainerGap()
|
|
|
|
- .addComponent(lblOverallStatistics)
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addComponent(chckbxNewCheckBox)
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addComponent(chckbxNewCheckBox_1)
|
|
|
|
- .addGap(18)
|
|
|
|
- .addComponent(lblObject)
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
|
- .addComponent(lblNewLabel)
|
|
|
|
- .addComponent(lblName))
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addComponent(checkBox)
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addComponent(checkBox_1)
|
|
|
|
- .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
|
- .addComponent(lblGraph)
|
|
|
|
- .addComponent(comboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
|
|
|
|
- .addGap(57)
|
|
|
|
- .addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
|
|
|
|
- .addContainerGap(23, Short.MAX_VALUE))
|
|
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addGap(17)
|
|
|
|
+ .addComponent(statGraph, GroupLayout.DEFAULT_SIZE, 156, Short.MAX_VALUE))
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addContainerGap()
|
|
|
|
+ .addComponent(lblOverallStatistics)
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addComponent(chckbxNewCheckBox)
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addComponent(chckbxNewCheckBox_1)
|
|
|
|
+ .addGap(18)
|
|
|
|
+ .addComponent(lblObject)
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
|
+ .addComponent(lblNewLabel)
|
|
|
|
+ .addComponent(lblName))
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addComponent(checkBox)))
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addComponent(checkBox_1)
|
|
|
|
+ .addPreferredGap(ComponentPlacement.UNRELATED)
|
|
|
|
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
|
|
|
|
+ .addComponent(lblGraph)
|
|
|
|
+ .addComponent(comboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
|
|
|
|
+ .addGap(57)
|
|
|
|
+ .addComponent(listScrollPane, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE))
|
|
|
|
+ .addGroup(groupLayout.createSequentialGroup()
|
|
|
|
+ .addGap(125)
|
|
|
|
+ .addComponent(btnRefresh)))
|
|
|
|
+ .addContainerGap(25, Short.MAX_VALUE))
|
|
);
|
|
);
|
|
setLayout(groupLayout);
|
|
setLayout(groupLayout);
|
|
-
|
|
|
|
- for(int i = 0; i < 20; i++){
|
|
|
|
- model.addElement(i*2000000000);
|
|
|
|
- }
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public void updateGraphs(){
|
|
|
|
+ statGraph.repaint();
|
|
|
|
+ }
|
|
}
|
|
}
|