From: Patrick Plitzner
Date: Tue, 27 Jun 2017 12:32:37 +0000 (+0200)
Subject: ref #6596 Replace CTRL+S keybinding with our own binding
X-Git-Tag: 4.8.0^2~47^2~6
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/a998e6a09635debf24e868706e181766bc34a941?ds=sidebyside
ref #6596 Replace CTRL+S keybinding with our own binding
- this is done via model processors
- this allows to use our SaveHandler to handle all save events
---
diff --git a/eu.etaxonomy.taxeditor.workbench/fragment.e4xmi b/eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
index f9f298216..eed7cb39c 100644
--- a/eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
+++ b/eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
@@ -87,7 +87,6 @@
-
@@ -125,4 +124,12 @@
+
+
+
+
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.workbench/plugin.xml b/eu.etaxonomy.taxeditor.workbench/plugin.xml
index 45b80bdf0..7600f4a5b 100644
--- a/eu.etaxonomy.taxeditor.workbench/plugin.xml
+++ b/eu.etaxonomy.taxeditor.workbench/plugin.xml
@@ -9,6 +9,17 @@
apply="always"
uri="fragment.e4xmi">
+
+
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/WorkbenchProcessor.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/WorkbenchProcessor.java
new file mode 100644
index 000000000..b52408bae
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/WorkbenchProcessor.java
@@ -0,0 +1,41 @@
+package eu.etaxonomy.taxeditor.workbench;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.commands.MBindingTable;
+import org.eclipse.e4.ui.model.application.commands.MKeyBinding;
+
+public class WorkbenchProcessor {
+
+ @Inject
+ @Named("org.eclipse.ui.contexts.window")
+ private MBindingTable bindingTable;
+
+ @Inject
+ @Named("eu.etaxonomy.taxeditor.workbench.keybinding.save")
+ private MKeyBinding saveBinding;
+
+
+ @Execute
+ public void execute() {
+ //swap legacy CTRL+S with the one defined in our model fragment
+ //to allow using our SaveHandler for all save actions
+ List bindings = bindingTable.getBindings();
+ MKeyBinding legacySaveBinding = null;
+ for (MKeyBinding mKeyBinding : bindings) {
+ String keySequence = mKeyBinding.getKeySequence();
+ if(keySequence.equals("CTRL+S")){
+ legacySaveBinding = mKeyBinding;
+ break;
+ }
+ }
+ if(legacySaveBinding!=null){
+ bindings.remove(legacySaveBinding);
+ }
+ bindings.add(saveBinding);
+ }
+}