Browse Source

thickness of edges change with flow value, edge properties are shown in tableModelProperties

Jessey Widhalm 8 years ago
parent
commit
96846edcad
4 changed files with 54 additions and 17 deletions
  1. 4 0
      src/ui/controller/Control.java
  2. 20 0
      src/ui/model/Model.java
  3. 26 16
      src/ui/view/GUI.java
  4. 4 1
      src/ui/view/MyCanvas.java

+ 4 - 0
src/ui/controller/Control.java

@@ -79,6 +79,10 @@ public class Control {
 	public void removeEdgesOnCanvas(CpsEdge edge) {
 		canvasController.removeEdgesOnCanvas(edge);
 	}
+	
+	public void setSelecteEdge(CpsEdge edge){
+		MODEL.setSelectedEdge(edge);
+	}
 
 	public void addObjectCanvas(CpsObject object) {
 		canvasController.addObjectIntoCanvas(object);

+ 20 - 0
src/ui/model/Model.java

@@ -23,6 +23,7 @@ public class Model {
 	// ID of the Selected Object
 	private CpsObject selectedCpsObject;
 	private HolonElement selectedHolonElement;
+	private CpsEdge selectedEdge;
 
 	private int selectedID = 0;
 	// eventuell wenn Canvasgröße gewählt werden kann
@@ -257,4 +258,23 @@ public class Model {
 		return CUR_ITERATION;
 	}
 
+	/**
+	 * Set the selected Edge
+	 * 
+	 * @param edge
+	 * 
+	 */
+	public void setSelectedEdge(CpsEdge edge) {
+		this.selectedEdge = edge;
+	}
+	
+	/**
+	 * Returns the selected Edge
+	 * 
+	 * @return selectedEdge
+	 */
+	public CpsEdge getSelectedEdge(){
+		return selectedEdge;
+	}
+
 }

+ 26 - 16
src/ui/view/GUI.java

@@ -174,8 +174,6 @@ public class GUI implements CategoryListener {
 		this.canvas = new MyCanvas(model, control);
 		this.unitGraph = new UnitGraph(model, control); // for testing, remove
 
-		
-
 		// later
 		control.initListener(this);
 		initialize();
@@ -442,12 +440,15 @@ public class GUI implements CategoryListener {
 			public void mousePressed(MouseEvent e) {
 				try {
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
-					//if an Object was selected, the porperties are shown in the table
-					DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
-					if(selectedNode.getLevel() == 2){
-						CpsObject selected = controller.searchObjInCat(selectedNode.toString(), selectedNode.getParent().toString());
+					// if an Object was selected, the porperties are shown in
+					// the table
+					DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree
+							.getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
+					if (selectedNode.getLevel() == 2) {
+						CpsObject selected = controller.searchObjInCat(selectedNode.toString(),
+								selectedNode.getParent().toString());
 						deleteRows();
-						if(selected instanceof HolonObject && selected != null){
+						if (selected instanceof HolonObject && selected != null) {
 							selected = (HolonObject) selected;
 							fillElementTable(((HolonObject) selected).getElements());
 						}
@@ -593,6 +594,15 @@ public class GUI implements CategoryListener {
 							}
 						}
 					}
+				} else if (model.getSelectedEdge() != null) {
+					Object[] tempName = { "Name", "Edge: " + model.getSelectedEdge().getA().getName() + " to "
+							+ model.getSelectedEdge().getB().getName() };
+					tableModelProperties.addRow(tempName);
+					Object[] tempFlow = { "Current flow", model.getSelectedEdge().getFlow() };
+					tableModelProperties.addRow(tempFlow);
+					Object[] tempCapacity = {"Max. Capacity", model.getSelectedEdge().getCapacity()};
+					tableModelProperties.addRow(tempCapacity);
+
 				}
 			}
 
@@ -704,14 +714,14 @@ public class GUI implements CategoryListener {
 
 		timePanel = new TimePanel(model, controller);
 		timePanel.setBorder(null);
-		((JSlider)(timePanel.getComponent(1))).addChangeListener(new ChangeListener() {
-			
+		((JSlider) (timePanel.getComponent(1))).addChangeListener(new ChangeListener() {
+
 			@Override
 			public void stateChanged(ChangeEvent e) {
 				unitGraph.repaint();
 			}
 		});
-		
+
 		splitPane.setRightComponent(splitPane_1);
 		splitPane.setDividerLocation(200);
 		splitPane_1.setDividerLocation(500);
@@ -856,22 +866,22 @@ public class GUI implements CategoryListener {
 			fillElementTable(canvas.dataSelected);
 		}
 		/**
-		 * hinzugef�gt damit man auch nach dem 
-		 * objekt platziert wurde elemente von Objekten in Kategorien ansehen kann
+		 * hinzugef�gt damit man auch nach dem objekt platziert wurde elemente
+		 * von Objekten in Kategorien ansehen kann
 		 */
 		canvas.dataSelected = null;
 
 	}
-	
-	public void deleteRows(){
+
+	public void deleteRows() {
 		if (tableModelHolonElement.getRowCount() > 0) {
 			for (int i = tableModelHolonElement.getRowCount() - 1; i > -1; i--) {
 				tableModelHolonElement.removeRow(i);
 			}
 		}
 	}
-	
-	public void fillElementTable(ArrayList<HolonElement> elements){
+
+	public void fillElementTable(ArrayList<HolonElement> elements) {
 		for (HolonElement he : elements) {
 			Object[] temp = { he.getEleName(), he.getEnergy(), he.getAmount() };
 			tableModelHolonElement.addRow(temp);

+ 4 - 1
src/ui/view/MyCanvas.java

@@ -108,6 +108,7 @@ 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) {
+				g2.setStroke(new BasicStroke(con.getFlow()/con.getCapacity()*4));
 				g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
 						con.getA().getPosition().y + controller.getScaleDiv2(),
 						con.getB().getPosition().x + controller.getScaleDiv2(),
@@ -151,7 +152,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			File checkPath = new File(cps.getImage());
 			if (checkPath.exists()) {
 				img = new ImageIcon(cps.getImage()).getImage();
-
+				
 			} else {
 				img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage();
 			}
@@ -192,6 +193,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		tempCps = null;
 		dataSelected = null;
 		edgeHighlight = null;
+		controller.setSelecteEdge(null);
 		// Object Selection
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPosition().x;
@@ -212,6 +214,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		// Edge Selection
 		if (tempCps == null) {
 			edgeHighlight = mousePositionOnEdge(x, y);
+			controller.setSelecteEdge(edgeHighlight);
 		}
 		// Object Selection Highlighting (selectRect)
 		objectSelectionHighlighting();