浏览代码

Paint Optimization and Capacity Highlight

Kevin Trometer 8 年之前
父节点
当前提交
96921d5a48
共有 1 个文件被更改,包括 21 次插入18 次删除
  1. 21 18
      src/ui/view/MyCanvas.java

+ 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) {