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

dominik.rieder 8 năm trước cách đây
mục cha
commit
1d58851ddc

+ 17 - 5
src/classes/HolonObject.java

@@ -16,10 +16,9 @@ public class HolonObject extends CpsObject {
 	private float currentEnergy;
 	private float currentEnergy;
 
 
 	/**
 	/**
-	 * State of the building: 0 = fully supplied (currentEnergy == 0) 1 = not
-	 * enough energy (currentEnergy > 0) 2 = oversupplied (currentEnergy < 0)
+	 * true if supplied and false if not supplied
 	 */
 	 */
-	int state;
+	boolean supplied = false;
 
 
 	/**
 	/**
 	 * Constructor Set by default the name of the object equals to the category
 	 * Constructor Set by default the name of the object equals to the category
@@ -43,8 +42,6 @@ public class HolonObject extends CpsObject {
 		super(obj);
 		super(obj);
 		setEleIdx(MultiPurposeController.copyHashMap(((HolonObject) obj).getEleIdx()));
 		setEleIdx(MultiPurposeController.copyHashMap(((HolonObject) obj).getEleIdx()));
 		setElements(copyElements(((HolonObject)obj).getElements()));
 		setElements(copyElements(((HolonObject)obj).getElements()));
-
-
 	}
 	}
 
 
 	/**
 	/**
@@ -152,4 +149,19 @@ public class HolonObject extends CpsObject {
 		}
 		}
 		return newArr;
 		return newArr;
 	}
 	}
+	
+	/*
+	 * returns supplied
+	 */
+	public boolean getSupplied() {
+		return this.supplied;
+	}
+
+	/**
+	 * @param supplied
+	 *            boolean if the Object is fully supplied
+	 */
+	public void setSupplied(boolean sup) {
+		this.supplied = sup;
+	}
 }
 }

+ 1 - 1
src/ui/view/GUI.java

