Browse Source

Merge branch 'BP_master' of git@git.tk.informatik.tu-darmstadt.de:carlos.garcia/praktikum-holons.git into BP_master

tolatesry 6 years ago
parent
commit
ca37de9839
3 changed files with 45 additions and 7 deletions
  1. 25 7
      src/ui/view/AbstractCanvas.java
  2. 10 0
      src/ui/view/MyCanvas.java
  3. 10 0
      src/ui/view/UpperNodeCanvas.java

+ 25 - 7
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
@@ -180,6 +181,7 @@ public abstract class AbstractCanvas extends JPanel {
 	 *            cpsObject which the supplyBar should be drawn for
 	 */
 	protected void paintSupplyBar(Graphics g, AbstractCpsObject cps) {
+		g2.setColor(Color.black);
 		/**
 		 * draw and fill the supply Bar
 		 */
@@ -261,7 +263,7 @@ public abstract class AbstractCanvas extends JPanel {
 			/**
 			 * if object should be replaced -> move bar below the ReplacementIndicator
 			 */
-			if(mayBeReplaced==cps) barY += 6;
+			if(mayBeReplaced==cps) barY += 3;
 			
 			/**
 			 * Width of the bar
@@ -315,7 +317,7 @@ public abstract class AbstractCanvas extends JPanel {
 				|| model.getSelectedCpsObjects().contains(cps) || tempSelected.contains(cps))) {
 			img = Util.loadImage(this, "/Images/node_selected.png");
 		} else {
-			if (cps instanceof HolonSwitch) {//TODO. What the hell are thes ecalls doing here?
+			if (cps instanceof HolonSwitch) {//TODO: What the hell are thes ecalls doing here?
 				if (((HolonSwitch) cps).getState(model.getCurIteration())) {
 					((HolonSwitch) cps).setAutoState(true);
 				} else {
@@ -325,11 +327,25 @@ public abstract class AbstractCanvas extends JPanel {
 			// Highlighting
 			if ((cps == tempCps && model.getSelectedCpsObjects().size() == 0 && tempSelected.size() == 0)
 					|| model.getSelectedCpsObjects().contains(cps) || tempSelected.contains(cps)) {
+				/**
+				 * draw selected Blue Frame
+				 */
 				g2.setColor(Color.BLUE);
 				g2.fillRect((int) (cps.getPosition().x - controller.getScaleDiv2() - scalediv20),
 						(int) (cps.getPosition().y - controller.getScaleDiv2() - scalediv20),
 						(int) (controller.getScale() + (scalediv20 * 2)),
 						(int) (controller.getScale() + (scalediv20 * 2)));
+				/**
+				 * 
+				 */
+				if(cps instanceof HolonObject){
+					g2.setColor(((HolonObject)cps).getColor());
+					g2.fillRect((int) (cps.getPosition().x - controller.getScaleDiv2() - scalediv20+3),
+							(int) (cps.getPosition().y - controller.getScaleDiv2() - scalediv20+3),
+							(int) (controller.getScale() + (scalediv20 * 2)-6),
+							(int) (controller.getScale() + (scalediv20 * 2)-6));					
+				}
+				
 				if (showedInformation[1] && cps instanceof HolonObject) {
 					g2.setColor(Color.BLACK);
 					float totalEnergy = ((HolonObject) cps).getCurrentEnergyAtTimeStep(model.getCurIteration());
@@ -427,6 +443,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 +464,7 @@ public abstract class AbstractCanvas extends JPanel {
 					itemCreateTemplate.setEnabled(false);
 				}
 			} else {
+				itemAlign.setEnabled(false);
 				itemCut.setEnabled(false);
 				itemCopy.setEnabled(false);
 				itemGroup.setEnabled(false);
@@ -622,11 +640,11 @@ public abstract class AbstractCanvas extends JPanel {
 			g2.setColor(Color.RED);
 			g2.fillRect(
 					(int) (mayBeReplaced.getPosition().x
-							- controller.getScaleDiv2() - (scalediv20 + 5)),
+							- controller.getScaleDiv2() - (scalediv20 + 3)),
 					(int) (mayBeReplaced.getPosition().y
-							- controller.getScaleDiv2() - (scalediv20 + 5)),
-					(int) (controller.getScale() + ((scalediv20 + 5) * 2)),
-					(int) (controller.getScale() + ((scalediv20 + 5) * 2)));
+							- controller.getScaleDiv2() - (scalediv20 + 3)),
+					(int) (controller.getScale() + ((scalediv20 + 3) * 2)),
+					(int) (controller.getScale() + ((scalediv20 + 3) * 2)));
 		}
 	}
 	

+ 10 - 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);
@@ -327,11 +329,19 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		});
 
 		itemCopy.addActionListener(actionEvent -> {
+			if(tempCps instanceof CpsUpperNode)
+				controller.getObjectsInDepth();
 			controller.copy(null);
 			itemPaste.setEnabled(true);
 			repaint();
 		});
 
+		itemAlign.addActionListener(actionEvent ->
+		{
+			for(AbstractCpsObject cps: model.getSelectedCpsObjects())
+				align(cps, model.getScaleDiv2());
+			repaint();
+		});
 		itemPaste
 				.addActionListener(actionEvent -> {
 					try {

+ 10 - 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);
@@ -296,6 +304,8 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
         });
 
         itemCopy.addActionListener(actionEvent -> {
+        	if(tempCps instanceof CpsUpperNode)
+				controller.getObjectsInDepth();
             controller.copy(upperNode);
             itemPaste.setEnabled(true);
             repaint();