Project

General

Profile

« Previous | Next » 

Revision e4428955

Added by Patrick Plitzner over 9 years ago

  • added sampleDesignation section to DnaSample details view (#4237)
    • added sampleDesignation to DerivateLabelProvider

View differences:

.gitattributes
1673 1673
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailElement.java -text
1674 1674
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailSection.java -text
1675 1675
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenSourceCollectionDetailSection.java -text
1676
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java -text
1676 1677
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractUnboundEntityCollectionSection.java -text
1677 1678
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailElement.java -text
1678 1679
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailSection.java -text
......
1682 1683
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailSection.java -text
1683 1684
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailElement.java -text
1684 1685
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailSection.java -text
1686
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java -text
1685 1687
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailElement.java -text
1686 1688
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailSection.java -text
1687 1689
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java -text
1688 1690
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailSection.java -text
1689 1691
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/PrimerGeneralDetailElement.java -text
1692
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java -text
1693
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java -text
1694
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java -text
1695
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java -text
1690 1696
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java -text
1691 1697
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailElement.java -text
1692 1698
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
56 56
import eu.etaxonomy.cdm.model.common.ICdmBase;
57 57
import eu.etaxonomy.cdm.model.common.IEnumTerm;
58 58
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
59
import eu.etaxonomy.cdm.model.common.Identifier;
59 60
import eu.etaxonomy.cdm.model.common.Language;
60 61
import eu.etaxonomy.cdm.model.common.LanguageString;
61 62
import eu.etaxonomy.cdm.model.common.Marker;
......
85 86
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
86 87
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
87 88
import eu.etaxonomy.cdm.model.media.Rights;
89
import eu.etaxonomy.cdm.model.molecular.DnaSample;
88 90
import eu.etaxonomy.cdm.model.name.NameRelationship;
89 91
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
90 92
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
......
237 239
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
238 240
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailElement;
239 241
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
242
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.CurrentSampleDesignationDetailSection;
240 243
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailElement;
241 244
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
242 245
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailElement;
243 246
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
244 247
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
248
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailElement;
249
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
250
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationHistoryDetailSection;
251
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationTextDetailElement;
245 252
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
246 253
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailElement;
247 254
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
......
1810 1817
        return section;
1811 1818
    }
1812 1819

  
1820
    public SampleDesignationDetailSection createSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
1821
        SampleDesignationDetailSection section = new SampleDesignationDetailSection(this, conversation, parentElement, selectionProvider, style);
1822
        addAndAdaptSection(parentElement, section);
1823
        return section;
1824
    }
1825

  
1813 1826
    public PreservedSpecimenDeterminationDetailSection createPreservedSpecimenDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
1814 1827
        PreservedSpecimenDeterminationDetailSection section = new PreservedSpecimenDeterminationDetailSection(this, conversation, parentElement, selectionProvider, style);
1815 1828
        addAndAdaptSection(parentElement, section);
......
2179 2192
        return element;
2180 2193
    }
2181 2194

  
2195
    public SampleDesignationDetailElement createSampleDesignationDetailElement(ICdmFormElement parentElement) {
2196
        SampleDesignationDetailElement element = new SampleDesignationDetailElement(this, parentElement);
2197
        addAndAdaptElement(parentElement, element);
2198
        return element;
2199
    }
2200

  
2182 2201
    /**
2183 2202
     * @param parentElement
2184 2203
     * @param element
......
2333 2352
        return section;
2334 2353
    }
2335 2354

  
2355
    public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
2356
        CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style);
2357
        addAndAdaptSection(parentElement, section);
2358
        return section;
2359
    }
2360

  
2336 2361
    public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
2337 2362
        CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, conversation, parentElement, style);
2338 2363
        addAndAdaptSection(parentElement, section);
......
2345 2370
        return section;
2346 2371
    }
2347 2372

  
2373
    public SampleDesignationHistoryDetailSection createSampleDesignationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
2374
        SampleDesignationHistoryDetailSection section = new SampleDesignationHistoryDetailSection(this, conversation, parentElement, style);
2375
        addAndAdaptSection(parentElement, section);
2376
        return section;
2377
    }
2378

  
2348 2379
    public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
2349 2380
        DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, conversation, parentElement, style);
2350 2381
        addAndAdaptSection(parentElement, section);
......
2555 2586
            if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
2556 2587
                element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
2557 2588
            }
2589
        } else if (entity instanceof Identifier) {
2590
            element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
2558 2591
        }
2559 2592

  
2560 2593
        if (element == null) {
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CurrentDeterminationDetailSection.java
1 1
// $Id$
2 2
/**
3 3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
4
* European Distributed Institute of Taxonomy
5 5
* http://www.e-taxonomy.eu
6
* 
6
*
7 7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8 8
* See LICENSE.TXT at the top of this package for the full license terms.
9 9
*/
......
14 14
import java.util.Collection;
15 15

  
16 16
import org.eclipse.jface.action.Action;
17
import org.eclipse.jface.action.IAction;
17 18
import org.eclipse.jface.action.ToolBarManager;
18 19
import org.eclipse.jface.resource.ImageDescriptor;
19 20
import org.eclipse.swt.SWT;
......
46 47
			int style) {
47 48
		super(formFactory, conversation, parentElement, "Current Determination", style);
48 49
	}
