Skip to content
Snippets Groups Projects
Commit 65d47866 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

replaced comparison implementation

removed unnecessary base class
parent 5de99bc5
No related branches found
No related tags found
No related merge requests found
/*--------------------------------------------------------------------------+
$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();
}
}
......@@ -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();
}
}
}
......@@ -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()
......
......@@ -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);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment