Browse Source

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Conflicts:
	src/ui/view/GUI.java
Edgardo Palza 8 years ago
parent
commit
f645090f3f

BIN
res/Button_Images/backward.png


BIN
res/Button_Images/forward.png


BIN
res/Button_Images/play.png


BIN
res/Button_Images/reset.png


BIN
res/Button_Images/stop.png


BIN
res/Images/Thumbs.db


+ 12 - 40
src/ui/view/GUI.java

@@ -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,9 +19,12 @@ import javax.swing.JTable;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeCellRenderer;
 
+<<<<<<< HEAD
 import com.sun.javafx.TempState;
 import com.sun.xml.internal.bind.v2.TODO;
 
+=======
+>>>>>>> 74d55e8294336055d94ca8c4ff6202168c94ea5d
 import ui.controller.Control;
 import ui.model.*;
 
@@ -31,20 +32,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;
 
@@ -62,21 +55,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 {
 
@@ -163,9 +153,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.
@@ -175,7 +164,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());
@@ -670,27 +662,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);
 	}
 

+ 21 - 18
src/ui/view/MyCanvas.java

@@ -23,7 +23,6 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JToolTip;
 
-
 import classes.CpsEdge;
 import classes.CpsNode;
 import classes.CpsObject;
@@ -107,31 +106,30 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 
 		for (CpsEdge con : model.getEdgesOnCanvas()) {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
-					&& con != edgeHighlight)
+					&& con != edgeHighlight) {
 				g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
 						con.getA().getPosition().y + controller.getScaleDiv2(),
 						con.getB().getPosition().x + controller.getScaleDiv2(),
 						con.getB().getPosition().y + controller.getScaleDiv2());
-			g2.drawString(con.getFlow() + "/" + con.getCapacity(),
-					(con.getA().getPosition().x + con.getB().getPosition().x) / 2 + controller.getScaleDiv2(),
-					(con.getA().getPosition().y + con.getB().getPosition().y) / 2 + controller.getScaleDiv2());
+				g2.drawString(con.getFlow() + "/" + con.getCapacity(),
+						(con.getA().getPosition().x + con.getB().getPosition().x) / 2 + controller.getScaleDiv2(),
+						(con.getA().getPosition().y + con.getB().getPosition().y) / 2 + controller.getScaleDiv2());
+			}
 		}
 
 		// Highlighted Edge
 		if (model.getSelectedObjectID() > 0) {
 			g2.setColor(Color.GREEN);
-			for (CpsObject cps : model.getObjectsOnCanvas()) {
-				for (CpsEdge con : cps.getConnectedTo()) {
-					if (con.getA().getID() == model.getSelectedObjectID()) {
-						g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
-								cps.getPosition().y + controller.getScaleDiv2(),
-								con.getA().getPosition().x + controller.getScaleDiv2(),
-								con.getA().getPosition().y + controller.getScaleDiv2());
-					} else if (con.getB().getID() == model.getSelectedObjectID())
-						g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
-								cps.getPosition().y + controller.getScaleDiv2(),
-								con.getB().getPosition().x + controller.getScaleDiv2(),
-								con.getB().getPosition().y + controller.getScaleDiv2());
+			for (CpsEdge con : model.getEdgesOnCanvas()) {
+				if (con.getA().getID() == model.getSelectedObjectID() || con.getB().getID() == model.getSelectedObjectID()
+						&& con != edgeHighlight) {
+					g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
+							con.getA().getPosition().y + controller.getScaleDiv2(),
+							con.getB().getPosition().x + controller.getScaleDiv2(),
+							con.getB().getPosition().y + controller.getScaleDiv2());
+					g2.drawString(con.getFlow() + "/" + con.getCapacity(),
+							(con.getA().getPosition().x + con.getB().getPosition().x) / 2 + controller.getScaleDiv2(),
+							(con.getA().getPosition().y + con.getB().getPosition().y) / 2 + controller.getScaleDiv2());
 				}
 			}
 		} else if (edgeHighlight != null) {
@@ -140,6 +138,11 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 					edgeHighlight.getA().getPosition().y + controller.getScaleDiv2(),
 					edgeHighlight.getB().getPosition().x + controller.getScaleDiv2(),
 					edgeHighlight.getB().getPosition().y + controller.getScaleDiv2());
