Kaynağa Gözat

Right update of the Switches' information and elimination of NullPointerException for right click

Edgardo Palza 8 yıl önce
ebeveyn
işleme
2184431f0f

+ 5 - 4
src/ui/view/GUI.java

@@ -1317,6 +1317,11 @@ public class GUI<E> implements CategoryListener {
 		canvas.addMouseListener(new MouseAdapter() {
 			@Override
 			public void mousePressed(MouseEvent e) {
+
+			}
+
+			@Override
+			public void mouseReleased(MouseEvent e) {
 				holonEleNamesDisplayed = Languages.getLanguage()[25];
 				// If any empty space is clicked
 				if (temp == null || temp.getID() != model.getSelectedObjectID()) {
@@ -1348,10 +1353,6 @@ public class GUI<E> implements CategoryListener {
 				if (doubleClick() && MouseEvent.BUTTON3 != e.getButton() && temp instanceof CpsUpperNode) {
 					openNewUpperNodeTab();
 				}
-			}
-
-			@Override
-			public void mouseReleased(MouseEvent e) {
 				if (model.getSelectedCpsObjects().size() > 1) {
 					model.getTableHolonElement().setModel(model.getMultiTable());
 				} else if (model.getSelectedCpsObjects().size() == 1) {

+ 8 - 6
src/ui/view/MyCanvas.java

@@ -618,14 +618,16 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 
 	@Override
 	public void mouseClicked(MouseEvent e) {
-		if (model.getPropertyTable().getRowCount() > 0) {
-			for (int i = model.getPropertyTable().getRowCount() - 1; i > -1; i--) {
-				model.getPropertyTable().removeRow(i);
+		if (e.getButton() == e.BUTTON1) {
+			if (model.getPropertyTable().getRowCount() > 0) {
+				for (int i = model.getPropertyTable().getRowCount() - 1; i > -1; i--) {
+					model.getPropertyTable().removeRow(i);
+				}
 			}
+			updCon.paintProperties(tempCps);
+			updCon.refreshTableHolonElement(model.getMultiTable(), model.getSingleTable());
+			updCon.refreshTableProperties(model.getPropertyTable());
 		}
-		updCon.paintProperties(tempCps);
-		updCon.refreshTableHolonElement(model.getMultiTable(), model.getSingleTable());
-		updCon.refreshTableProperties(model.getPropertyTable());
 	}
 
 	@Override

+ 55 - 49
src/ui/view/UpperNodeCanvas.java

@@ -121,7 +121,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	 *            the Controller
 	 */
 	public UpperNodeCanvas(Model mod, Control control, CpsUpperNode UpperNode, String parentPath) {
-		//this.add(objectTT);
+		// this.add(objectTT);
 		objectTT.setVisible(false);
 		this.controller = control;
 		this.model = mod;
@@ -161,7 +161,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		itemTrack.setEnabled(false);
 		itemUntrack.setEnabled(false);
 		updCon = new UpdateController(model, controller);
-		
+
 		itemGroup.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
@@ -231,7 +231,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 						break;
 					}
 				}
-				
+
 				savePos = new ArrayList<>();
 				animCps = ((CpsUpperNode) tempCps).getNodes();
 				controller.delUpperNode((CpsUpperNode) tempCps, upperNode);
@@ -348,7 +348,8 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
 					if (upperNode.getNodes().contains(cps)) {
 						controller.delObjUpperNode(cps, upperNode);
-						// Removes the object from the tracked objects, in case it was tracked
+						// Removes the object from the tracked objects, in case
+						// it was tracked
 						controller.removeTrackingObj(cps);
 						// Remove UpperNodeTab if UpperNode deleted
 						if (cps instanceof CpsUpperNode) {
@@ -463,7 +464,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		for (CpsEdge con : upperNode.getNodeEdges()) {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 					&& con != edgeHighlight) {
-				if(con.getConnected() == 0){
+				if (con.getConnected() == 0) {
 					if (con.getState()) {
 						g2.setColor(Color.GREEN);
 						if (con.getCapacity() != -1) {
@@ -473,7 +474,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 						g2.setColor(Color.RED);
 						g2.setStroke(new BasicStroke(2));
 					}
-				}else{
+				} else {
 					g2.setColor(Color.DARK_GRAY);
 					g2.setStroke(new BasicStroke(2));
 				}
@@ -482,7 +483,6 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 						con.getB().getPosition().x + controller.getScaleDiv2(),
 						con.getB().getPosition().y + controller.getScaleDiv2());
 
-				
 				if (con.getCapacity() == -1) {
 					maxCap = Character.toString('\u221e');
 				} else if (con.getCapacity() == -2) {
@@ -491,14 +491,18 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 					maxCap = String.valueOf(con.getCapacity());
 				}
 				if (showedInformation[0]) {
-					if(con.getConnected() == 0 || con.getConnected() == 1){
+					if (con.getConnected() == 0 || con.getConnected() == 1) {
 						g2.drawString(con.getFlow() + "/" + maxCap,
-								(con.getA().getPosition().x + con.getB().getPosition().x) / 2 + controller.getScaleDiv2(),
-								(con.getA().getPosition().y + con.getB().getPosition().y) / 2 + controller.getScaleDiv2());
-					}else{
-						g2.drawString("not connected", 
-								(con.getA().getPosition().x + con.getB().getPosition().x) / 2 + controller.getScaleDiv2(),
-								(con.getA().getPosition().y + con.getB().getPosition().y) / 2 + controller.getScaleDiv2());
+								(con.getA().getPosition().x + con.getB().getPosition().x) / 2
+										+ controller.getScaleDiv2(),
+								(con.getA().getPosition().y + con.getB().getPosition().y) / 2
+										+ controller.getScaleDiv2());
+					} else {
+						g2.drawString("not connected",
+								(con.getA().getPosition().x + con.getB().getPosition().x) / 2
+										+ controller.getScaleDiv2(),
+								(con.getA().getPosition().y + con.getB().getPosition().y) / 2
+										+ controller.getScaleDiv2());
 					}
 				}
 			}
@@ -523,7 +527,6 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 							con.getB().getPosition().x + controller.getScaleDiv2(),
 							con.getB().getPosition().y + controller.getScaleDiv2());
 
-					
 					if (con.getCapacity() == -1) {
 						maxCap = Character.toString('\u221e');
 					} else if (con.getCapacity() == -2) {
@@ -532,18 +535,18 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 						maxCap = String.valueOf(con.getCapacity());
 					}
 					if (showedInformation[0]) {
-						if(con.getConnected() == 0 || con.getConnected() == 1){
+						if (con.getConnected() == 0 || con.getConnected() == 1) {
 							g2.drawString(con.getFlow() + "/" + maxCap,
 									(con.getA().getPosition().x + con.getB().getPosition().x) / 2
-										+ controller.getScaleDiv2(),
+											+ controller.getScaleDiv2(),
 									(con.getA().getPosition().y + con.getB().getPosition().y) / 2
-										+ controller.getScaleDiv2());
-						}else{
+											+ controller.getScaleDiv2());
+						} else {
 							g2.drawString("not connected",
 									(con.getA().getPosition().x + con.getB().getPosition().x) / 2
-										+ controller.getScaleDiv2(),
+											+ controller.getScaleDiv2(),
 									(con.getA().getPosition().y + con.getB().getPosition().y) / 2
-										+ controller.getScaleDiv2());
+											+ controller.getScaleDiv2());
 						}
 					}
 				}
@@ -559,8 +562,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 					edgeHighlight.getA().getPosition().y + controller.getScaleDiv2(),
 					edgeHighlight.getB().getPosition().x + controller.getScaleDiv2(),
 					edgeHighlight.getB().getPosition().y + controller.getScaleDiv2());
-			
-			
+
 			if (edgeHighlight.getCapacity() == -1) {
 				maxCap = Character.toString('\u221e');
 			} else if (edgeHighlight.getCapacity() == -2) {
@@ -580,10 +582,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// Objects in upper node
 		for (AbstractCpsObject cps : upperNode.getNodes()) {
 			// Border Highlighting
-			if(showedInformation[3]){
+			if (showedInformation[3]) {
 				g2.setColor(cps.getBorderColor());
 				if (g2.getColor() != Color.WHITE) {
-					g2.fillRect((int) (cps.getPosition().x - scalediv20 - 3), (int) (cps.getPosition().y - scalediv20 - 3),
+					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)));
 				}
@@ -667,7 +670,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 			}
 
 			// Border Highlighting
-			if(showedInformation[3]){
+			if (showedInformation[3]) {
 				g2.setColor(cps.getBorderColor());
 				if (g2.getColor() != Color.WHITE) {
 					g2.fillRect((int) ((borderPos >> 1) - model.getScaleDiv2() - scalediv20) - 3,
@@ -839,30 +842,32 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// model.setSelectedCpsObject(tempCps);
 
 		// Edge Selection
-		if (tempCps == null) {
-			edgeHighlight = mousePositionOnEdge(x, y);
-			controller.setSelecteEdge(edgeHighlight);
-			controller.setSelectedObjectID(0);
-			if (!e.isControlDown() && e.getButton() != MouseEvent.BUTTON3) {
-				model.getSelectedCpsObjects().clear();
+		if (e.getButton() == e.BUTTON1) {
+			if (tempCps == null) {
+				edgeHighlight = mousePositionOnEdge(x, y);
+				controller.setSelecteEdge(edgeHighlight);
+				controller.setSelectedObjectID(0);
+				if (!e.isControlDown() && e.getButton() != MouseEvent.BUTTON3) {
+					model.getSelectedCpsObjects().clear();
+				}
+				updCon.deleteRows(model.getMultiTable());
+				updCon.deleteRows(model.getSingleTable());
 			}
-			updCon.deleteRows(model.getMultiTable());
-			updCon.deleteRows(model.getSingleTable());
-		}
 
-		if (edgeHighlight == null && tempCps == null) {
-			sx = e.getX();
-			sy = e.getY();
-			doMark = true;
+			if (edgeHighlight == null && tempCps == null) {
+				sx = e.getX();
+				sy = e.getY();
+				doMark = true;
+			}
+			// System.out.println("Selected Objects");
+			// for (AbstractCpsObject temp : model.getSelectedCpsObjects()) {
+			// System.out.println(temp.getName() + " " + temp.getID());
+			// }
+			updCon.paintProperties(tempCps);
+			updCon.refreshTableHolonElement(model.getMultiTable(), model.getSingleTable());
+			updCon.refreshTableProperties(model.getPropertyTable());
+			repaint();
 		}
-		// System.out.println("Selected Objects");
-		// for (AbstractCpsObject temp : model.getSelectedCpsObjects()) {
-		// System.out.println(temp.getName() + " " + temp.getID());
-		// }
-		updCon.paintProperties(tempCps);
-		updCon.refreshTableHolonElement(model.getMultiTable(), model.getSingleTable());
-		updCon.refreshTableProperties(model.getPropertyTable());
-		repaint();
 	}
 
 	@Override
@@ -1376,12 +1381,13 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		showedInformation[0] = connection;
 		showedInformation[1] = object;
 	}
-	
+
 	/**
 	 * copies a set of given informations
+	 * 
 	 * @param informations
 	 */
-	public void setShowedInformation(boolean[] informations){
+	public void setShowedInformation(boolean[] informations) {
 		showedInformation = informations;
 	}