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 ac8290e0080fcbd21f1f1ac2ecdf9d200c46bd68..3caba2c5e8f0f42e0ed2c99e9c44c9f14b927f71 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 772e569fec5c6187fdff97b2a04138940b64b670..8e0002d40b1356064e0fb7b94873fc4b5ed82bf9 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 5708234da7d5aa0e5c74d4878b13aa29fab955c9..5d099560bafb77b8088ca627d4db09ee6374b7a6 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 6e53554a78ed54558ec744044f421cbb728f026f..526dbccd89f09bd9cf797c9a8d71ed50ee87453a 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(); /**