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
ContextMenuService.java ca3c899293f25b70ce8e5f0d86ca2f9683329d81 GREEN
EditPartFactoryService.java e9180c0020f1769d9e24ef3c08f9ca5599dbc5c3 GREEN
MarkerService.java b01b7706034691683df7bbc2e7828c42574b3147 GREEN
ModelEditorBindingService.java 3de291c87e2183ee2943e1c1d26f4bf78ce77a65 GREEN
ModelEditorBindingService.java 577f5db41abf240291434dbad6bc6b0fde1eeb2b YELLOW
ModelElementHandlerService.java 07a30545ad687ff0fe13bf7a9348c41fb03e0b2c GREEN
NavigatorService.java 2b1361eac805996e22e5409dafff9707fbac3376 GREEN
ToolingKernelUIInternal.java 38903445a9084b7908716a00f41621dfb3126fca GREEN
......
......@@ -16,11 +16,13 @@
package org.fortiss.tooling.kernel.ui.internal;
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.isChildElementOf;
import static org.fortiss.tooling.kernel.utils.LoggingUtils.error;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.EventObject;
import java.util.HashMap;
import java.util.List;
......@@ -97,6 +99,16 @@ public class ModelEditorBindingService extends EObjectAwareServiceBase<IModelEdi
@Override
public void startService() {
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. */
......
ActionBarContributor.java 18d9db3744c5381cca8b6823b5f7bc18183a1cfa GREEN
ExtendableMultiPageEditor.java e06a7746f2bdcd2dfa279ae87e0578e0ee5046b2 GREEN
ExtendableMultiPageEditor.java b18b5eed364eaa1c83cbcb64a89288d1ad263f7d YELLOW
IActionContributingEditor.java 4aa7496d67822de919a8cf0af0ddaafc61bf2919 GREEN
ModelElementEditorInput.java e269eff5d992d375a646e54d048f1f0efc6144dd GREEN
TutorialStepUIEditor.java 9eadc96c302b5131ff4cc3715777718fa06ec7e8 GREEN
......
......@@ -15,12 +15,10 @@
+--------------------------------------------------------------------------*/
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 java.lang.reflect.Constructor;
import java.util.Collection;
import java.util.Comparator;
import java.util.EventObject;
import java.util.List;
......@@ -186,12 +184,6 @@ public class ExtendableMultiPageEditor extends MultiPageEditorPart
int pageIndex = 0;
List<IModelEditorBinding<EObject>> bindings =
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) {
try {
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