49
	
50

  
50 51
	@Override
51 52
	protected Control createToolbar() {
52 53
		ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
53
		
54
		Action addAction = new Action("add", Action.AS_PUSH_BUTTON){
54

  
55
		Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
55 56
			/* (non-Javadoc)
56 57
			 * @see org.eclipse.jface.action.Action#run()
57 58
			 */
58 59
			@Override
59 60
			public void run() {
60 61
				DeterminationEvent element = createNewElement();
61
				
62

  
62 63
				// set as preferred determination
63 64
				getEntity().setPreferredDetermination(element);
64
				
65

  
65 66
				if(element != null){
66
					if(! getSection().isExpanded())
67
						getSection().setExpanded(true);
68
					internalUpdateSection(true); 
67
					if(! getSection().isExpanded()) {
68
                        getSection().setExpanded(true);
69
                    }
70
					internalUpdateSection(true);
69 71
				}
70 72
			}
71 73
		};
72 74
		addAction.setImageDescriptor(new ImageDescriptor() {
73
			
75

  
74 76
			@Override
75 77
			public ImageData getImageData() {
76 78
				return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
77 79
			}
78 80
		});
79 81
		addAction.setToolTipText(getTooltipString());
80
		
82

  
81 83
		toolBarManager.add(addAction);
82
		
84

  
83 85
		return toolBarManager.createControl(this);
84 86
	}
85
	
87

  
86 88
	@Override
87 89
	public void refresh() {
88 90
		internalUpdateSection(false);
......
96 98
		DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
97 99
		return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
98 100
	}
99
	
101

  
100 102
	/* (non-Javadoc)
101 103
	 * @see eu.etaxonomy.taxeditor.ui.section.occurrence.AbstractDeterminationEventDetailSection#createNewElement()
102 104
	 */
......
106 108
		newElement.setPreferredFlag(true);
107 109
		return newElement;
108 110
	}
109
	
111

  
110 112

  
111 113
	/* (non-Javadoc)
112 114
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
14
import eu.etaxonomy.cdm.model.common.Identifier;
15
import eu.etaxonomy.cdm.model.molecular.DnaSample;
16
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
17
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
18
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
19
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
20

  
21
/**
22
 *
23
 * @author pplitzner
24
 * @date Oct 16, 2014
25
 *
26
 */
