Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/OverlayVisibilityIcon.java')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/OverlayVisibilityIcon.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/OverlayVisibilityIcon.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/OverlayVisibilityIcon.java
new file mode 100644
index 00000000000..51b0ae9ad3a
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/OverlayVisibilityIcon.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2008 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common;
+
+import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.Point;
+
+/**
+ * This class is used to add UML visibility decoration over stereotype icons
+ *
+ */
+public class OverlayVisibilityIcon extends CompositeImageDescriptor {
+
+ /**
+ * Initial image
+ */
+ private Image initialImage;
+
+ /**
+ * Initial image
+ */
+ private ImageDescriptor visDesc;
+
+ /**
+ * Size of the initial image
+ */
+ private Point size;
+
+ /**
+ * Main constructor
+ */
+ public OverlayVisibilityIcon(Image initialImage, ImageDescriptor visibilityDescriptor) {
+ this.initialImage = initialImage;
+ this.visDesc = visibilityDescriptor;
+ this.size = new Point(initialImage.getBounds().width, initialImage.getBounds().height);
+ }
+
+ @Override
+ protected void drawCompositeImage(int arg0, int arg1) {
+ // Draw the base image
+ drawImage(initialImage.getImageData(), 0, 0);
+ ImageData imageData = visDesc.getImageData();
+ drawImage(imageData, size.x - imageData.width, size.y - imageData.height);
+ }
+
+ @Override
+ protected Point getSize() {
+ return size;
+ }
+
+ /**
+ * Get the image formed by overlaying different images on the base image
+ *
+ * @return composite image
+ */
+ public Image getImage() {
+ return createImage();
+ }
+}

Back to the top