Browse Source

Small changes and BorderColoring

Kevin Trometer 8 years ago
parent
commit
9492175f54
2 changed files with 58 additions and 23 deletions
  1. 23 2
      src/classes/CpsObject.java
  2. 35 21
      src/ui/view/MyCanvas.java

+ 23 - 2
src/classes/CpsObject.java

@@ -1,5 +1,6 @@
 package classes;
 
+import java.awt.Color;
 import java.util.ArrayList;
 import java.util.HashMap;
 
@@ -21,7 +22,9 @@ public abstract class CpsObject {
 	/* Energy input and output of each object in the grid */
 	/* Where the Object is Stored */
 	String sav;
-	
+	/* BorderColor the user sets */
+	Color BorderColor = Color.WHITE;
+
 	float input;
 	float output;
 
@@ -81,6 +84,10 @@ public abstract class CpsObject {
 		return image;
 	}
 
+	/**
+	 * @param image
+	 *            the Image to set
+	 */
 	public void setImage(String image) {
 		this.image = image;
 	}
@@ -130,7 +137,8 @@ public abstract class CpsObject {
 	}
 
 	/**
-	 * @param stored the stored to set
+	 * @param stored
+	 *            the stored to set
 	 */
 	public void setSav(String sav) {
 		this.sav = sav;
@@ -153,5 +161,18 @@ public abstract class CpsObject {
 		this.output = energyOut;
 	}
 
+	/**
+	 * @return the BorderColor
+	 */
+	public Color getBorderColor() {
+		return BorderColor;
+	}
 
+	/**
+	 * @param Color
+	 *            the Color to set
+	 */
+	public void setConnections(Color color) {
+		this.BorderColor = color;
+	}
 }

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

@@ -52,6 +52,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	Graphics2D g2; // For Painting
 	private int cx, cy;
 	private int sx, sy; // Mark Coords
+	private float scalediv20;
 
 	ArrayList<HolonElement> dataSelected = new ArrayList<HolonElement>();
 	ArrayList<CpsObject> TempSelected = new ArrayList<CpsObject>();
@@ -73,8 +74,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	private JMenuItem itemCopy = new JMenuItem("Copy");
 	public JMenuItem itemPaste = new JMenuItem("Paste");
 	private JToolTip objectTT = new JToolTip();
-	
-	private Point mousePosition = new Point();	//Mouse Position when rightclicked
+
+	private Point mousePosition = new Point(); // Mouse Position when
+												// rightclicked
 
 	// contains the value of the Capacity for new created Edges
 	private float edgeCapacity;
@@ -83,7 +85,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		this.add(objectTT);
 		this.controller = control;
 		this.model = mod;
-		
+
+		scalediv20 = model.getScale() / 20;
+
 		showedInformation[0] = true;
 		showedInformation[1] = true;
 		edgeCapacity = 10000;
@@ -111,7 +115,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				repaint();
 			}
 		});
-		
+
 		itemCut.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
@@ -120,7 +124,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				repaint();
 			}
 		});
-		
+
 		itemCopy.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
@@ -129,7 +133,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				repaint();
 			}
 		});
-		
+
 		itemPaste.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
@@ -249,6 +253,16 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 
 		// Objects
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
+			// Border Highlighting
+			g2.setColor(cps.getBorderColor());
+			if (g2.getColor() != Color.WHITE) {
+				g2.fillRect((int) (cps.getPosition().x - scalediv20 - 3), (int) (cps.getPosition().y - scalediv20 - 3),
+						(int) (controller.getScale() + ((scalediv20 + 3) * 2)),
+						(int) (controller.getScale() + ((scalediv20 + 3) * 2)));
+			}
+			
+
+			// node image
 			if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
 					&& controller.searchByID(model.getSelectedObjectID()) instanceof CpsNode) {
 				img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
@@ -260,14 +274,14 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 						((HolonSwitch) cps).setState(false);
 					}
 				}
+				// Highlighting
 				if ((cps == tempCps && model.getSelectedCpsObjects().size() == 0 && TempSelected.size() == 0)
 						|| model.getSelectedCpsObjects().contains(cps) || TempSelected.contains(cps)) {
 					g2.setColor(Color.BLUE);
-					g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
-							cps.getPosition().y - (controller.getScale() / 20),
-							controller.getScale() + ((controller.getScale() / 20) * 2),
-							controller.getScale() + ((controller.getScale() / 20) * 2));
-					if(showedInformation[1] && cps instanceof HolonObject){
+					g2.fillRect((int) (cps.getPosition().x - scalediv20), (int) (cps.getPosition().y - scalediv20),
+							(int) (controller.getScale() + (scalediv20 * 2)),
+							(int) (controller.getScale() + (scalediv20 * 2)));
+					if (showedInformation[1] && cps instanceof HolonObject) {
 						g2.setColor(Color.BLACK);
 						float totalEnergy = ((HolonObject) cps).getCurrentEnergyAtTimeStep(model.getCurIteration());
 						g2.drawString(Float.toString(totalEnergy), cps.getPosition().x, cps.getPosition().y - 10);
@@ -275,17 +289,17 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				} else if (cps instanceof HolonObject) {
 					g2.setColor(((HolonObject) cps).getColor());
 
-					g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
-							cps.getPosition().y - (controller.getScale() / 20),
-							controller.getScale() + ((controller.getScale() / 20) * 2),
-							controller.getScale() + ((controller.getScale() / 20) * 2));
-					
-					if(showedInformation[1]){
+					g2.fillRect((int) (cps.getPosition().x - scalediv20), (int) (cps.getPosition().y - scalediv20),
+							(int) (controller.getScale() + (scalediv20 * 2)),
+							(int) (controller.getScale() + (scalediv20 * 2)));
+
+					if (showedInformation[1]) {
 						g2.setColor(Color.BLACK);
 						float totalEnergy = ((HolonObject) cps).getCurrentEnergyAtTimeStep(model.getCurIteration());
 						g2.drawString(Float.toString(totalEnergy), cps.getPosition().x, cps.getPosition().y - 10);
 					}
 				}
+				// draw image
 				File checkPath = new File(cps.getImage());
 				if (checkPath.exists()) {
 					img = new ImageIcon(cps.getImage()).getImage();
@@ -339,9 +353,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 				tempCps = cps;
 				controller.addTextToConsole("Selected: ", Color.BLACK, 12, false, false, false);
-				controller.addTextToConsole(""+cps.getName(), Color.BLUE, 12, true, false, false);
+				controller.addTextToConsole("" + cps.getName(), Color.BLUE, 12, true, false, false);
 				controller.addTextToConsole(", ID:", Color.BLACK, 12, false, false, false);
-				controller.addTextToConsole(""+cps.getID(), Color.RED, 12, true, false, true);
+				controller.addTextToConsole("" + cps.getID(), Color.RED, 12, true, false, true);
 				dragging = true;
 				// If drawing an Edge (CTRL down)
 				if (tempCps.getClass() == HolonObject.class) {
@@ -605,7 +619,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				node = false;
 
 				CpsNode n = new CpsNode("Node");
-				
+
 				n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
 				controller.addObjectCanvas(n);
 
@@ -629,7 +643,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		// ins leere Gedragged
 		if (node) {
 			CpsNode n = new CpsNode("Node");
-			
+
 			n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
 			controller.addObjectCanvas(n);