123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- 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 JPanel statGraph1;
-
- 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 JPanel();
-
- JButton btnRefresh = new JButton("Refresh Tracked Objects");
- btnRefresh.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- refreshTrackedList();
- }
- });
-
-
- 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();
- }
- });
-
-
- 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){
-
- }
- }
- }
- public void updateGraphs(){
- statGraph1.repaint();
- }
- @Override
- public void repaintGraph() {
-
- statGraph1.repaint();
- }
- @Override
- public void addTrackedObject(ArrayList<HolonObject> hl) {
-
-
- }
- }
|