27
public abstract class AbstractSampleDesignationDetailSection extends
28
		AbstractEntityCollectionSection<DnaSample, Identifier<DnaSample>> {
29

  
30
	public AbstractSampleDesignationDetailSection(CdmFormFactory formFactory,
31
			ConversationHolder conversation, ICdmFormElement parentElement,
32
			String title, int style) {
33
		super(formFactory, conversation, parentElement, title, style);
34
	}
35

  
36
	/* (non-Javadoc)
37
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
38
	 */
39
	/** {@inheritDoc} */
40
	@Override
41
	public Identifier<DnaSample> createNewElement() {
42
	    Identifier identifier = getEntity().addIdentifier(null, DerivateLabelProvider.getSampleDesignationTerm());
43
		return identifier;
44
	}
45

  
46
	/* (non-Javadoc)
47
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
48
	 */
49
	/** {@inheritDoc} */
50
	@Override
51
	public void addElement(Identifier<DnaSample> sampleDesignation) {
52
		getEntity().addIdentifier(sampleDesignation);
53
	}
54

  
55
	/* (non-Javadoc)
56
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
57
	 */
58
	/** {@inheritDoc} */
59
	@Override
60
	public void removeElement(Identifier<DnaSample> sampleDesignation) {
61
		getEntity().removeIdentifier(sampleDesignation);
62
	}
63

  
64
	/* (non-Javadoc)
65
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
66
	 */
67
	/** {@inheritDoc} */
68
	@Override
69
	public String getEmptyString() {
70
		return "No sample designations yet.";
71
	}
72

  
73
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import java.util.Collection;
14
import java.util.Collections;
15
import java.util.LinkedList;
16

  
17
import org.eclipse.jface.action.Action;
18
import org.eclipse.jface.action.IAction;
19
import org.eclipse.jface.action.ToolBarManager;
20
import org.eclipse.jface.resource.ImageDescriptor;
21
import org.eclipse.swt.SWT;
22
import org.eclipse.swt.graphics.ImageData;
23
import org.eclipse.swt.widgets.Control;
24

  
25
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
26
import eu.etaxonomy.cdm.model.common.Identifier;
27
import eu.etaxonomy.cdm.model.molecular.DnaSample;
28
import eu.etaxonomy.taxeditor.model.ImageResources;
29
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
30
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
31
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
32

  
33
/**
34
 *
35
 * @author pplitzner
36
 * @date Oct 16, 2014
37
 *
38
 */
39
public class CurrentSampleDesignationDetailSection extends AbstractSampleDesignationDetailSection {
40

  
41
	public CurrentSampleDesignationDetailSection(CdmFormFactory formFactory,
42
			ConversationHolder conversation, ICdmFormElement parentElement,
43
			int style) {
44
		super(formFactory, conversation, parentElement, "Current Sample Designation", style);
45
	}
46

  
47
	@Override
48
	protected Control createToolbar() {
49
		ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
50

  
51
		Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
52
			/* (non-Javadoc)
53
			 * @see org.eclipse.jface.action.Action#run()
54
			 */
55
			@Override
56
			public void run() {
57
			    Identifier<DnaSample> element = createNewElement();
58

  
59
				getEntity().addIdentifier(element);
60

  
61
				if(element != null){
62
					if(! getSection().isExpanded()) {
63
                        getSection().setExpanded(true);
64
                    }
65
					internalUpdateSection(true);
66
				}
67
			}
68
		};
69
		addAction.setImageDescriptor(new ImageDescriptor() {
70

  
71
			@Override
72
			public ImageData getImageData() {
73
				return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
74
			}
75
		});
76
		addAction.setToolTipText(getTooltipString());
77

  
78
		toolBarManager.add(addAction);
79

  
80
		return toolBarManager.createControl(this);
81
	}
82

  
83
	@Override
84
	public void refresh() {
85
		internalUpdateSection(false);
86
	}
87

  
88
	/* (non-Javadoc)
89
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
90
	 */
91
	@Override
92
	public Collection<Identifier<DnaSample>> getCollection(DnaSample entity) {
93
	    LinkedList<Identifier<DnaSample>> sampleDesignations = new LinkedList<Identifier<DnaSample>>();
94
	    for (Identifier<DnaSample> identifier : entity.getIdentifiers()) {
95
            if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
96
                sampleDesignations.add(identifier);
97
            }
98
        }
99
        Collections.reverse(sampleDesignations);
100
        if(sampleDesignations.size()>0){
101
            //last sample designation is the current
102
            return Collections.singleton(sampleDesignations.getFirst());
103
        }
104
        else{
105
            return Collections.emptyList();
106
        }
107
	}
108

  
109
	/* (non-Javadoc)
110
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
111
	 */
112
	/** {@inheritDoc} */
113
	@Override
114
	protected String getTooltipString() {
115
		return "Create new current sample designation";
116
	}
117

  
118
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java
31 31
 */
32 32
public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
33 33

  
34

  
35 34
    private TimePeriodElement datePreservationDate;
36 35
    private EntitySelectionElement<AgentBase> selectionPreparedBy;
37 36
    private NumberWithLabelElement numberPreservationTemperature;
......
56 55
    @Override
57 56
    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
58 57
        TimePeriod timePeriod = null;
59
        AgentBase actor = null;
58
        AgentBase<?> actor = null;
60 59
        Double temperature = null;
61 60
        DefinedTerm definedMaterialOrMethod = null;
62 61
        if(entity.getPreservation()!=null){
......
66 65
            definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
67 66
        }
68 67
        datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preservation date", timePeriod, style);
69
        // TODO sample designation
70 68
        selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", actor, EntitySelectionElement.ALL, style);
71 69
        numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
72 70
        comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
73 71
        //TODO preparation date
74 72
        //TODO sample type
75 73
        textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
74

  
76 75
    }
77 76

  
78 77
    /*
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import org.eclipse.ui.forms.widgets.ExpandableComposite;
14

  
15
import eu.etaxonomy.cdm.model.molecular.DnaSample;
16
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
17
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
18
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
19
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
20

  
21
/**
22
 *
23
 * @author pplitzner
24
 * @date Oct 20, 2014
25
 *
26
 */
