123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- package ui.view;
- import javax.swing.JSplitPane;
- import javax.swing.JScrollPane;
- import javax.swing.JPanel;
- import java.util.ArrayList;
- import javax.swing.GroupLayout;
- import javax.swing.GroupLayout.Alignment;
- import javax.swing.JLabel;
- import javax.swing.LayoutStyle.ComponentPlacement;
- import javax.swing.event.TreeSelectionEvent;
- import javax.swing.event.TreeSelectionListener;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.DefaultTreeModel;
- import javax.swing.tree.MutableTreeNode;
- import javax.swing.tree.TreeNode;
- import classes.HolonObject;
- import interfaces.GraphListener;
- import javax.swing.JTextField;
- import javax.swing.JComboBox;
- import javax.swing.JButton;
- import javax.swing.JTree;
- import java.awt.Color;
- public class splitPane extends JSplitPane implements GraphListener {
- private JTextField graphNrTxtField;
- private JTextField redField;
- private JTextField blueField;
- private JTextField greenField;
- private JTree objectTree;
- private DefaultTreeModel treeModel;
- DefaultMutableTreeNode objectsNode;
- DefaultMutableTreeNode wholeHolon;
- JLabel showObjectlbl;
- JLabel showPropertylbl;
- public splitPane() {
-
- JPanel panel = new JPanel();
- setLeftComponent(panel);
-
- JScrollPane treeScrollPane = new JScrollPane();
-
- JLabel lblObject = new JLabel("Object(s):");
-
- showObjectlbl = new JLabel("...");
-
- JLabel lblProperty = new JLabel("Property:");
-
- showPropertylbl = new JLabel("...");
-
- JLabel lblGraph = new JLabel("Graph:");
-
- graphNrTxtField = new JTextField();
- graphNrTxtField.setColumns(10);
-
- JLabel lblColor = new JLabel("Color:");
-
- JComboBox colorComboBox = new JComboBox();
-
- redField = new JTextField();
- redField.setColumns(10);
-
- blueField = new JTextField();
- blueField.setColumns(10);
-
- greenField = new JTextField();
- greenField.setColumns(10);
-
- JLabel lblR = new JLabel("R:");
-
- JLabel lblB = new JLabel("B:");
-
- JLabel lblG = new JLabel("G:");
-
- JButton btnAdd = new JButton("Add");
-
- JPanel colorPanel = new JPanel();
- colorPanel.setBackground(Color.GRAY);
- GroupLayout gl_panel = new GroupLayout(panel);
- gl_panel.setHorizontalGroup(
- gl_panel.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel.createSequentialGroup()
- .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel.createSequentialGroup()
- .addContainerGap()
- .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
- .addComponent(treeScrollPane, GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE)
- .addGroup(gl_panel.createSequentialGroup()
- .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
- .addComponent(lblGraph)
- .addComponent(lblObject)
- .addComponent(lblProperty)
- .addComponent(lblColor)
- .addGroup(gl_panel.createSequentialGroup()
- .addComponent(lblR)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(redField, GroupLayout.PREFERRED_SIZE, 37, GroupLayout.PREFERRED_SIZE)))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
- .addComponent(showObjectlbl, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(showPropertylbl, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(graphNrTxtField)
- .addComponent(colorComboBox, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(gl_panel.createSequentialGroup()
- .addComponent(lblB)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(blueField, GroupLayout.PREFERRED_SIZE, 37, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(lblG)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(greenField, GroupLayout.PREFERRED_SIZE, 37, GroupLayout.PREFERRED_SIZE))))
- .addComponent(colorPanel, Alignment.TRAILING, GroupLayout.PREFERRED_SIZE, 150, GroupLayout.PREFERRED_SIZE)))
- .addGroup(gl_panel.createSequentialGroup()
- .addGap(67)
- .addComponent(btnAdd)))
- .addContainerGap())
- );
- gl_panel.setVerticalGroup(
- gl_panel.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel.createSequentialGroup()
- .addContainerGap()
- .addComponent(treeScrollPane, GroupLayout.PREFERRED_SIZE, 153, GroupLayout.PREFERRED_SIZE)
- .addGap(27)
- .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblObject, GroupLayout.PREFERRED_SIZE, 14, GroupLayout.PREFERRED_SIZE)
- .addComponent(showObjectlbl))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblProperty)
- .addComponent(showPropertylbl))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblGraph)
- .addComponent(graphNrTxtField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblColor)
- .addComponent(colorComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGap(18)
- .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblR)
- .addComponent(redField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(lblB)
- .addComponent(blueField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(lblG)
- .addComponent(greenField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(colorPanel, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
- .addComponent(btnAdd)
- .addGap(34))
- );
-
- objectTree = new JTree();
- treeModel = (DefaultTreeModel)objectTree.getModel();
- DefaultMutableTreeNode root = new DefaultMutableTreeNode("Statistics");
- wholeHolon = new DefaultMutableTreeNode("whole Holon");
- wholeHolon.add(new DefaultMutableTreeNode("total Production"));
- wholeHolon.add(new DefaultMutableTreeNode("total Consumption"));
- wholeHolon.add(new DefaultMutableTreeNode("Percentage of Supplied Objects"));
- wholeHolon.add(new DefaultMutableTreeNode("Percentage of not Supplied Objects"));
- wholeHolon.add(new DefaultMutableTreeNode("Percentage of partially Supplied Objects"));
- objectsNode = new DefaultMutableTreeNode("Objects");
- DefaultMutableTreeNode defaultNode = new DefaultMutableTreeNode("empty");
-
- objectsNode.add(defaultNode);
- treeModel.setRoot(root);
- root.add(wholeHolon);
- root.add(objectsNode);
- objectTree.setModel(treeModel);
-
- treeScrollPane.setViewportView(objectTree);
-
- objectTree.addTreeSelectionListener(new TreeSelectionListener(){
- @Override
- public void valueChanged(TreeSelectionEvent e) {
- showObjectlbl.setText("...");
- showPropertylbl.setText("...");
- DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)objectTree.getLastSelectedPathComponent();
- if(selectedNode == null){
- return;
- }else{
- if(selectedNode.getLevel() == 1){
- showObjectlbl.setText(selectedNode.toString());
- }
- if(selectedNode.getLevel() == 2){
- if(((DefaultMutableTreeNode)selectedNode.getParent()).toString().equals("whole Holon")){
- showPropertylbl.setText(selectedNode.toString());
- showObjectlbl.setText(selectedNode.getParent().toString());
- }else{
- showObjectlbl.setText(selectedNode.toString());
- }
- }
- if(selectedNode.getLevel() == 3){
- showObjectlbl.setText(((DefaultMutableTreeNode)selectedNode.getParent()).toString());
- showPropertylbl.setText(selectedNode.toString());
- }
- }
- }
-
- });
- panel.setLayout(gl_panel);
-
- JScrollPane graphScrollPane = new JScrollPane();
- setRightComponent(graphScrollPane);
- repaintGraph();
- }
- @Override
- public void repaintGraph() {
- treeModel.reload();
- }
- @Override
- public void addTrackedObject(ArrayList<HolonObject> hlList) {
- if(hlList.size() > 0 && hlList != null){
- objectsNode.removeAllChildren();
- for(HolonObject hO : hlList){
- DefaultMutableTreeNode tmp = new DefaultMutableTreeNode(hO.getName() + " " + hO.getID());
- tmp.add(new DefaultMutableTreeNode("total Production"));
- tmp.add(new DefaultMutableTreeNode("total Consumption"));
- tmp.add(new DefaultMutableTreeNode("number of activated Elements"));
- objectsNode.add(tmp);
- }
- }else{
- objectsNode.add(new DefaultMutableTreeNode("empty"));
- }
-
- }
- }
|