From 61736b6ae2d26ce69f9e371569d6599c4ba2d331 Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Mon, 28 Nov 2011 16:43:14 +0000 Subject: [PATCH] ExtendableMultiPageEditor is returned as IModelEditor if it is the active editor (and no sub-editor is instance of IModelEditor). refs 331 --- .../kernel/ui/extension/IModelEditor.java | 5 +-- .../internal/ModelEditorBindingService.java | 13 +++++--- .../editor/ExtendableMultiPageEditor.java | 31 +++++++++++++++++-- .../service/IModelEditorBindingService.java | 4 +-- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelEditor.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelEditor.java index ac8290e00..3caba2c5e 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelEditor.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelEditor.java @@ -26,11 +26,9 @@ import org.eclipse.ui.IEditorPart; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating RED Hash: + * @ConQAT.Rating YELLOW Hash: F0A94041C50D164FB6A321C68DB038D5 */ public interface IModelEditor<T extends EObject> extends IEditorPart { - // FIXME (FH): define - /** Returns the edited object. */ T getEditedObject(); @@ -39,5 +37,4 @@ public interface IModelEditor<T extends EObject> extends IEditorPart { /** Clears all highlightings from the editor. */ void clearAllHighlights(); - } diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java index 772e569fe..8e0002d40 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java @@ -52,7 +52,7 @@ import org.fortiss.tooling.kernel.utils.ModelElementUtils; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: D719F4D54DBF1707B1BE0B6FEA65624A + * @ConQAT.Rating YELLOW Hash: 3B1883C7F53B739120A1E2B507BCB8AB */ public class ModelEditorBindingService extends EObjectAwareServiceBase<IModelEditorBinding<EObject>> implements @@ -259,9 +259,14 @@ public class ModelEditorBindingService extends IEditorPart activeEditor = PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage().getActiveEditor(); if (activeEditor instanceof ExtendableMultiPageEditor) { - return ((ExtendableMultiPageEditor) activeEditor) - .getActiveModelEditor(); - } else if (activeEditor instanceof IModelEditor) { + ExtendableMultiPageEditor extEditor = (ExtendableMultiPageEditor) activeEditor; + IModelEditor<EObject> inner = extEditor.getActiveModelEditor(); + if (inner != null) { + return inner; + } + return extEditor; + } + if (activeEditor instanceof IModelEditor) { return (IModelEditor<EObject>) activeEditor; } return null; diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ExtendableMultiPageEditor.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ExtendableMultiPageEditor.java index 5708234da..5d099560b 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ExtendableMultiPageEditor.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ExtendableMultiPageEditor.java @@ -61,8 +61,7 @@ import org.fortiss.tooling.kernel.ui.util.PropertiesConstantUtils; */ public class ExtendableMultiPageEditor extends MultiPageEditorPart implements ITabbedPropertySheetPageContributor, CommandStackListener, - ISaveablePart { - + ISaveablePart, IModelEditor<EObject> { /** The editor's ID. */ public static String ID = ExtendableMultiPageEditor.class.getName(); @@ -278,4 +277,32 @@ public class ExtendableMultiPageEditor extends MultiPageEditorPart implements } return null; } + + /** {@inheritDoc} */ + @Override + public EObject getEditedObject() { + return editedObject; + } + + /** {@inheritDoc} */ + @SuppressWarnings("rawtypes") + @Override + public void setHighlight(EObject element, boolean highlighted) { + // delegate to active editor + IEditorPart part = getActiveEditor(); + if (part instanceof IModelEditor) { + ((IModelEditor) part).setHighlight(element, highlighted); + } + } + + /** {@inheritDoc} */ + @SuppressWarnings("rawtypes") + @Override + public void clearAllHighlights() { + // delegate to active editor + IEditorPart part = getActiveEditor(); + if (part instanceof IModelEditor) { + ((IModelEditor) part).clearAllHighlights(); + } + } } diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IModelEditorBindingService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IModelEditorBindingService.java index 6e53554a7..526dbccd8 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IModelEditorBindingService.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IModelEditorBindingService.java @@ -33,7 +33,7 @@ import org.fortiss.tooling.kernel.ui.internal.ModelEditorBindingService; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 8EFBD4397AB482FDAAD1F96749BBEAE0 + * @ConQAT.Rating YELLOW Hash: 575EDF6DF5A306410AC134948FAF6D8D */ public interface IModelEditorBindingService { @@ -46,7 +46,7 @@ public interface IModelEditorBindingService { /** Closes editors which depend on the given element or a sub-element. */ void closeEditors(EObject parentElement); - /** Returns the currently editor. */ + /** Returns the currently active editor. */ IModelEditor<EObject> getActiveEditor(); /** -- GitLab