</or>
</visibleWhen>
</command>
- <command
- commandId="eu.etaxonomy.taxeditor.store.open"
- label="Edit"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <with
- variable="selection">
- <reference
- definitionId="isClassification">
- </reference>
- </with>
- </visibleWhen>
- </command>
+ <dynamic
+ class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
+ id="eu.etaxonomy.taxeditor.navigation.cdmViewerContextMenu">
+ </dynamic>
<command
commandId="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym"
label="%command.label.6"
</test>
</definition>
</extension>
- <extension
- point="eu.etaxonomy.taxeditor.store.cdmViewer">
- <cdmViewer
- class="eu.etaxonomy.taxeditor.navigation.NavigationCdmViewer">
- </cdmViewer>
- </extension>
</plugin>
+++ /dev/null
-package eu.etaxonomy.taxeditor.navigation;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.PlatformUI;
-
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
-import eu.etaxonomy.taxeditor.view.ICdmViewer;
-
-public class NavigationCdmViewer implements ICdmViewer {
-
-
- @SuppressWarnings("unused")
- private final Logger logger = Logger.getLogger(NavigationCdmViewer.class);
-
- @Override
- public void show(Object input, Class<?> viewerClass) {
- if(viewerClass.equals(NewClassificationWizard.class)){
- if(input instanceof Classification){
- Classification classification = (Classification)input;
- NewClassificationWizard classificationWizard = new NewClassificationWizard();
- classificationWizard.init(null, null);
- classificationWizard.setEntity(classification);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), classificationWizard);
- dialog.open();
- }
- }
- }
-
- @Override
- public Map<Class<?>, String> getViewerClasses(Object input) {
- Map<Class<?>, String> viewerNameMap = new HashMap<Class<?>, String>();
- if(input instanceof Classification){
- viewerNameMap.put(NewClassificationWizard.class, "Classification Wizard");
- }
- return viewerNameMap;
- }
-
-}
eu.etaxonomy.taxeditor.editor.definedterm.input,
eu.etaxonomy.taxeditor.featuretree,
eu.etaxonomy.taxeditor.handler,
+ eu.etaxonomy.taxeditor.handler.defaultHandler,
eu.etaxonomy.taxeditor.io,
eu.etaxonomy.taxeditor.io.wizard,
eu.etaxonomy.taxeditor.labels,
id="eu.etaxonomy.taxeditor.store.open"
name="%command.name.15">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenClassificationWizardHandler"
+ id="eu.etaxonomy.taxeditor.command.openClassificationWizard"
+ name="Open Classification Wizard">
+ <commandParameter
+ id="eu.etaxonomy.taxeditor.command.openClassificationWizard.uuid"
+ name="Classification Uuid"
+ optional="true"
+ typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+ </commandParameter>
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <commandParameterType
+ converter="eu.etaxonomy.taxeditor.handler.UuidsParameterTypeConverter"
+ id="eu.etaxonomy.taxeditor.uuidParameterType"
+ type="java.util.UUID">
+ </commandParameterType>
</extension>
<extension
point="org.eclipse.ui.importWizards">
</variable>
</sourceProvider>
</extension>
+<extension
+ point="eu.etaxonomy.taxeditor.store.cdmViewer">
+ <viewCommandMapping
+ commandId="eu.etaxonomy.taxeditor.command.openClassificationWizard"
+ selection="eu.etaxonomy.cdm.model.taxon.Classification"
+ viewerName="Classification Wizard">
+ </viewCommandMapping>
+</extension>
</plugin>
import org.eclipse.core.commands.AbstractParameterValueConverter;
import org.eclipse.core.commands.ParameterValueConversionException;
-public class UuidParameterConverter extends AbstractParameterValueConverter {
+/**
+ * Converts {@link UUID}s to a string representation
+ * and vica versa.
+ *
+ * @author pplitzner
+ * @date Sep 15, 2015
+ *
+ */
+public class UuidsParameterTypeConverter extends AbstractParameterValueConverter {
- public UuidParameterConverter() {
- // TODO Auto-generated constructor stub
+ public UuidsParameterTypeConverter() {
}
@Override
return parameterValue.toString();
}
-}
+}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.taxeditor.handler.defaultHandler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.ParameterType;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class DefaultOpenClassificationWizardHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ String commandId = event.getCommand().getId();
+ String uuidParameterId = commandId+".uuid";
+ //check if uuid parameter is set
+ if(event.getParameter(uuidParameterId)!=null){
+ Object object = event.getObjectParameterForExecution(uuidParameterId);
+ ParameterType parameterType;
+ try {
+ parameterType = event.getCommand().getParameterType(uuidParameterId);
+ if(parameterType.isCompatible(object)){
+ Classification classification = CdmStore.getService(IClassificationService.class).load((UUID) object);
+ openClassificationWizard(event, classification);
+ }
+ } catch (NotDefinedException e) {
+ MessagingUtils.error(DefaultOpenClassificationWizardHandler.class, "Error while opening classification!", e);
+ }
+ }
+ //if not try current selection
+ else{
+ ISelection selection = HandlerUtil.getCurrentSelection(event);
+
+ if(selection instanceof IStructuredSelection){
+ final IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+
+ if(structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof Classification){
+ Classification classification = (Classification) structuredSelection.getFirstElement();
+ openClassificationWizard(event, classification);
+ }
+ }
+ }
+ return null;
+ }
+
+ private void openClassificationWizard(ExecutionEvent event, Classification classification) {
+ NewClassificationWizard classificationWizard = new NewClassificationWizard();
+ classificationWizard.init(null, null);
+ classificationWizard.setEntity(classification);
+ WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), classificationWizard);
+ dialog.open();
+ }
+
+}
\ No newline at end of file