Parcourir la source

Adds NetworkTreePanel Rightclick delete

Andreas T. Meyer-Berg il y a 6 ans
Parent
commit
992c5434d0

+ 32 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/NetworkTreePanel.java

@@ -215,7 +215,6 @@ public class NetworkTreePanel extends JScrollPane implements Observer {
 		rightClick = new JPopupMenu();
 		mntmEdit.addActionListener(a->{
 			if(clickedObject == null)return;
-			rightClick.setVisible(false);
 			if(clickedObject instanceof SmartDevice){
 				SmartDeviceCreationPopUp p = new SmartDeviceCreationPopUp((SmartDevice) clickedObject, true, controller);
 				p.setLocationRelativeTo(that);
@@ -231,6 +230,21 @@ public class NetworkTreePanel extends JScrollPane implements Observer {
 		});
 		rightClick.add(mntmEdit);
 		
+		mntmDelete.addActionListener(a->{
+			if(clickedObject == null)return;
+			if(clickedObject instanceof SmartDevice){
+				controller.getNetworkController().deleteSmartDevice((SmartDevice) clickedObject);
+				controller.notifyObservers();
+			}else if(clickedObject instanceof Connection){
+				controller.getNetworkController().deleteConnection((Connection) clickedObject);
+				controller.notifyObservers();
+			}else if(clickedObject instanceof Link){
+				controller.getNetworkController().deleteLink((Link) clickedObject);
+				controller.notifyObservers();
+			}else{
+				//Invalid object
+			}
+		});
 		rightClick.add(mntmDelete);
 		parent.add(rightClick);
 		
@@ -251,13 +265,30 @@ public class NetworkTreePanel extends JScrollPane implements Observer {
 			clickedObject = ((DefaultMutableTreeNode)clicked.getLastPathComponent()).getUserObject();
 			if(clickedObject instanceof SmartDevice){
 				//TODO: Specific actions
+				mntmEdit.setText("Edit Device");
+				mntmEdit.setEnabled(true);
+				mntmDelete.setText("Delete Device");
+				mntmDelete.setEnabled(true);
 				System.out.println("Clicked SmartDevice");
 				if(clickedObject instanceof SmartDevice) System.out.println(((SmartDevice)clickedObject).getName());
 			} else if(clickedObject instanceof Connection){
+				mntmEdit.setText("Edit Connection");
+				mntmEdit.setEnabled(true);
+				mntmDelete.setText("Delete Connection");
+				mntmDelete.setEnabled(true);
 				System.out.println("Clicked Connection");
 			}else if(clickedObject instanceof Link){
+				mntmEdit.setText("Edit Link");
+				mntmEdit.setEnabled(true);
+				mntmDelete.setText("Delete Link");
+				mntmDelete.setEnabled(true);
 				System.out.println("Clicked Link");
 			}else{
+				mntmEdit.setText("Edit");
+				mntmEdit.setEnabled(false);
+				mntmDelete.setText("Delete");
+				mntmDelete.setEnabled(false);
+				
 				System.out.println("Clicked unknown: "+clickedObject.getClass().getSimpleName());
 			}