Browse Source

Added SheetLabelProvider for default element types (Note, Text,NoteAttachment)

Andreas Mülder 13 years ago
parent
commit
f576e7bac9

+ 47 - 31
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/SheetLabelProvider.java

@@ -11,9 +11,12 @@
 package org.yakindu.sct.ui.editor.propertysheets;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewType;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.SharedImages;
 import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.BaseLabelProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
@@ -35,20 +38,23 @@ public class SheetLabelProvider extends BaseLabelProvider implements
 		if (element instanceof IGraphicalEditPart) {
 			EObject semanticElement = ((IGraphicalEditPart) element)
 					.resolveSemanticElement();
-			
-			if(semanticElement == null)
-				return null;
-			
-			IElementType elementType = ElementTypeRegistry.getInstance()
-					.getElementType(semanticElement);
-			StringBuilder builder = new StringBuilder();
-			builder.append(elementType.getDisplayName());
-			if (semanticElement instanceof NamedElement
-					&& ((NamedElement) semanticElement).getName() != null) {
-				builder.append(' ');
-				builder.append(((NamedElement) semanticElement).getName());
+
+			if (semanticElement == null) {
+				View view = ((IGraphicalEditPart) element).getNotationView();
+				return view.getType();
+			} else {
+
+				IElementType elementType = ElementTypeRegistry.getInstance()
+						.getElementType(semanticElement);
+				StringBuilder builder = new StringBuilder();
+				builder.append(elementType.getDisplayName());
+				if (semanticElement instanceof NamedElement
+						&& ((NamedElement) semanticElement).getName() != null) {
+					builder.append(' ');
+					builder.append(((NamedElement) semanticElement).getName());
+				}
+				return builder.toString();
 			}
-			return builder.toString();
 		}
 		return null;
 	}
@@ -58,26 +64,36 @@ public class SheetLabelProvider extends BaseLabelProvider implements
 		if (element instanceof IGraphicalEditPart) {
 			EObject semanticElement = ((IGraphicalEditPart) element)
 					.resolveSemanticElement();
-			
-			if(semanticElement == null)
-				return null;
-			
-			IElementType elementType = ElementTypeRegistry.getInstance()
-					.getElementType(semanticElement);
-			Image image = DiagramActivator.getDefault().getImageRegistry()
-					.get(elementType.getIconURL().toString());
-			if (image == null) {
-				ImageDescriptor desc = ImageDescriptor
-						.createFromURL(elementType.getIconURL());
-				DiagramActivator
-						.getDefault()
-						.getImageRegistry()
-						.put(elementType.getIconURL().toString(),
-								desc.createImage());
-				return DiagramActivator.getDefault().getImageRegistry()
+
+			if (semanticElement == null) {
+				// Default images
+				View view = ((IGraphicalEditPart) element).getNotationView();
+				String viewType = view.getType();
+				if (ViewType.NOTE.equals(viewType)) {
+					return SharedImages.get(SharedImages.IMG_NOTE);
+				} else if (ViewType.TEXT.equals(viewType)) {
+					return SharedImages.get(SharedImages.IMG_TEXT);
+				}
+			} else {
+				// custom images
+				IElementType elementType = ElementTypeRegistry.getInstance()
+						.getElementType(semanticElement);
+				Image image = DiagramActivator.getDefault().getImageRegistry()
 						.get(elementType.getIconURL().toString());
+				if (image == null) {
+					ImageDescriptor desc = ImageDescriptor
+							.createFromURL(elementType.getIconURL());
+					DiagramActivator
+							.getDefault()
+							.getImageRegistry()
+							.put(elementType.getIconURL().toString(),
+									desc.createImage());
+					return DiagramActivator.getDefault().getImageRegistry()
+							.get(elementType.getIconURL().toString());
+				}
+				return image;
+
 			}
-			return image;
 		}
 		return null;
 	}