sysos commented and diagram stored
diff --git a/org.eclipse.emf.refactor.smells.papyrus/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.smells.papyrus/META-INF/MANIFEST.MF
index 83971d9..6fdb8eb 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/META-INF/MANIFEST.MF
+++ b/org.eclipse.emf.refactor.smells.papyrus/META-INF/MANIFEST.MF
@@ -10,6 +10,7 @@
  org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.1",
  org.eclipse.emf.refactor.smells;bundle-version="0.7.0",
  org.eclipse.emf.refactor.smells.runtime;bundle-version="0.7.0",
- org.eclipse.emf.refactor.metrics.runtime;bundle-version="0.7.0"
+ org.eclipse.emf.refactor.metrics.runtime;bundle-version="0.7.0",
+ org.eclipse.emf.refactor.refactoring.papyrus;bundle-version="0.8.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.class b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.class
index 671acd1..c449dcb 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.class
+++ b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.class b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.class
index c334173..e2ca799 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.class
+++ b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.class b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.class
index 31819f7..d96d515 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.class
+++ b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.class b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.class
index e3f0632..3292fd9 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.class
+++ b/org.eclipse.emf.refactor.smells.papyrus/bin/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.java b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.java
index 440558d..a1a2fc4 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.java
+++ b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/handler/FindModelSmellHandler.java
@@ -8,6 +8,7 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.refactor.refactoring.papyrus.managers.PapyrusManager;
 import org.eclipse.emf.refactor.smells.papyrus.managers.HighlightManager;
 import org.eclipse.emf.refactor.smells.papyrus.managers.PapyrusSelectionManager;
 import org.eclipse.emf.refactor.smells.runtime.managers.RuntimeManager;
@@ -39,6 +40,7 @@
 		ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
 		HighlightManager.getInstance().setComponents(PapyrusSelectionManager.getObject(selection));
 		selectedEObject = PapyrusSelectionManager.getEObject(selection);
+		PapyrusManager.getInstance().setDiagram(PapyrusSelectionManager.getDiagram(selection));
 		if (selectedEObject == null) {	
 			MessageDialog.openError(
 					shell,
diff --git a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.java b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.java
index 2d53b55..b47580e 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.java
+++ b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/HighlightManager.java
@@ -60,8 +60,8 @@
 	}
 
 	public void registerDecorator(IDecorator decorator, DecoratorTarget decoratorTarget) {
-		System.out.println("Register decorator; decorator: " + decorator.toString());
-		System.out.println("Register decorator; decoratorTarget: " + decoratorTarget.toString());
+//		System.out.println("Register decorator; decorator: " + decorator.toString());
+//		System.out.println("Register decorator; decoratorTarget: " + decoratorTarget.toString());
 		View view = (View) decoratorTarget.getAdapter(View.class);
 
 		if(decoratorTargets.containsKey(view.getElement())){
@@ -85,7 +85,7 @@
 	}
 
 	public void unregisterDecorator(IDecorator decorator) {
-		System.out.println("Unregister decorator; decorator: " + decorator.toString());
+//		System.out.println("Unregister decorator; decorator: " + decorator.toString());
 		decorators.remove(decorator);
 	}
 
diff --git a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.java b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.java
index 952c3f9..cc1d138 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.java
+++ b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/managers/PapyrusSelectionManager.java
@@ -1,9 +1,15 @@
 package org.eclipse.emf.refactor.smells.papyrus.managers;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.facet.infra.browser.uicore.internal.model.ModelElementItem;
 import org.eclipse.emf.refactor.smells.managers.SelectionManager;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 
@@ -46,5 +52,42 @@
 		}
 		return null;
 	}
+	
+	@SuppressWarnings("unchecked")
+	public static Object[] getSelection(ISelection selection) {
+		System.out.println("selection instanceof StructuredSelection: " + 
+									(selection instanceof StructuredSelection));
+		if (null != selection) {
+			if (selection instanceof StructuredSelection) {
+				StructuredSelection ss = (StructuredSelection) selection;
+				if (null == ss.getFirstElement())
+					return ss.toArray();
+				List<Object> list = new ArrayList<Object>();
+				final Iterator<Object> i = ss.iterator();
+				while (i.hasNext()) {
+					final Object selectedEObject = i.next();
+					list.add(selectedEObject);
+				}
+				return list.toArray();
+			}
+		}
+		return new Object[0];
+	}
+
+	public static Diagram getDiagram(ISelection selection) {
+		for (Object o : getSelection(selection)) {
+			if (o instanceof IGraphicalEditPart) {
+		   	System.out.println("instanceof IGraphicalEditPart");
+		    	IGraphicalEditPart gep = (IGraphicalEditPart) o;
+		    	System.out.println("element: " + gep.resolveSemanticElement());
+		    	System.out.println("notation view: " + gep.getNotationView());
+		    	System.out.println("notation view element: " + gep.getNotationView().getElement());
+		    	EObject root = EcoreUtil.getRootContainer(gep.getNotationView());
+		    	System.out.println("root: " + root);
+		    	return (Diagram) root;
+		    }
+		}
+		return null;
+	}
 
 }
diff --git a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.java b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.java
index 1400db6..3b2588b 100644
--- a/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.java
+++ b/org.eclipse.emf.refactor.smells.papyrus/src/org/eclipse/emf/refactor/smells/papyrus/ui/PapyrusDecorator.java
@@ -100,7 +100,7 @@
 
 	@Override
 	public void refresh() {
-		System.out.println("Start REFRESH");
+//		System.out.println("Start REFRESH");
 		removeDecoration();
 		IGraphicalEditPart editPart = (IGraphicalEditPart) getDecoratorTarget().getAdapter(EditPart.class);
 		
@@ -126,7 +126,7 @@
 				} 
 			}
 		}
-		System.out.println("End REFRESH");
+//		System.out.println("End REFRESH");
 	}
 	
 	private boolean selectionContains(EObject element){