From 65d478669769cd8013b6f475f4ce9b794565801e Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Wed, 2 Mar 2011 13:39:10 +0000 Subject: [PATCH] replaced comparison implementation removed unnecessary base class --- .../kernel/base/EditorBindingBase.java | 39 ------------------- .../kernel/internal/EditorService.java | 27 +++++++++---- .../kernel/internal/editor/BindingEditor.java | 4 +- .../kernel/services/IEditorService.java | 4 +- 4 files changed, 24 insertions(+), 50 deletions(-) delete mode 100644 org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java deleted file mode 100644 index 478a5b23a..000000000 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java +++ /dev/null @@ -1,39 +0,0 @@ -/*--------------------------------------------------------------------------+ -$Id$ -| | -| Copyright 2011 ForTISS GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.base; - -import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.kernel.interfaces.IEditorBinding; - -/** - * Abstract class for editor bindings. - * - * @author hoelzlf - * @author $Author$ - * @version $Rev$ - * @levd.rating RED Rev: - */ -public abstract class EditorBindingBase<T extends EObject> implements - IEditorBinding<EObject>, Comparable<IEditorBinding<EObject>> { - - /** {@inheritDoc} */ - @Override - public final int compareTo(IEditorBinding<EObject> eb) { - return eb.getPriority() - getPriority(); - } -} 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 34ed34c81..a8ca54c0e 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 @@ -18,11 +18,12 @@ $Id$ package org.fortiss.tooling.kernel.internal; import java.util.Collections; +import java.util.Comparator; import java.util.List; import org.conqat.lib.commons.collections.CollectionUtils; import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.kernel.base.EditorBindingBase; +import org.fortiss.tooling.kernel.interfaces.IEditorBinding; import org.fortiss.tooling.kernel.services.IEditorService; /** @@ -33,9 +34,8 @@ import org.fortiss.tooling.kernel.services.IEditorService; * @version $Rev$ * @levd.rating RED Rev: */ -public class EditorService extends - EObjectAwareService<EditorBindingBase<EObject>> implements - IEditorService { +public class EditorService extends EObjectAwareService<IEditorBinding<EObject>> + implements IEditorService { /** The compositor extension point ID. */ private static final String EXTENSION_POINT_NAME = "org.fortiss.tooling.kernel.modelEditorBinding"; @@ -50,15 +50,16 @@ public class EditorService extends public EditorService() { super(); // sort editor bindings by priority. + EditorBindingComparator comparator = new EditorBindingComparator(); for (Class<?> clazz : handlerMap.keySet()) { - Collections.sort(handlerMap.get(clazz)); + Collections.sort(handlerMap.get(clazz), comparator); } } /** {@inheritDoc} */ @Override - public List<EditorBindingBase<EObject>> getBindings(EObject element) { - List<EditorBindingBase<EObject>> bindings = getRegisteredHandlers(element + public List<IEditorBinding<EObject>> getBindings(EObject element) { + List<IEditorBinding<EObject>> bindings = getRegisteredHandlers(element .getClass()); if (bindings == null) { bindings = CollectionUtils.emptyList(); @@ -83,4 +84,16 @@ public class EditorService extends protected String getHandlerClassAttribute() { return ATTRIBUTE_NAME; } + + /** {@link Comparator} for {@link IEditorBinding}s. */ + private static class EditorBindingComparator implements + Comparator<IEditorBinding<EObject>> { + + /** {@inheritDoc} */ + @Override + public int compare(IEditorBinding<EObject> eb0, + IEditorBinding<EObject> eb1) { + return eb1.getPriority() - eb0.getPriority(); + } + } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java index 94d140c1b..21be42326 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java @@ -30,7 +30,7 @@ import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import org.fortiss.tooling.kernel.ToolingKernelActivator; -import org.fortiss.tooling.kernel.base.EditorBindingBase; +import org.fortiss.tooling.kernel.interfaces.IEditorBinding; import org.fortiss.tooling.kernel.interfaces.IHandler; import org.fortiss.tooling.kernel.services.IEditorService; @@ -120,7 +120,7 @@ public class BindingEditor extends MultiPageEditorPart implements @Override protected void createPages() { int pageIndex = 0; - for (EditorBindingBase<EObject> editorBinding : IEditorService.INSTANCE + for (IEditorBinding<EObject> editorBinding : IEditorService.INSTANCE .getBindings(editedObject)) { try { IEditorPart editorPart = editorBinding.getEditorClass() 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 d6d00d8b6..c2eb53a8c 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 @@ -20,7 +20,7 @@ package org.fortiss.tooling.kernel.services; import java.util.List; import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.kernel.base.EditorBindingBase; +import org.fortiss.tooling.kernel.interfaces.IEditorBinding; import org.fortiss.tooling.kernel.internal.EditorService; /** @@ -37,5 +37,5 @@ public interface IEditorService { public static final IEditorService INSTANCE = new EditorService(); /** Returns registered editor bindings for the given {@link EObject}. */ - List<EditorBindingBase<EObject>> getBindings(EObject element); + List<IEditorBinding<EObject>> getBindings(EObject element); } -- GitLab