Index: src/org/jbpm/gd/common/editor/Editor.java =================================================================== --- src/org/jbpm/gd/common/editor/Editor.java (revision 31511) +++ src/org/jbpm/gd/common/editor/Editor.java (working copy) @@ -78,6 +78,8 @@ private ContentProvider contentProvider; + private IPropertySheetPage propertySheetPage; + public void init(IEditorSite site, IEditorInput input) throws PartInitException { super.init(site, input); @@ -306,7 +308,7 @@ } else if (adapter == IContentOutlinePage.class) { return getOutlineViewer(); } else if (adapter == IPropertySheetPage.class) { - return new TabbedPropertySheetPage(this); + return getPropertySheetPage(); } else if (adapter == org.eclipse.gef.GraphicalViewer.class) { return getGraphicalViewer(); } else { @@ -314,6 +316,13 @@ } return result; } + + public IPropertySheetPage getPropertySheetPage() { + if (propertySheetPage == null) { + propertySheetPage = new TabbedPropertySheetPage(this); + } + return propertySheetPage; + } public void doSave(IProgressMonitor monitor) { if (!checkReadOnly()) return; Index: src/org/jbpm/gd/common/editor/GraphicalViewer.java =================================================================== --- src/org/jbpm/gd/common/editor/GraphicalViewer.java (revision 31511) +++ src/org/jbpm/gd/common/editor/GraphicalViewer.java (working copy) @@ -29,8 +29,11 @@ import org.eclipse.gef.ui.actions.ToggleGridAction; import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler; import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.views.properties.IPropertySheetPage; import org.jbpm.gd.jpdl.Constants; @@ -72,9 +75,15 @@ public FigureCanvas getFigureCanvas() { return super.getFigureCanvas(); } - + public Editor getEditor() { return editor; } + protected void fireSelectionChanged() { + super.fireSelectionChanged(); + if (getSelection() != null) { + editor.getPropertySheetPage().selectionChanged(editor, getSelection()); + } + } } Index: src/org/jbpm/gd/jpdl/editor/JpdlEditor.java =================================================================== --- src/org/jbpm/gd/jpdl/editor/JpdlEditor.java (revision 31511) +++ src/org/jbpm/gd/jpdl/editor/JpdlEditor.java (working copy) @@ -75,7 +75,7 @@ return new GraphicalViewer(this) { protected void initEditPartFactory() { setEditPartFactory(new JpdlGraphicalEditPartFactory()); - } + } }; }