소스 검색

higlighting

Kevin Trometer 8 년 전
부모
커밋
327a8522cc
2개의 변경된 파일39개의 추가작업 그리고 26개의 파일을 삭제
  1. 1 1
      src/ui/view/GUI.java
  2. 38 25
      src/ui/view/MyCanvas.java

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

@@ -162,7 +162,7 @@ public class GUI<E> implements CategoryListener {
 	private int yValueElements = 0;
 
 	private MyCanvas canvas;
-	private UnitGraph unitGraph; // for testing, remove later
+	private UnitGraph unitGraph;
 	private final JSplitPane splitPane_3 = new JSplitPane();
 	private final JSlider sizeSlider = new JSlider();
 	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.HolonObject;
 import classes.HolonSwitch;
+import classes.HolonTransformer;
 import ui.controller.Control;
 import ui.model.Model;
 import ui.model.idCounter;
 
 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 int x = 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);
 		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
-		//g2.setColor(Color.BLACK);
+		// g2.setColor(Color.BLACK);
 		if (drawEdge) {
 			g2.setStroke(new BasicStroke(2));
 			g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
@@ -112,14 +119,14 @@ 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) {
-				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.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.getB().getPosition().x + controller.getScaleDiv2(),
 						con.getB().getPosition().y + controller.getScaleDiv2());
@@ -133,9 +140,9 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		if (model.getSelectedObjectID() > 0) {
 			g2.setColor(Color.BLUE);
 			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));
 				}
 				if (con.getA().getID() == model.getSelectedObjectID()
@@ -166,9 +173,19 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		// Objects
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			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();
 			} 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());
 				if (checkPath.exists()) {
 					img = new ImageIcon(cps.getImage()).getImage();
@@ -186,21 +203,17 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	public void mouseClicked(MouseEvent e) {
 		// If double clicked on a Switch change the Image to on/off
 		if (doubleClick() && tempCps != null && tempCps.getClass() == HolonSwitch.class) {
-				((HolonSwitch)tempCps).switchState();
+			((HolonSwitch) tempCps).switchState();
 		}
 		repaint();
 	}
 
 	@Override
 	public void mouseEntered(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
 	public void mouseExited(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
@@ -329,8 +342,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		if (tempCps != null) {
 			selectRect.setBounds(tempCps.getPosition().x - (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());
 		} else {
@@ -483,7 +496,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			}
 
 			// 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) {
 				return p;
 			}