From 987956b81e1efbb4dc049e02569922dfaee4c38e Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Wed, 2 Mar 2011 13:53:02 +0000 Subject: [PATCH] reworked open editor code added open after new menu composition --- .../kernel/internal/EditorService.java | 22 +++++++++++++++++++ .../internal/navigator/NavigatorViewPart.java | 21 ++---------------- .../kernel/internal/navigator/NewMenu.java | 3 ++- .../kernel/services/IEditorService.java | 3 +++ 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java index a8ca54c0e..d64760dcb 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java @@ -21,9 +21,15 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import org.conqat.ide.commons.ui.logging.LoggingUtils; import org.conqat.lib.commons.collections.CollectionUtils; import org.eclipse.emf.ecore.EObject; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.fortiss.tooling.kernel.ToolingKernelActivator; import org.fortiss.tooling.kernel.interfaces.IEditorBinding; +import org.fortiss.tooling.kernel.internal.editor.BindingEditor; +import org.fortiss.tooling.kernel.internal.editor.ModelElementEditorInput; import org.fortiss.tooling.kernel.services.IEditorService; /** @@ -56,6 +62,22 @@ public class EditorService extends EObjectAwareService<IEditorBinding<EObject>> } } + /** {@inheritDoc} */ + @Override + public void openInEditor(EObject element) { + try { + PlatformUI + .getWorkbench() + .getActiveWorkbenchWindow() + .getActivePage() + .openEditor(new ModelElementEditorInput(element), + BindingEditor.ID); + } catch (final PartInitException e) { + LoggingUtils.error(ToolingKernelActivator.getDefault(), + "Could not open editor with ID " + BindingEditor.ID, e); + } + } + /** {@inheritDoc} */ @Override public List<IEditorBinding<EObject>> getBindings(EObject element) { diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java index 6339b8d4c..90f8a3293 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java @@ -42,13 +42,11 @@ import org.eclipse.ui.IDecoratorManager; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; import org.eclipse.ui.progress.UIJob; import org.fortiss.tooling.kernel.ToolingKernelActivator; -import org.fortiss.tooling.kernel.internal.editor.BindingEditor; -import org.fortiss.tooling.kernel.internal.editor.ModelElementEditorInput; +import org.fortiss.tooling.kernel.services.IEditorService; import org.fortiss.tooling.kernel.util.EObjectSelectionUtils; import org.unicase.ecp.model.ECPWorkspaceManager; import org.unicase.ecp.model.NoWorkspaceException; @@ -273,23 +271,8 @@ public final class NavigatorViewPart extends ViewPart implements EObject element = EObjectSelectionUtils.getFirstElement(event .getSelection()); if (element != null) { - openInEditor(element); + IEditorService.INSTANCE.openInEditor(element); } } } - - /** Opens an editor for the given element. */ - private void openInEditor(EObject element) { - try { - PlatformUI - .getWorkbench() - .getActiveWorkbenchWindow() - .getActivePage() - .openEditor(new ModelElementEditorInput(element), - BindingEditor.ID); - } catch (final PartInitException e) { - LoggingUtils.error(ToolingKernelActivator.getDefault(), - "Could not open editor with ID " + BindingEditor.ID, e); - } - } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java index 1ffc233f8..54cab87af 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java @@ -27,6 +27,7 @@ import org.eclipse.ui.actions.CompoundContributionItem; import org.fortiss.tooling.kernel.interfaces.IPrototypeProvider; import org.fortiss.tooling.kernel.services.ICommandStackService; import org.fortiss.tooling.kernel.services.ICompositorService; +import org.fortiss.tooling.kernel.services.IEditorService; import org.fortiss.tooling.kernel.services.IModelElementService; import org.fortiss.tooling.kernel.services.IPrototypeService; import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype; @@ -107,7 +108,7 @@ public class NewMenu extends CompoundContributionItem { EObject newObject = prototype.getPrototypeCopy(); if (ICompositorService.INSTANCE.compose(container, newObject, null)) { - // TODO (FH): open editor + IEditorService.INSTANCE.openInEditor(newObject); } } }); diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java index c2eb53a8c..b32094a34 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java @@ -36,6 +36,9 @@ public interface IEditorService { /** Returns the singleton instance of the service. */ public static final IEditorService INSTANCE = new EditorService(); + /** Opens an editor for the given element. */ + void openInEditor(EObject element); + /** Returns registered editor bindings for the given {@link EObject}. */ List<IEditorBinding<EObject>> getBindings(EObject element); } -- GitLab