+			g2.drawString(edgeHighlight.getFlow() + "/" + edgeHighlight.getCapacity(),
+					(edgeHighlight.getA().getPosition().x + edgeHighlight.getB().getPosition().x) / 2
+							+ controller.getScaleDiv2(),
+					(edgeHighlight.getA().getPosition().y + edgeHighlight.getB().getPosition().y) / 2
+							+ controller.getScaleDiv2());
 		}
 
 		// Objects
@@ -428,7 +431,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 				ly = p.getA().getPosition().y + model.getScaleDiv2() - 7;
 				hy = p.getB().getPosition().y + model.getScaleDiv2() + 7;
 			}
-			
+
 			// distance from a point to a line and between both Objects
 			if (l.ptLineDistSq(x - model.getScaleDiv2(), y - model.getScaleDiv2()) < 14 && x > lx && x < hx && y > ly
 					&& y < hy) {

+ 97 - 0
src/ui/view/TimePanel.java

@@ -0,0 +1,97 @@
+package ui.view;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Image;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.border.LineBorder;
+
+import ui.controller.Control;
+import ui.model.Model;
+
+public class TimePanel extends JPanel {
+
+	private Model model;
+	private Control controller;
+
+	JSlider timeSlider = new JSlider();
+	private final JPanel timePanel = new JPanel();
+	private final JPanel timeBtnPanel = new JPanel();
+	private final JButton playBtn = new JButton();
+	private final JButton timeResetBtn = new JButton();
+	private final JButton timeForwardBtn = new JButton();
+	private final JButton timeBackwardBtn = new JButton();
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public TimePanel(Model model, Control controller) {
+		super();
+		this.model = model;
+		//// Time Slider. Panels and Buttons
+		this.setLayout(new BorderLayout(0, 0));
+
+		// Slider
+		timeSlider.setPaintTicks(true);
+		timeSlider.setPaintLabels(true);
+		timeSlider.setMinorTickSpacing(1);
+		timeSlider.setToolTipText("Time Slider");
+		timeSlider.setMinimum(1);
+		timeSlider.setMaximum(model.getIterations());
+		timeSlider.setValue(1);
+		timeSlider.setBackground(Color.WHITE);
+
+		// Buttons
+		timeBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
+
+		playBtn.setBorder(new LineBorder(Color.WHITE, 4));
+		playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/play.png")).getImage()
+				.getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
+
+		timeResetBtn.setBorder(new LineBorder(Color.WHITE, 4));
+		timeResetBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/reset.png"))
+				.getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
+		timeResetBtn.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent ae) {
+				timeSlider.setValue(timeSlider.getMinimum());
+			}
+		});
+
+		timeForwardBtn.setContentAreaFilled(false);
+		timeForwardBtn.setBorder(new LineBorder(Color.WHITE, 4));
+		timeForwardBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/forward.png"))
+				.getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
+		timeForwardBtn.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent ae) {
+				timeSlider.setValue(timeSlider.getValue() + 1);
+			}
+		});
+
+		timeBackwardBtn.setBorder(new LineBorder(Color.WHITE, 4));
+		timeBackwardBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/backward.png"))
+				.getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
+		timeBackwardBtn.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent ae) {
+				timeSlider.setValue(timeSlider.getValue() - 1);
+			}
+		});
+
+		timeBtnPanel.add(playBtn);
+		timeBtnPanel.add(timeResetBtn);
+		timeBtnPanel.add(timeBackwardBtn);
+		timeBtnPanel.add(timeForwardBtn);
+
+		this.add(timeBtnPanel, BorderLayout.WEST);
+		this.add(timeSlider);
+	}
+
+}