27
public class SampleDesignationDetailElement extends AbstractCdmDetailElement<DnaSample> {
28

  
29
	private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
30

  
31
	private SampleDesignationHistoryDetailSection sectionSampleDesignationHistory;
32

  
33
	/**
34
	 * @param formFactory
35
	 * @param formElement
36
	 */
37
	public SampleDesignationDetailElement(CdmFormFactory formFactory,
38
			ICdmFormElement formElement) {
39
		super(formFactory, formElement);
40
	}
41

  
42
	/* (non-Javadoc)
43
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
44
	 */
45
	@Override
46
	protected void createControls(ICdmFormElement formElement,
47
	        DnaSample entity, int style) {
48

  
49
        sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
50
        sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
51
        sectionCurrentSampleDesignation.setEntity(entity);
52

  
53
        sectionSampleDesignationHistory = formFactory.createSampleDesignationHistoryDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
54
        sectionSampleDesignationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
55
        sectionSampleDesignationHistory.setEntity(entity);
56

  
57
	}
58

  
59
	/* (non-Javadoc)
60
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
61
	 */
62
	@Override
63
	public void handleEvent(Object eventSource) {
64
		if(eventSource == sectionCurrentSampleDesignation){
65
			sectionSampleDesignationHistory.refresh();
66
		}
67
	}
68

  
69
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import org.eclipse.jface.viewers.ISelectionProvider;
14

  
15
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
16
import eu.etaxonomy.cdm.model.molecular.DnaSample;
17
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
19
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
20
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
21

  
22
/**
23
 * @author n.hoffmann
24
 * @created May 11, 2011
25
 * @version 1.0
26
 */
27
public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DnaSample> {
28

  
29
	/**
30
	 * @param formFactory
31
	 * @param conversation
32
	 * @param parentElement
33
	 * @param selectionProvider
34
	 * @param style
35
	 */
36
	public SampleDesignationDetailSection(CdmFormFactory formFactory,
37
			ConversationHolder conversation, ICdmFormElement parentElement,
38
			ISelectionProvider selectionProvider, int style) {
39
		super(formFactory, conversation, parentElement, selectionProvider, style);
40
	}
41

  
42
	/* (non-Javadoc)
43
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
44
	 */
45
	@Override
46
	public String getHeading() {
47
		return "Sample Designations";
48
	}
49

  
50
	@Override
51
    protected void setSectionTitle() {
52
	    this.setText(getHeading());
53
	    setTextClient(createToolbar());
54
	}
55

  
56
	/* (non-Javadoc)
57
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
58
	 */
59
	@Override
60
	protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
61
	    return formFactory.createSampleDesignationDetailElement(parentElement);
62
	}
63

  
64
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import java.util.Collection;
14
import java.util.Collections;
15
import java.util.LinkedList;
16

  
17
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
18
import eu.etaxonomy.cdm.model.common.Identifier;
19
import eu.etaxonomy.cdm.model.molecular.DnaSample;
20
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
23

  
24
/**
25
 * @author n.hoffmann
26
 * @created May 11, 2011
27
 * @version 1.0
28
 */
29
public class SampleDesignationHistoryDetailSection extends AbstractSampleDesignationDetailSection {
30

  
31
	/**
32
	 * @param formFactory
33
	 * @param conversation
34
	 * @param parentElement
35
	 * @param style
36
	 */
37
	public SampleDesignationHistoryDetailSection(CdmFormFactory formFactory,
38
			ConversationHolder conversation, ICdmFormElement parentElement,
39
			int style) {
40
		super(formFactory, conversation, parentElement, "Sample Designation History", style);
41
	}
42

  
43
	/* (non-Javadoc)
44
	 * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
45
	 */
46
	@Override
47
	public Collection<Identifier<DnaSample>> getCollection(DnaSample entity) {
48
	    LinkedList<Identifier<DnaSample>> sampleDesignations = new LinkedList<Identifier<DnaSample>>();
49
	    for (Identifier<DnaSample> identifier : entity.getIdentifiers()) {
50
	        if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
51
	            sampleDesignations.add(identifier);
52
	        }
53
	    }
54
	    Collections.reverse(sampleDesignations);
55
	    if(sampleDesignations.size()>0){
56
	        sampleDesignations.removeFirst();//last is the current sample designation
57
	    }
58
	    return sampleDesignations;
59
	}
60

  
61
	@Override
62
	public void refresh() {
63
		internalUpdateSection(false);
64
	}
65

  
66

  
67
	/* (non-Javadoc)
68
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
69
	 */
70
	/** {@inheritDoc} */
71
	@Override
72
	protected String getTooltipString() {
73
		return "Add a sample designation to the history";
74
	}
75

  
76
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java
1
// $Id$
2
/**
3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy
5
 * http://www.e-taxonomy.eu
6
 *
7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8
 * See LICENSE.TXT at the top of this package for the full license terms.
9
 */
10

  
11
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
12

  
13
import org.eclipse.swt.events.SelectionListener;
14
import org.eclipse.swt.graphics.Color;
15

  
16
import eu.etaxonomy.cdm.model.common.Identifier;
17
import eu.etaxonomy.cdm.model.molecular.DnaSample;
18
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
19
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
22
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
23

  
24
/**
25
 *
26
 * @author pplitzner
27
 * @date Oct 16, 2014
28
 *
29
 * @param <T>
30
 */
31
public class SampleDesignationTextDetailElement extends
32
		AbstractEntityCollectionElement<Identifier<DnaSample>> {
33

  
34
    protected TextWithLabelElement text_description;
35

  
36
	/**
37
     * @param formFactory
38
     * @param section
39
     * @param entity
40
     * @param removeListener
41
     * @param backgroundColor
42
     * @param style
43
     */
44
    public SampleDesignationTextDetailElement(CdmFormFactory formFactory, AbstractFormSection<?> section,
45
            Identifier<DnaSample> entity, SelectionListener removeListener, Color backgroundColor, int style) {
46
        super(formFactory, section, entity, removeListener, backgroundColor, style);
47
    }
48

  
49
	/*
50
	 * (non-Javadoc)
51
	 *
52
	 * @see
53
	 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
54
	 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
55
	 */
56
	/** {@inheritDoc} */
57
	@Override
58
	public void createControls(ICdmFormElement element, int style) {
59
		text_description = formFactory.createTextWithLabelElement(element,
60
				"Sample Designation", null, style);
61
	}
62

  
63
    /* (non-Javadoc)
64
     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
65
     */
66
    @Override
67
    public void handleEvent(Object eventSource) {
68
        if(eventSource==text_description){
69
            this.entity.setIdentifier(text_description.getText());
70
        }
71
    }
72

  
73
    /* (non-Javadoc)
74
     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity(java.lang.Object)
75
     */
76
    @Override
77
    public void setEntity(Identifier<DnaSample> entity) {
78
        this.entity = entity;
79
        text_description.setText(entity.getIdentifier());
80
    }
81

  
82
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
52 52
    private static DefinedTerm drawingTerm = null;
53 53
    private static DefinedTerm specimenScanTerm = null;
54 54
    private static DefinedTerm detailImageTerm = null;
55
    private static DefinedTerm sampleDesignationTerm = null;
55 56

  
56 57
    private static void initializeTerms() {
57 58
        List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
......
68 69
            else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
69 70
                detailImageTerm = definedTerm;
70 71
            }
72
            else if(definedTerm.getUuid().equals(UUID.fromString("fadeba12-1be3-4bc7-9ff5-361b088d86fc"))){
73
                sampleDesignationTerm = definedTerm;
74
            }
71 75
        }
72 76
    }
