Просмотр исходного кода

Added Delete Function for single Lines with RightMouse and Entf-Key.

tolatesry 6 лет назад
Родитель
Сommit
399e167754
3 измененных файлов с 27 добавлено и 4 удалено
  1. 15 4
      src/ui/view/AbstractCanvas.java
  2. 5 0
      src/ui/view/GUI.java
  3. 7 0
      src/ui/view/MyCanvas.java

+ 15 - 4
src/ui/view/AbstractCanvas.java

@@ -8,6 +8,7 @@ import ui.model.Model;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.MouseEvent;
+import java.awt.geom.Line2D;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.TimerTask;
@@ -261,7 +262,9 @@ public abstract class AbstractCanvas extends JPanel {
 
     void setRightClickMenu(MouseEvent e) {
         if (e.getButton() == MouseEvent.BUTTON3) {
+        	itemPaste.setEnabled(true);
             if (tempCps != null) {
+            	itemPaste.setEnabled(true);
                 itemDelete.setEnabled(true);
                 itemCut.setEnabled(true);
                 itemCopy.setEnabled(true);
@@ -277,21 +280,29 @@ public abstract class AbstractCanvas extends JPanel {
                 if (model.getSelectedCpsObjects().size() == 0) {
                     controller.addSelectedObject(tempCps);
                 }
-            } else {
+            }else{
                 itemCut.setEnabled(false);
                 itemCopy.setEnabled(false);
-                itemDelete.setEnabled(false);
                 itemGroup.setEnabled(false);
                 itemUngroup.setEnabled(false);
                 itemTrack.setEnabled(false);
                 itemUntrack.setEnabled(false);
+        		if(edgeHighlight != null)
+        		{
+                    itemDelete.setEnabled(true);
+                    itemPaste.setEnabled(false);
+        		}
+        		else
+        		{
+        			itemDelete.setEnabled(false);
+                    itemPaste.setEnabled(true);
+        		}
             }
             mousePosition = this.getMousePosition();
             popmenu.show(e.getComponent(), e.getX(), e.getY());
         }
     }
-
-
+    
     void markObjects() {
         if (doMark) {
             doMark = false;

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

@@ -424,6 +424,11 @@ public class GUI implements CategoryListener {
                     // or Canvas?
                 } else if (canvasOrUpperNodeCanvas instanceof MyCanvas) {
                     boolean save = false;
+                    CpsEdge edgeHighlight= model.getSelectedEdge();
+                    if(edgeHighlight != null){
+                    	controller.removeEdgesOnCanvas(edgeHighlight);
+                    	((MyCanvas) canvasOrUpperNodeCanvas).edgeHighlight = null;
+                    }
                     for (int j = 0; j < model.getSelectedCpsObjects().size(); j++) {
                         AbstractCpsObject cps = model.getSelectedCpsObjects().get(j);
 

+ 7 - 0
src/ui/view/MyCanvas.java

@@ -227,6 +227,11 @@ public class MyCanvas extends AbstractCanvas implements MouseListener, MouseMoti
 
         itemDelete.addActionListener(actionEvent -> {
             // Remove the selected Object objects
+        	if(tempCps == null && edgeHighlight != null)
+        	{
+        		controller.removeEdgesOnCanvas(edgeHighlight);
+        		edgeHighlight = null;
+        	}
             boolean save = false;
             for (int j = 0; j < model.getSelectedCpsObjects().size(); j++) {
                 AbstractCpsObject cps = model.getSelectedCpsObjects().get(j);
@@ -517,6 +522,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener, MouseMoti
             try {
                 controller.autoSave();
             } catch (IOException ex) {
+            	System.err.println("AutoSave error by dragging");
                 ex.printStackTrace();
             }
         }
@@ -773,6 +779,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener, MouseMoti
         }
         return null;
     }
+    
 
     void updateLanguages() {
         itemCut.setText(Languages.getLanguage()[95]);