From e4479b21c3e675dd0762c6a71efc220101d01513 Mon Sep 17 00:00:00 2001
From: Lukas Ladenberger <lukas.ladenberger@googlemail.com>
Date: Wed, 7 Nov 2012 15:13:11 +0100
Subject: [PATCH] improved invisible/visible attribute

---
 .../icons/icon_invisible.gif                  | Bin 0 -> 951 bytes
 .../gef/editor/EditorImageRegistry.java       |   6 +++++-
 .../editor/figure/AbstractBMotionFigure.java  |  18 ++++++++++++++----
 .../gef/editor/figure/ShapeFigure.java        |  10 ++++++++--
 .../gef/editor/part/SwitchPart.java           |   4 ++++
 5 files changed, 31 insertions(+), 7 deletions(-)
 create mode 100644 de.bmotionstudio.gef.editor/icons/icon_invisible.gif

diff --git a/de.bmotionstudio.gef.editor/icons/icon_invisible.gif b/de.bmotionstudio.gef.editor/icons/icon_invisible.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2b5ef47f3c817f65e6f2b16eed6091735fc6588c
GIT binary patch
literal 951
zcmZ?wbhEHb6krfw_|DJ3z`*eT|Nn;8wl|+XGdA=w#$_^EJ9%x|r)TG|<noQJ_a4V5
zCazwy=KlTr7cN`?sUF3nAux<WK=CIFBLf3JgAT|~pgh6AF@-^%L&l@vK?5@*msX8I
zgF_=TH>a77Ljr>%yM(b?K}6vKW;P~)Khm8G7+kxVWLshu2sxf)VvFEPIq*QfnN5*(
z#u^QWXH2ts*>o;=3Lb1=u$BB%Vvuman~7V1CHI3r!=-vgkvBc35*nK4yECi&*lxVi
oYc`{h-36}VCDCk|SJezU4c5i(EKwGk!yTya$XdtA#=>9?07>{wVE_OC

literal 0
HcmV?d00001

diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
index 5829e8f8..56b16757 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
@@ -27,6 +27,7 @@ public class EditorImageRegistry implements IBMotionStudioImageRegistry {
 	public static final String IMG_ICON_DELETE_EDIT = "icon_delete_edit";
 	public static final String IMG_ICON_TR_UP = "icon_tr_up";
 	public static final String IMG_ICON_TR_LEFT = "icon_tr_left";
+	public static final String IMG_ICON_CONTROL_HIDDEN = "icon_control_hidden";
 
 	public static final String IMG_ICON_JPG = "icon_jpg";
 	public static final String IMG_ICON_GIF = "icon_gif";
@@ -63,11 +64,14 @@ public class EditorImageRegistry implements IBMotionStudioImageRegistry {
 				BMotionEditorPlugin.PLUGIN_ID, "icons/icon_connection16.gif");
 		BMotionStudioImage.registerImage(IMG_ICON_CONNECTION24,
 				BMotionEditorPlugin.PLUGIN_ID, "icons/icon_connection24.gif");
+		BMotionStudioImage.registerImage(IMG_ICON_CONTROL_HIDDEN,
+				BMotionEditorPlugin.PLUGIN_ID, "icons/icon_invisible.gif");
 		BMotionStudioImage.registerImage(IMG_ICON_NEW_WIZ, "org.eclipse.ui",
 				"$nl$/icons/full/etool16/new_wiz.gif");
 		BMotionStudioImage.registerImage(IMG_ICON_DELETE_EDIT,
 				"org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif");
-
+		BMotionStudioImage.registerImage(IMG_ICON_DELETE_EDIT,
+				"org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif");
 		BMotionStudioImage
 				.registerImage(IMG_ICON_TR_UP, BMotionEditorPlugin.PLUGIN_ID,
 						"icons/eclipse16/updated_co.gif");
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/AbstractBMotionFigure.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/AbstractBMotionFigure.java
index 51570855..479b6923 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/AbstractBMotionFigure.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/AbstractBMotionFigure.java
@@ -8,6 +8,10 @@ package de.bmotionstudio.gef.editor.figure;
 
 import org.eclipse.draw2d.Clickable;
 import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+import de.bmotionstudio.gef.editor.BMotionStudioImage;
+import de.bmotionstudio.gef.editor.EditorImageRegistry;
 
 /**
  * @author Lukas Ladenberger
@@ -15,8 +19,9 @@ import org.eclipse.draw2d.Graphics;
  */
 public class AbstractBMotionFigure extends Clickable {
 
-	private boolean visible;
-	private boolean isRunning;
+	protected boolean visible;
+	protected boolean isRunning;
+	public static final int HIDDEN_ALPHA_VALUE = 35;
 
 	public AbstractBMotionFigure() {
 		this.visible = true;
@@ -41,8 +46,13 @@ public class AbstractBMotionFigure extends Clickable {
 
 	@Override
 	public void paint(Graphics g) {
-		if (!this.visible && !isRunning)
-			g.setAlpha(25);
+		Rectangle clientArea = getClientArea();
+		if (!this.visible && !isRunning()) {
+			g.drawImage(BMotionStudioImage
+					.getImage(EditorImageRegistry.IMG_ICON_CONTROL_HIDDEN),
+					clientArea.x, clientArea.y);
+			g.setAlpha(HIDDEN_ALPHA_VALUE);
+		}
 		super.paint(g);
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java
index 6d647b3b..9ddf860f 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java
@@ -83,7 +83,10 @@ public class ShapeFigure extends AbstractBMotionFigure {
 			@Override
 			protected void fillShape(Graphics g) {
 
-				g.setAlpha(alpha);
+				if (!visible && !isRunning)
+					g.setAlpha(AbstractBMotionFigure.HIDDEN_ALPHA_VALUE);
+				else
+					g.setAlpha(alpha);
 				g.setAntialias(SWT.ON);
 
 				if (fillType == FILL_TYPE_GRADIENT) { // Gradient fill type
@@ -168,7 +171,10 @@ public class ShapeFigure extends AbstractBMotionFigure {
 			@Override
 			protected void outlineShape(Graphics g) {
 
-				g.setAlpha(outlineAlpha);
+				if (!visible && !isRunning)
+					g.setAlpha(AbstractBMotionFigure.HIDDEN_ALPHA_VALUE);
+				else
+					g.setAlpha(outlineAlpha);
 				g.setAntialias(SWT.ON);
 				g.setForegroundColor(this.getForegroundColor());
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/SwitchPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/SwitchPart.java
index 6b17cb70..cb28c211 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/SwitchPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/SwitchPart.java
@@ -64,6 +64,10 @@ public class SwitchPart extends BMSAbstractEditPart {
 		if (aID.equals(AttributeConstants.ATTRIBUTE_SWITCH_DIRECTION))
 			refreshEditLayout(figure, model);
 
+		if (aID.equals(AttributeConstants.ATTRIBUTE_VISIBLE))
+			((SwitchFigure) figure)
+					.setVisible(Boolean.valueOf(value.toString()));
+
 	}
 
 	@Override
-- 
GitLab