Revision 8b1819f2
Added by Patrick Plitzner almost 7 years ago
eu.etaxonomy.taxeditor.editor/fragment.e4xmi | ||
---|---|---|
8 | 8 |
<handlers xmi:id="_E5l4wDVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" command="_BjF3ADVqEee_b7RlBzTDRw"/> |
9 | 9 |
<handlers xmi:id="_ha1I4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" command="_qqMbcDmBEeeOos_QXKSXcA"/> |
10 | 10 |
<handlers xmi:id="_FOiO0DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" command="_I2LD4DocEeecLdI14WMq7w"/> |
11 |
<handlers xmi:id="_mrTfkDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" command="_jsbToDonEeecLdI14WMq7w"/> |
|
11 | 12 |
<menus xsi:type="menu:PopupMenu" xmi:id="_CYXZ0DQEEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor"> |
12 | 13 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_um1oYDVpEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon" label="Create Field Unit For ..." command="_BjF3ADVqEee_b7RlBzTDRw"/> |
13 | 14 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_5GMRcDWQEeeNfoZ3nN0K8Q" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit" label="Create Field Unit" command="_BjF3ADVqEee_b7RlBzTDRw"/> |
14 | 15 |
<children xsi:type="menu:Menu" xmi:id="_cdjzEDmAEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.menu.add" label="Add..."> |
15 | 16 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_R27WIDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen" label="Specimen" command="_qqMbcDmBEeeOos_QXKSXcA"/> |
16 | 17 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_TKz_4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.tissuesample" label="Tissue Sample" command="_I2LD4DocEeecLdI14WMq7w"/> |
17 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_UukRoDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample" label="DNA Sample"/> |
|
18 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_UukRoDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample" label="DNA Sample" command="_jsbToDonEeecLdI14WMq7w"/>
|
|
18 | 19 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_WwK9ADmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.mediaspecimen" label="Media Specimen"/> |
19 | 20 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_YYSxYDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.consensussequence" label="Consensus Sequence"/> |
20 | 21 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_Z-LKEDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.singleread" label="Single Read"/> |
... | ... | |
32 | 33 |
<elements xsi:type="commands:Command" xmi:id="_BjF3ADVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit" commandName="Create Field Unit"/> |
33 | 34 |
<elements xsi:type="commands:Command" xmi:id="_qqMbcDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen" commandName="Add Specimen"/> |
34 | 35 |
<elements xsi:type="commands:Command" xmi:id="_I2LD4DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_tissue_sample" commandName="Add Tissue Sample"/> |
36 |
<elements xsi:type="commands:Command" xmi:id="_jsbToDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_dna_sample" commandName="Add DNA Sample"/> |
|
35 | 37 |
</fragments> |
36 | 38 |
</fragment:ModelFragments> |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AbstractAddDerivateHandler.java | ||
---|---|---|
1 |
|
|
2 |
package eu.etaxonomy.taxeditor.editor.view.derivate.handler; |
|
3 |
|
|
4 |
import javax.inject.Named; |
|
5 |
|
|
6 |
import org.eclipse.e4.core.di.annotations.CanExecute; |
|
7 |
import org.eclipse.e4.core.di.annotations.Execute; |
|
8 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
|
9 |
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; |
|
10 |
import org.eclipse.e4.ui.services.IServiceConstants; |
|
11 |
import org.eclipse.jface.viewers.TreeNode; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy; |
|
14 |
import eu.etaxonomy.cdm.api.service.IOccurrenceService; |
|
15 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent; |
|
16 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType; |
|
17 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
18 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
19 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
|
20 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
21 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
|
22 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
23 |
|
|
24 |
public abstract class AbstractAddDerivateHandler { |
|
25 |
|
|
26 |
@Execute |
|
27 |
public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, @Named(IServiceConstants.ACTIVE_PART) MPart part) { |
|
28 |
DerivateView derivateView = (DerivateView) part.getObject(); |
|
29 |
|
|
30 |
checkDirtyState(derivateView); |
|
31 |
|
|
32 |
Object selectedDerivative = node.getValue(); |
|
33 |
if(isAllowed(selectedDerivative)){ |
|
34 |
Object createdElement = addElement(selectedDerivative); |
|
35 |
refreshView(derivateView, createdElement); |
|
36 |
} |
|
37 |
} |
|
38 |
|
|
39 |
@CanExecute |
|
40 |
public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, MHandledMenuItem item) { |
|
41 |
boolean canExecute = false; |
|
42 |
|
|
43 |
Object derivate = node.getValue(); |
|
44 |
canExecute = isAllowed(derivate); |
|
45 |
item.setVisible(canExecute); |
|
46 |
return canExecute; |
|
47 |
} |
|
48 |
|
|
49 |
private void refreshView(DerivateView derivateView, Object createdElement) { |
|
50 |
if(derivateView!=null){ |
|
51 |
derivateView.getConversationHolder().commit(); |
|
52 |
derivateView.refreshTree(createdElement); |
|
53 |
} |
|
54 |
} |
|
55 |
|
|
56 |
private void checkDirtyState(DerivateView derivateView){ |
|
57 |
if(derivateView!=null){ |
|
58 |
if(derivateView.isDirty()){ |
|
59 |
MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION); |
|
60 |
return; |
|
61 |
} |
|
62 |
} |
|
63 |
} |
|
64 |
|
|
65 |
private Object addElement(Object selectedDerivative){ |
|
66 |
Object createdElement = null; |
|
67 |
SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>) selectedDerivative; |
|
68 |
DerivedUnit derivedUnit = DerivedUnit.NewInstance(getSpecimenType()); |
|
69 |
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, getDerivationeType())); |
|
70 |
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy()); |
|
71 |
derivedUnit.getTitleCache(); //update title cache |
|
72 |
createdElement = derivedUnit; |
|
73 |
CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase<?>) selectedDerivative, true); |
|
74 |
return createdElement; |
|
75 |
} |
|
76 |
|
|
77 |
protected abstract SpecimenOrObservationType getSpecimenType(); |
|
78 |
|
|
79 |
protected abstract DerivationEventType getDerivationeType(); |
|
80 |
|
|
81 |
protected abstract boolean isAllowed(Object derivative); |
|
82 |
|
|
83 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AbstractAddDerivativeHandler.java | ||
---|---|---|
1 |
|
|
2 |
package eu.etaxonomy.taxeditor.editor.view.derivate.handler; |
|
3 |
|
|
4 |
import javax.inject.Named; |
|
5 |
|
|
6 |
import org.eclipse.e4.core.di.annotations.CanExecute; |
|
7 |
import org.eclipse.e4.core.di.annotations.Execute; |
|
8 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
|
9 |
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; |
|
10 |
import org.eclipse.e4.ui.services.IServiceConstants; |
|
11 |
import org.eclipse.jface.viewers.TreeNode; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy; |
|
14 |
import eu.etaxonomy.cdm.api.service.IOccurrenceService; |
|
15 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent; |
|
16 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType; |
|
17 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
18 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
19 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
20 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
|
21 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
22 |
|
|
23 |
public abstract class AbstractAddDerivativeHandler { |
|
24 |
|
|
25 |
@Execute |
|
26 |
public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, @Named(IServiceConstants.ACTIVE_PART) MPart part) { |
|
27 |
DerivateView derivateView = (DerivateView) part.getObject(); |
|
28 |
|
|
29 |
checkDirtyState(derivateView); |
|
30 |
|
|
31 |
Object selectedDerivative = node.getValue(); |
|
32 |
if(isAllowed(selectedDerivative)){ |
|
33 |
Object createdElement = addElement(selectedDerivative); |
|
34 |
refreshView(derivateView, createdElement); |
|
35 |
} |
|
36 |
} |
|
37 |
|
|
38 |
@CanExecute |
|
39 |
public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, MHandledMenuItem item) { |
|
40 |
boolean canExecute = false; |
|
41 |
|
|
42 |
Object derivate = node.getValue(); |
|
43 |
canExecute = isAllowed(derivate); |
|
44 |
item.setVisible(canExecute); |
|
45 |
return canExecute; |
|
46 |
} |
|
47 |
|
|
48 |
private void refreshView(DerivateView derivateView, Object createdElement) { |
|
49 |
if(derivateView!=null){ |
|
50 |
derivateView.getConversationHolder().commit(); |
|
51 |
derivateView.refreshTree(createdElement); |
|
52 |
} |
|
53 |
} |
|
54 |
|
|
55 |
private void checkDirtyState(DerivateView derivateView){ |
|
56 |
if(derivateView!=null){ |
|
57 |
if(derivateView.isDirty()){ |
|
58 |
MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION); |
|
59 |
return; |
|
60 |
} |
|
61 |
} |
|
62 |
} |
|
63 |
|
|
64 |
private Object addElement(Object selectedDerivative){ |
|
65 |
Object createdElement = null; |
|
66 |
SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>) selectedDerivative; |
|
67 |
DerivedUnit derivedUnit = createDerivative(); |
|
68 |
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, getDerivationeType())); |
|
69 |
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy()); |
|
70 |
derivedUnit.getTitleCache(); //update title cache |
|
71 |
createdElement = derivedUnit; |
|
72 |
CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase<?>) selectedDerivative, true); |
|
73 |
return createdElement; |
|
74 |
} |
|
75 |
|
|
76 |
protected abstract DerivedUnit createDerivative(); |
|
77 |
|
|
78 |
protected abstract DerivationEventType getDerivationeType(); |
|
79 |
|
|
80 |
protected abstract boolean isAllowed(Object derivative); |
|
81 |
|
|
82 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddDnaSampleHandler.java | ||
---|---|---|
1 |
|
|
2 |
package eu.etaxonomy.taxeditor.editor.view.derivate.handler; |
|
3 |
|
|
4 |
import eu.etaxonomy.cdm.model.molecular.DnaSample; |
|
5 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType; |
|
6 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
7 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
|
8 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
|
9 |
|
|
10 |
public class AddDnaSampleHandler extends AbstractAddDerivativeHandler{ |
|
11 |
|
|
12 |
@Override |
|
13 |
protected boolean isAllowed(Object derivative) { |
|
14 |
if(derivative instanceof FieldUnit || (derivative instanceof DerivedUnit |
|
15 |
&& ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen)) |
|
16 |
|| (derivative instanceof DerivedUnit |
|
17 |
&& ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.TissueSample))){ |
|
18 |
return true; |
|
19 |
} |
|
20 |
return false; |
|
21 |
} |
|
22 |
|
|
23 |
/** |
|
24 |
* {@inheritDoc} |
|
25 |
*/ |
|
26 |
@Override |
|
27 |
protected DerivedUnit createDerivative() { |
|
28 |
return DnaSample.NewInstance(); |
|
29 |
} |
|
30 |
|
|
31 |
/** |
|
32 |
* {@inheritDoc} |
|
33 |
*/ |
|
34 |
@Override |
|
35 |
protected DerivationEventType getDerivationeType() { |
|
36 |
return DerivationEventType.ACCESSIONING(); |
|
37 |
} |
|
38 |
|
|
39 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddSpecimenHandler.java | ||
---|---|---|
2 | 2 |
package eu.etaxonomy.taxeditor.editor.view.derivate.handler; |
3 | 3 |
|
4 | 4 |
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType; |
5 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
5 | 6 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
6 | 7 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
7 | 8 |
|
8 |
public class AddSpecimenHandler extends AbstractAddDerivateHandler{ |
|
9 |
public class AddSpecimenHandler extends AbstractAddDerivativeHandler{
|
|
9 | 10 |
|
10 | 11 |
@Override |
11 | 12 |
protected boolean isAllowed(Object derivative) { |
... | ... | |
19 | 20 |
* {@inheritDoc} |
20 | 21 |
*/ |
21 | 22 |
@Override |
22 |
protected SpecimenOrObservationType getSpecimenType() {
|
|
23 |
return SpecimenOrObservationType.PreservedSpecimen;
|
|
23 |
protected DerivedUnit createDerivative() {
|
|
24 |
return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
|
|
24 | 25 |
} |
25 | 26 |
|
26 | 27 |
/** |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddTissueSampleHandler.java | ||
---|---|---|
6 | 6 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
7 | 7 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
8 | 8 |
|
9 |
public class AddTissueSampleHandler extends AbstractAddDerivateHandler{ |
|
9 |
public class AddTissueSampleHandler extends AbstractAddDerivativeHandler{
|
|
10 | 10 |
|
11 | 11 |
@Override |
12 | 12 |
protected boolean isAllowed(Object derivative) { |
... | ... | |
17 | 17 |
return false; |
18 | 18 |
} |
19 | 19 |
|
20 |
|
|
20 | 21 |
/** |
21 | 22 |
* {@inheritDoc} |
22 | 23 |
*/ |
23 | 24 |
@Override |
24 |
protected SpecimenOrObservationType getSpecimenType() {
|
|
25 |
return SpecimenOrObservationType.TissueSample;
|
|
25 |
protected DerivedUnit createDerivative() {
|
|
26 |
return DerivedUnit.NewInstance(SpecimenOrObservationType.TissueSample);
|
|
26 | 27 |
} |
27 | 28 |
|
28 | 29 |
/** |
Also available in: Unified diff
ref #6566 Migrate "Add Dna Sample" menu item