Revision e4428955
Added by Patrick Plitzner over 9 years ago
- added sampleDesignation section to DnaSample details view (#4237)
- added sampleDesignation to DerivateLabelProvider
.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