Project

General

Profile

« Previous | Next » 

Revision f8ab37f4

Added by Patrick Plitzner over 7 years ago

Add support for "Open in..." for taxon association detail view

View differences:

eu.etaxonomy.taxeditor.editor/plugin.xml
1712 1712
            id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
1713 1713
            name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
1714 1714
      </command>
1715
      <command
1716
            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler"
1717
            id="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
1718
            name="Open specimen editor for type specimen">
1719
      </command>
1715 1720
        
1716 1721
   </extension>
1717 1722
   <extension
......
2033 2038
            selection="eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode"
2034 2039
            viewerName="%viewCommandMapping.viewerName.CHECKLIST_EDITOR">
2035 2040
      </viewCommandMapping>
2041
      <viewCommandMapping
2042
            commandId="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
2043
            selection="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"
2044
            viewerName="Specimen Editor">
2045
      </viewCommandMapping>
2036 2046
    </extension>
2037 2047
</plugin>
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenSpecimenEditorForTypeSpecimenHandler.java
1
package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
2
import java.util.UUID;
3

  
4
import org.eclipse.core.commands.ExecutionEvent;
5
import org.eclipse.ui.PartInitException;
6

  
7
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
8
import eu.etaxonomy.taxeditor.editor.EditorUtil;
9
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
10
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
11
import eu.etaxonomy.taxeditor.model.MessagingUtils;
12
import eu.etaxonomy.taxeditor.store.CdmStore;
13

  
14

  
15
public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
16
		DefaultOpenHandlerBase<SpecimenTypeDesignation> {
17

  
18
	@Override
19
	protected SpecimenTypeDesignation getEntity(UUID uuid) {
20
		return CdmStore.getCommonService().find(SpecimenTypeDesignation.class, uuid);
21
	}
22

  
23
	@Override
24
	protected void open(ExecutionEvent event, SpecimenTypeDesignation entity) {
25
        try {
26
            EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
27
        } catch (PartInitException e) {
28
            MessagingUtils.error(DefaultOpenSpecimenEditorForTypeSpecimenHandler.class, "Derivative Editor could not be opened", e);
29
        }		
30
	}
31

  
32
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java
30 30

  
31 31
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
32 32
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
33
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
33 34
import eu.etaxonomy.cdm.model.common.CdmBase;
34 35
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
35 36
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
......
87 88
            //TODO add context menu for deleting associations
88 89
            //context menu
89 90
            Menu menu = new Menu(styledTextWidget);
91
            //copy menu
90 92
            MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
91 93
            copyItem.setText("Copy");
92 94
            copyItem.addSelectionListener(new SelectionListener() {
......
97 99
                    Clipboard clipboard = new Clipboard(styledTextWidget.getDisplay());
98 100
                    clipboard.setContents(data, new Transfer[]{TextTransfer.getInstance()});
99 101
                }
100

  
101 102
                @Override
102 103
                public void widgetDefaultSelected(SelectionEvent e) {
103 104
                }
104 105
            });
106
            //"Open in..." menu
107
            MenuItem openInItem = new MenuItem(menu, SWT.PUSH);
108
            openInItem.setText("Open");
109
            if(cdmBase.isInstanceOf(SpecimenTypeDesignation.class)){
110
            	openInItem.setData(HibernateProxyHelper.deproxy(cdmBase, SpecimenTypeDesignation.class));
111
            }
112
            openInItem.setData(cdmBase);
113
            openInItem.addSelectionListener(new SelectionListener() {
114
            	
115
            	@Override
116
            	public void widgetSelected(SelectionEvent e) {
117
            		new CdmViewerChooser(TaxonAssociationDetailElement.this.getLayoutComposite().getShell()).chooseViewer(e.widget.getData());
118
            	}
119
            	@Override
120
            	public void widgetDefaultSelected(SelectionEvent e) {
121
            	}
122
            });
105 123
            styledTextWidget.setMenu(menu);
106 124
        }
107 125
    }

Also available in: Unified diff