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 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); + } +}