Skip to content
Snippets Groups Projects
Commit fd6e3fee authored by Alexander Diewald's avatar Alexander Diewald
Browse files

Editor Bindings: Move priority sorting to the service

* Priorities define the sorting of ExtendableMultipageEditors and the
  order in which the MVC factories are queried by the delegate ones.
* Instead of doing this lazily when opening some editor, sort the
  bindings already when starting the binding service to obtain a clearly
  defined behavior.

Issue-Ref: 3883
Issue-Url: https://af3-developer.fortiss.org/issues/3883


Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
parent b48dacf4
No related branches found
No related tags found
1 merge request!81JFX: Base classes
...@@ -5,7 +5,7 @@ ConstraintUIService.java 433e35bb1c9bbc628c6ee070ff45632400becf4a GREEN ...@@ -5,7 +5,7 @@ ConstraintUIService.java 433e35bb1c9bbc628c6ee070ff45632400becf4a GREEN
ContextMenuService.java ca3c899293f25b70ce8e5f0d86ca2f9683329d81 GREEN ContextMenuService.java ca3c899293f25b70ce8e5f0d86ca2f9683329d81 GREEN
EditPartFactoryService.java e9180c0020f1769d9e24ef3c08f9ca5599dbc5c3 GREEN EditPartFactoryService.java e9180c0020f1769d9e24ef3c08f9ca5599dbc5c3 GREEN
MarkerService.java b01b7706034691683df7bbc2e7828c42574b3147 GREEN MarkerService.java b01b7706034691683df7bbc2e7828c42574b3147 GREEN
ModelEditorBindingService.java 3de291c87e2183ee2943e1c1d26f4bf78ce77a65 GREEN ModelEditorBindingService.java 577f5db41abf240291434dbad6bc6b0fde1eeb2b YELLOW
ModelElementHandlerService.java 07a30545ad687ff0fe13bf7a9348c41fb03e0b2c GREEN ModelElementHandlerService.java 07a30545ad687ff0fe13bf7a9348c41fb03e0b2c GREEN
NavigatorService.java 2b1361eac805996e22e5409dafff9707fbac3376 GREEN NavigatorService.java 2b1361eac805996e22e5409dafff9707fbac3376 GREEN
ToolingKernelUIInternal.java 38903445a9084b7908716a00f41621dfb3126fca GREEN ToolingKernelUIInternal.java 38903445a9084b7908716a00f41621dfb3126fca GREEN
......
...@@ -16,11 +16,13 @@ ...@@ -16,11 +16,13 @@
package org.fortiss.tooling.kernel.ui.internal; package org.fortiss.tooling.kernel.ui.internal;
import static java.util.Collections.emptyList; import static java.util.Collections.emptyList;
import static java.util.Collections.sort;
import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.getParentElement; import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.getParentElement;
import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.isChildElementOf; import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.isChildElementOf;
import static org.fortiss.tooling.kernel.utils.LoggingUtils.error; import static org.fortiss.tooling.kernel.utils.LoggingUtils.error;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.EventObject; import java.util.EventObject;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -97,6 +99,16 @@ public class ModelEditorBindingService extends EObjectAwareServiceBase<IModelEdi ...@@ -97,6 +99,16 @@ public class ModelEditorBindingService extends EObjectAwareServiceBase<IModelEdi
@Override @Override
public void startService() { public void startService() {
IKernelIntrospectionSystemService.getInstance().registerService(this); IKernelIntrospectionSystemService.getInstance().registerService(this);
for(List<IModelEditorBinding<EObject>> bindings : handlerMap.values()) {
sort(bindings, new Comparator<IModelEditorBinding<EObject>>() {
@Override
public int compare(IModelEditorBinding<EObject> o1,
IModelEditorBinding<EObject> o2) {
return o2.getPriority() - o1.getPriority();
}
});
}
} }
/** Registers the given editor binding with the service. */ /** Registers the given editor binding with the service. */
......
ActionBarContributor.java 18d9db3744c5381cca8b6823b5f7bc18183a1cfa GREEN ActionBarContributor.java 18d9db3744c5381cca8b6823b5f7bc18183a1cfa GREEN
ExtendableMultiPageEditor.java e06a7746f2bdcd2dfa279ae87e0578e0ee5046b2 GREEN ExtendableMultiPageEditor.java b18b5eed364eaa1c83cbcb64a89288d1ad263f7d YELLOW
IActionContributingEditor.java 4aa7496d67822de919a8cf0af0ddaafc61bf2919 GREEN IActionContributingEditor.java 4aa7496d67822de919a8cf0af0ddaafc61bf2919 GREEN
ModelElementEditorInput.java e269eff5d992d375a646e54d048f1f0efc6144dd GREEN ModelElementEditorInput.java e269eff5d992d375a646e54d048f1f0efc6144dd GREEN
TutorialStepUIEditor.java 9eadc96c302b5131ff4cc3715777718fa06ec7e8 GREEN TutorialStepUIEditor.java 9eadc96c302b5131ff4cc3715777718fa06ec7e8 GREEN
......
...@@ -15,12 +15,10 @@ ...@@ -15,12 +15,10 @@
+--------------------------------------------------------------------------*/ +--------------------------------------------------------------------------*/
package org.fortiss.tooling.kernel.ui.internal.editor; package org.fortiss.tooling.kernel.ui.internal.editor;
import static java.util.Collections.sort;
import static org.conqat.ide.commons.ui.logging.LoggingUtils.error; import static org.conqat.ide.commons.ui.logging.LoggingUtils.error;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
import java.util.EventObject; import java.util.EventObject;
import java.util.List; import java.util.List;
...@@ -186,12 +184,6 @@ public class ExtendableMultiPageEditor extends MultiPageEditorPart ...@@ -186,12 +184,6 @@ public class ExtendableMultiPageEditor extends MultiPageEditorPart
int pageIndex = 0; int pageIndex = 0;
List<IModelEditorBinding<EObject>> bindings = List<IModelEditorBinding<EObject>> bindings =
IModelEditorBindingService.getInstance().getBindings(editedObject); IModelEditorBindingService.getInstance().getBindings(editedObject);
sort(bindings, new Comparator<IModelEditorBinding<EObject>>() {
@Override
public int compare(IModelEditorBinding<EObject> o1, IModelEditorBinding<EObject> o2) {
return o2.getPriority() - o1.getPriority();
}
});
for(IModelEditorBinding<EObject> editorBinding : bindings) { for(IModelEditorBinding<EObject> editorBinding : bindings) {
try { try {
Class<? extends IEditorPart> editorClass = Class<? extends IEditorPart> editorClass =
......
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