@@ -162,7 +162,7 @@ public class GUI<E> implements CategoryListener {
 	private int yValueElements = 0;
 	private int yValueElements = 0;
 
 
 	private MyCanvas canvas;
 	private MyCanvas canvas;
-	private UnitGraph unitGraph; // for testing, remove later
+	private UnitGraph unitGraph;
 	private final JSplitPane splitPane_3 = new JSplitPane();
 	private final JSplitPane splitPane_3 = new JSplitPane();
 	private final JSlider sizeSlider = new JSlider();
 	private final JSlider sizeSlider = new JSlider();
 	private final JLabel lblImageSize = new JLabel("Image Size");
 	private final JLabel lblImageSize = new JLabel("Image Size");

+ 38 - 25
src/ui/view/MyCanvas.java

@@ -30,11 +30,16 @@ import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonSwitch;
+import classes.HolonTransformer;
 import ui.controller.Control;
 import ui.controller.Control;
 import ui.model.Model;
 import ui.model.Model;
 import ui.model.idCounter;
 import ui.model.idCounter;
 
 
 class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
 	private Image img = null; // Contains the image to draw on MyCanvas
 	private Image img = null; // Contains the image to draw on MyCanvas
 	private int x = 0;
 	private int x = 0;
 	private int y = 0;
 	private int y = 0;
@@ -93,16 +98,18 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 		g2.setRenderingHints(rh);
 		g2.setRenderingHints(rh);
 
 
-		// Selection
-		if (selectRect != null && controller.searchByID(model.getSelectedObjectID()) != null
-				&& controller.searchByID(model.getSelectedObjectID()).getClass() != CpsNode.class) {
-			g2.setColor(Color.BLUE);
-			g2.fillRect((int) selectRect.getX(), (int) selectRect.getY(), (int) selectRect.getWidth(),
-					(int) selectRect.getHeight());
-		}
+		// Supplied Highlighting
 
 
+		/*
+		 * // Selection if (selectRect != null &&
+		 * controller.searchByID(model.getSelectedObjectID()) != null &&
+		 * controller.searchByID(model.getSelectedObjectID()).getClass() !=
+		 * CpsNode.class) { g2.setColor(Color.BLUE); g2.fillRect((int)
+		 * selectRect.getX(), (int) selectRect.getY(), (int)
+		 * selectRect.getWidth(), (int) selectRect.getHeight()); }
+		 */
 		// drawEdges
 		// drawEdges
-		//g2.setColor(Color.BLACK);
+		// g2.setColor(Color.BLACK);
 		if (drawEdge) {
 		if (drawEdge) {
 			g2.setStroke(new BasicStroke(2));
 			g2.setStroke(new BasicStroke(2));
 			g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
 			g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
@@ -112,14 +119,14 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsEdge con : model.getEdgesOnCanvas()) {
 		for (CpsEdge con : model.getEdgesOnCanvas()) {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 					&& con != edgeHighlight) {
 					&& con != edgeHighlight) {
-				if(con.getFlow()<=con.getCapacity()){
-						g2.setColor(Color.BLACK);
-						g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
-				}else{
+				if (con.getFlow() <= con.getCapacity()) {
+					g2.setColor(Color.BLACK);
+					g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
+				} else {
 					g2.setColor(Color.RED);
 					g2.setColor(Color.RED);
 					g2.setStroke(new BasicStroke(2));
 					g2.setStroke(new BasicStroke(2));
 				}
 				}
-						g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
+				g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
 						con.getA().getPosition().y + controller.getScaleDiv2(),
 						con.getA().getPosition().y + controller.getScaleDiv2(),
 						con.getB().getPosition().x + controller.getScaleDiv2(),
 						con.getB().getPosition().x + controller.getScaleDiv2(),
 						con.getB().getPosition().y + controller.getScaleDiv2());
 						con.getB().getPosition().y + controller.getScaleDiv2());
@@ -133,9 +140,9 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		if (model.getSelectedObjectID() > 0) {
 		if (model.getSelectedObjectID() > 0) {
 			g2.setColor(Color.BLUE);
 			g2.setColor(Color.BLUE);
 			for (CpsEdge con : model.getEdgesOnCanvas()) {
 			for (CpsEdge con : model.getEdgesOnCanvas()) {
-				if(con.getFlow()<=con.getCapacity()){
-					g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));	
-				}else{
+				if (con.getFlow() <= con.getCapacity()) {
+					g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
+				} else {
 					g2.setStroke(new BasicStroke(2));
 					g2.setStroke(new BasicStroke(2));
 				}
 				}
 				if (con.getA().getID() == model.getSelectedObjectID()
 				if (con.getA().getID() == model.getSelectedObjectID()
@@ -166,9 +173,19 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		// Objects
 		// Objects
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
 			if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
-					&& controller.searchByID(model.getSelectedObjectID()).getClass() == CpsNode.class) {
+					&& controller.searchByID(model.getSelectedObjectID()) instanceof CpsNode) {
 				img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
 				img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
 			} else {
 			} else {
+				if (cps == tempCps) {
+					g2.setColor(Color.BLUE);
+					g2.fillRect((int) selectRect.getX(), (int) selectRect.getY(), (int) selectRect.getWidth(),
+							(int) selectRect.getHeight());
+				} else if (cps instanceof HolonObject) {
+					g2.setColor(Color.GRAY);
+					g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
+							cps.getPosition().y - (controller.getScale() / 20), (int) selectRect.getWidth(),
+							(int) selectRect.getHeight());
+				}
 				File checkPath = new File(cps.getImage());
 				File checkPath = new File(cps.getImage());
 				if (checkPath.exists()) {
 				if (checkPath.exists()) {
 					img = new ImageIcon(cps.getImage()).getImage();
 					img = new ImageIcon(cps.getImage()).getImage();
@@ -186,21 +203,17 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	public void mouseClicked(MouseEvent e) {
 	public void mouseClicked(MouseEvent e) {
 		// If double clicked on a Switch change the Image to on/off
 		// If double clicked on a Switch change the Image to on/off
 		if (doubleClick() && tempCps != null && tempCps.getClass() == HolonSwitch.class) {
 		if (doubleClick() && tempCps != null && tempCps.getClass() == HolonSwitch.class) {
-				((HolonSwitch)tempCps).switchState();
+			((HolonSwitch) tempCps).switchState();
 		}
 		}
 		repaint();
 		repaint();
 	}
 	}
 
 
 	@Override
 	@Override
 	public void mouseEntered(MouseEvent e) {
 	public void mouseEntered(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 	}
 
 
 	@Override
 	@Override
 	public void mouseExited(MouseEvent e) {
 	public void mouseExited(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 	}
 
 
 	@Override
 	@Override
@@ -329,8 +342,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		if (tempCps != null) {
 		if (tempCps != null) {
 			selectRect.setBounds(tempCps.getPosition().x - (controller.getScale() / 20),
 			selectRect.setBounds(tempCps.getPosition().x - (controller.getScale() / 20),
 					tempCps.getPosition().y - (controller.getScale() / 20),
 					tempCps.getPosition().y - (controller.getScale() / 20),
-					controller.getScale() + controller.getScale() / 10,
-					controller.getScale() + controller.getScale() / 10);
+					controller.getScale() + ((controller.getScale() / 20) * 2),
+					controller.getScale() + ((controller.getScale() / 20) * 2));
 
 
 			controller.setSelectedObjectID(tempCps.getID());
 			controller.setSelectedObjectID(tempCps.getID());
 		} else {
 		} else {
@@ -483,7 +496,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			}
 			}
 
 
 			// distance from a point to a line and between both Objects
 			// 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
+			if (l.ptLineDistSq(x - model.getScaleDiv2(), y - model.getScaleDiv2()) < 20 && x > lx && x < hx && y > ly
 					&& y < hy) {
 					&& y < hy) {
 				return p;
 				return p;
 			}
 			}