id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler"
+ id="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+ name="Open specimen editor for type specimen">
+ </command>
</extension>
<extension
selection="eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode"
viewerName="%viewCommandMapping.viewerName.CHECKLIST_EDITOR">
</viewCommandMapping>
+ <viewCommandMapping
+ commandId="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+ selection="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"
+ viewerName="Specimen Editor">
+ </viewCommandMapping>
</extension>
</plugin>
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+
+public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
+ DefaultOpenHandlerBase<SpecimenTypeDesignation> {
+
+ @Override
+ protected SpecimenTypeDesignation getEntity(UUID uuid) {
+ return CdmStore.getCommonService().find(SpecimenTypeDesignation.class, uuid);
+ }
+
+ @Override
+ protected void open(ExecutionEvent event, SpecimenTypeDesignation entity) {
+ try {
+ EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
+ } catch (PartInitException e) {
+ MessagingUtils.error(DefaultOpenSpecimenEditorForTypeSpecimenHandler.class, "Derivative Editor could not be opened", e);
+ }
+ }
+
+}
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
//TODO add context menu for deleting associations
//context menu
Menu menu = new Menu(styledTextWidget);
+ //copy menu
MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
copyItem.setText("Copy");
copyItem.addSelectionListener(new SelectionListener() {
Clipboard clipboard = new Clipboard(styledTextWidget.getDisplay());
clipboard.setContents(data, new Transfer[]{TextTransfer.getInstance()});
}
-
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
+ //"Open in..." menu
+ MenuItem openInItem = new MenuItem(menu, SWT.PUSH);
+ openInItem.setText("Open");
+ if(cdmBase.isInstanceOf(SpecimenTypeDesignation.class)){
+ openInItem.setData(HibernateProxyHelper.deproxy(cdmBase, SpecimenTypeDesignation.class));
+ }
+ openInItem.setData(cdmBase);
+ openInItem.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ new CdmViewerChooser(TaxonAssociationDetailElement.this.getLayoutComposite().getShell()).chooseViewer(e.widget.getData());
+ }
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
styledTextWidget.setMenu(menu);
}
}