|
@@ -1,10 +1,7 @@
|
|
|
package ui.view;
|
|
|
|
|
|
import java.io.File;
|
|
|
-import java.text.AttributedCharacterIterator;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-
|
|
|
import javax.swing.JFrame;
|
|
|
import javax.swing.JLabel;
|
|
|
import javax.swing.JMenuBar;
|
|
@@ -12,6 +9,7 @@ import javax.swing.JMenu;
|
|
|
import javax.swing.JMenuItem;
|
|
|
import javax.swing.JOptionPane;
|
|
|
import javax.swing.JTree;
|
|
|
+import javax.swing.border.LineBorder;
|
|
|
import javax.swing.BorderFactory;
|
|
|
import javax.swing.BoxLayout;
|
|
|
import javax.swing.JSplitPane;
|
|
@@ -21,8 +19,6 @@ import javax.swing.JTable;
|
|
|
import javax.swing.tree.DefaultTreeModel;
|
|
|
import javax.swing.tree.TreeCellRenderer;
|
|
|
|
|
|
-import com.sun.xml.internal.bind.v2.TODO;
|
|
|
-
|
|
|
import ui.controller.Control;
|
|
|
import ui.model.*;
|
|
|
|
|
@@ -30,20 +26,12 @@ import javax.swing.tree.DefaultMutableTreeNode;
|
|
|
import javax.swing.JEditorPane;
|
|
|
import javax.swing.JFileChooser;
|
|
|
import javax.swing.table.DefaultTableModel;
|
|
|
-import javax.swing.table.TableModel;
|
|
|
-
|
|
|
import java.awt.Color;
|
|
|
import java.awt.Component;
|
|
|
import java.awt.Cursor;
|
|
|
import java.awt.Dimension;
|
|
|
-import java.awt.Font;
|
|
|
-import java.awt.FontMetrics;
|
|
|
-import java.awt.Graphics;
|
|
|
import java.awt.Image;
|
|
|
import java.awt.Point;
|
|
|
-import java.awt.Rectangle;
|
|
|
-import java.awt.ScrollPane;
|
|
|
-import java.awt.Shape;
|
|
|
import java.awt.Toolkit;
|
|
|
import java.awt.BorderLayout;
|
|
|
|
|
@@ -61,21 +49,18 @@ import classes.HolonElement;
|
|
|
import classes.HolonObject;
|
|
|
import classes.HolonSwitch;
|
|
|
import classes.HolonTransformer;
|
|
|
-import javafx.util.Pair;
|
|
|
import Interfaces.CategoryListener;
|
|
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
import java.awt.event.MouseAdapter;
|
|
|
import java.awt.event.MouseEvent;
|
|
|
-import java.awt.image.ImageObserver;
|
|
|
-import java.awt.peer.MouseInfoPeer;
|
|
|
import java.beans.PropertyChangeEvent;
|
|
|
import java.beans.PropertyChangeListener;
|
|
|
import java.awt.event.ActionEvent;
|
|
|
import javax.swing.JSlider;
|
|
|
import javax.swing.event.ChangeListener;
|
|
|
import javax.swing.event.ChangeEvent;
|
|
|
-import javax.swing.SwingConstants;
|
|
|
+import java.awt.FlowLayout;
|
|
|
|
|
|
public class GUI implements CategoryListener {
|
|
|
|
|
@@ -162,9 +147,8 @@ public class GUI implements CategoryListener {
|
|
|
private final JSplitPane splitPane_3 = new JSplitPane();
|
|
|
private final JSlider sizeSlider = new JSlider();
|
|
|
private final JLabel lblImageSize = new JLabel("Image Size");
|
|
|
- private final JSlider timeSlider = new JSlider();
|
|
|
- private final JPanel timePanel = new JPanel();
|
|
|
- private final JButton playBtn = new JButton();
|
|
|
+ // Time Stuff
|
|
|
+ private final TimePanel timePanel;
|
|
|
|
|
|
/**
|
|
|
* Create the application.
|
|
@@ -174,7 +158,10 @@ public class GUI implements CategoryListener {
|
|
|
this.model = control.getModel();
|
|
|
this.canvas = new MyCanvas(model, control);
|
|
|
this.testgraph = new UnitGraph(model, control); // for testing, remove
|
|
|
- // later
|
|
|
+
|
|
|
+ timePanel = new TimePanel(model, controller);
|
|
|
+
|
|
|
+ // later
|
|
|
control.initListener(this);
|
|
|
initialize();
|
|
|
updateCategories(model.getCategories());
|
|
@@ -191,8 +178,9 @@ public class GUI implements CategoryListener {
|
|
|
frmCyberPhysical.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
|
|
frmCyberPhysical.setJMenuBar(menuBar);
|
|
|
-
|
|
|
- frmCyberPhysical.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH));
|
|
|
+
|
|
|
+ frmCyberPhysical.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
|
|
|
+ .getScaledInstance(30, 30, Image.SCALE_SMOOTH));
|
|
|
|
|
|
menuBar.add(mnNewMenu);
|
|
|
|
|
@@ -667,27 +655,7 @@ public class GUI implements CategoryListener {
|
|
|
split_Graph_HolonEl.setTopComponent(scrollGraph);
|
|
|
split_Graph_HolonEl.setBottomComponent(scrollElements);
|
|
|
|
|
|
- timePanel.setLayout(new BorderLayout(0, 0));
|
|
|
- timeSlider.setPaintTicks(true);
|
|
|
- timeSlider.setPaintLabels(true);
|
|
|
- timeSlider.setMinorTickSpacing(1);
|
|
|
- timeSlider.setToolTipText("");
|
|
|
-
|
|
|
- timeSlider.setMinimum(1);
|
|
|
- timeSlider.setMaximum(model.getIterations());
|
|
|
- timeSlider.setValue(1);
|
|
|
-
|
|
|
- playBtn.setBorder(BorderFactory.createEmptyBorder());
|
|
|
- playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Images/node.png")).getImage()
|
|
|
- .getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
|
|
|
- playBtn.addActionListener(new ActionListener() {
|
|
|
- public void actionPerformed(ActionEvent ae) {
|
|
|
- timeSlider.setValue(timeSlider.getValue() + 1);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- timePanel.add(playBtn, BorderLayout.WEST);
|
|
|
- timePanel.add(timeSlider);
|
|
|
+
|
|
|
frmCyberPhysical.getContentPane().add(timePanel, BorderLayout.SOUTH);
|
|
|
}
|
|
|
|