Browse Source

Adds AlignSelecte to rightClick Menu

Precision of half of a HolonObject
Andreas T. Meyer-Berg 6 years ago
parent
commit
c78d939a3f
3 changed files with 20 additions and 1 deletions
  1. 4 1
      src/ui/view/AbstractCanvas.java
  2. 8 0
      src/ui/view/MyCanvas.java
  3. 8 0
      src/ui/view/UpperNodeCanvas.java

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

@@ -38,8 +38,9 @@ public abstract class AbstractCanvas extends JPanel {
 	final JMenuItem itemUngroup = new JMenuItem(Languages.getLanguage()[100]);
 	final JMenuItem itemTrack = new JMenuItem(Languages.getLanguage()[101]);
 	final JMenuItem itemUntrack = new JMenuItem(Languages.getLanguage()[102]);
+	final JMenuItem itemAlign = new JMenuItem("Align selected");
 	final JMenuItem itemCreateTemplate = new JMenuItem(Languages.getLanguage()[Languages.right_click_create_template]);
-
+	
 	final int ANIMTIME = 500; // animation Time
 	private final int animFPS = 60;
 	final int animDelay = 1000 / animFPS; // animation Delay
@@ -427,6 +428,7 @@ public abstract class AbstractCanvas extends JPanel {
 				itemDelete.setEnabled(true);
 				itemCut.setEnabled(true);
 				itemCopy.setEnabled(true);
+				itemAlign.setEnabled(true);
 				// tracking
 				if (tempCps != null) {
 					itemGroup.setEnabled(true);
@@ -447,6 +449,7 @@ public abstract class AbstractCanvas extends JPanel {
 					itemCreateTemplate.setEnabled(false);
 				}
 			} else {
+				itemAlign.setEnabled(false);
 				itemCut.setEnabled(false);
 				itemCopy.setEnabled(false);
 				itemGroup.setEnabled(false);

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

@@ -55,6 +55,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		popmenu.add(itemCopy);
 		popmenu.add(itemPaste);
 		popmenu.add(itemDelete);
+		popmenu.add(itemAlign);
 		popmenu.addSeparator();
 		popmenu.add(itemGroup);
 		popmenu.add(itemUngroup);
@@ -68,6 +69,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		itemCut.setEnabled(false);
 		itemCopy.setEnabled(false);
 		itemPaste.setEnabled(true);
+		itemAlign.setEnabled(false);
 		itemGroup.setEnabled(false);
 		itemUngroup.setEnabled(false);
 		itemTrack.setEnabled(false);
@@ -334,6 +336,12 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 			repaint();
 		});
 
+		itemAlign.addActionListener(actionEvent ->
+		{
+			for(AbstractCpsObject cps: model.getSelectedCpsObjects())
+				align(cps, model.getScaleDiv2());
+			repaint();
+		});
 		itemPaste
 				.addActionListener(actionEvent -> {
 					try {

+ 8 - 0
src/ui/view/UpperNodeCanvas.java

@@ -72,6 +72,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
         popmenu.add(itemCopy);
         popmenu.add(itemPaste);
         popmenu.add(itemDelete);
+        popmenu.add(itemAlign);
         popmenu.addSeparator();
         popmenu.add(itemGroup);
         popmenu.add(itemUngroup);
@@ -79,6 +80,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
         popmenu.add(itemUntrack);
         popmenu.add(itemCreateTemplate);
         
+        itemAlign.setEnabled(true);
         itemDelete.setEnabled(false);
         itemCut.setEnabled(false);
         itemCopy.setEnabled(false);
@@ -90,6 +92,12 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
         
         updCon = new UpdateController(model, controller);
         
+        itemAlign.addActionListener(actionEvent -> {
+        	for(AbstractCpsObject cps: model.getSelectedCpsObjects())
+        		align(cps, model.getScaleDiv2());
+        	repaint();
+        });
+        
         itemGroup.addActionListener(actionEvent -> {
             // calculate uppernode pos (taken from the controller)
             unPos = new Position(0, 0);