73 77

  
......
99 103
        return detailImageTerm;
100 104
    }
101 105

  
106
    public static DefinedTerm getSampleDesignationTerm(){
107
        if(sampleDesignationTerm==null){
108
            initializeTerms();
109
        }
110
        return sampleDesignationTerm;
111
    }
112

  
102 113

  
103 114
    /** {@inheritDoc} */
104 115
    @Override
......
166 177
        else if(element instanceof DnaSample
167 178
                || (element instanceof DerivedUnit
168 179
                        && ((SpecimenOrObservationBase<?>) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
169
            label += "[no sample designation]";
180
            DerivedUnit derivedUnit = (DerivedUnit)element;
181
            Set<String> identifiers = derivedUnit.getIdentifiers(getSampleDesignationTerm());
182
            if(identifiers.isEmpty()){
183
                label += "[no sample designation]";
184
            }
185
            else{
186
                String identifier = identifiers.iterator().next();
187
                label += identifier==null?"":identifier;
188
            }
170 189

  
171 190
        }
172 191
        else if(element instanceof DerivedUnit){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
101 101
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
102 102
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
103 103
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
104
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
104 105
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
105 106
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
106 107
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection;
......
770 771

  
771 772
        DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
772 773

  
774

  
775
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
776

  
777
        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
778

  
773 779
        addPart(section);
774 780
        addPart(qualitySection);
781
        addPart(sampleDesignationDetailSection);
775 782
    }
776 783

  
777 784
    private void createAmplificationSection(RootElement parent) {

Also available in: Unified diff