Project

General

Profile

Download (45.2 KB) Statistics
| Branch: | Tag: | Revision:
1 729887cf n.hoffmann
/**
2 88c2fdda a.theys
 * Copyright (C) 2011 EDIT
3 313a413f Patric Plitzner
 * European Distributed Institute of Taxonomy
4 a6b8fe66 n.hoffmann
 * http://www.e-taxonomy.eu
5 313a413f Patric Plitzner
 *
6 a6b8fe66 n.hoffmann
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9 729887cf n.hoffmann
10 f211dd28 n.hoffmann
package eu.etaxonomy.taxeditor.view.detail;
11 729887cf n.hoffmann
12 775d037d a.theys
import java.util.Set;
13
14 729887cf n.hoffmann
import org.eclipse.jface.viewers.ISelection;
15
import org.eclipse.jface.viewers.SelectionChangedEvent;
16 1b52b9e4 Patric Plitzner
import org.eclipse.jface.viewers.TreeNode;
17 729887cf n.hoffmann
import org.eclipse.swt.SWT;
18
import org.eclipse.swt.widgets.Composite;
19 b0ce5b17 Patric Plitzner
import org.eclipse.ui.forms.widgets.ExpandableComposite;
20 729887cf n.hoffmann
21 c4c08e81 n.hoffmann
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
22
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
23 5f152d2b Patric Plitzner
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
24 729887cf n.hoffmann
import eu.etaxonomy.cdm.model.agent.Person;
25
import eu.etaxonomy.cdm.model.agent.Team;
26
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
27 b9a0d300 l.morris
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
28 a60842d7 n.hoffmann
import eu.etaxonomy.cdm.model.common.Group;
29 775d037d a.theys
import eu.etaxonomy.cdm.model.common.Marker;
30 b9a0d300 l.morris
import eu.etaxonomy.cdm.model.common.TermVocabulary;
31 f211dd28 n.hoffmann
import eu.etaxonomy.cdm.model.common.User;
32 e38f840c a.theys
import eu.etaxonomy.cdm.model.description.CategoricalData;
33 729887cf n.hoffmann
import eu.etaxonomy.cdm.model.description.DescriptionBase;
34
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
35 35861667 n.hoffmann
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
36 7a0547ca Patric Plitzner
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
37 2d9a13f7 n.hoffmann
import eu.etaxonomy.cdm.model.media.Media;
38 c0ca45cc Patric Plitzner
import eu.etaxonomy.cdm.model.molecular.DnaSample;
39 238441fa Patric Plitzner
import eu.etaxonomy.cdm.model.molecular.Sequence;
40 dd8c8181 Patric Plitzner
import eu.etaxonomy.cdm.model.molecular.SingleRead;
41 e3a4a3ff Andreas Müller
import eu.etaxonomy.cdm.model.name.TaxonName;
42 49a64920 Cherian Mathew
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
43 313a413f Patric Plitzner
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
44 c0ca45cc Patric Plitzner
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
45 313a413f Patric Plitzner
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
46 d31115e0 n.hoffmann
import eu.etaxonomy.cdm.model.reference.Reference;
47 729887cf n.hoffmann
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
48 f18e39bb n.hoffmann
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
49 aa744c3b Katja Luther
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
50 38eaa3c8 Patrick Plitzner
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
51 e3bcee2d Patric Plitzner
import eu.etaxonomy.taxeditor.model.AbstractUtility;
52 2b2cc2b4 n.hoffmann
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
53 e13ba183 Patric Plitzner
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
54 d90a6c9f Patric Plitzner
import eu.etaxonomy.taxeditor.model.MessagingUtils;
55 f4fd193c n.hoffmann
import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
56 6b5ad34c Patric Plitzner
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
57 c4c08e81 n.hoffmann
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
58 f638efaa Andreas Müller
import eu.etaxonomy.taxeditor.store.UsageTermCollection;
59 78222507 n.hoffmann
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
60 23783f7a n.hoffmann
import eu.etaxonomy.taxeditor.ui.element.RootElement;
61 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
62
import eu.etaxonomy.taxeditor.ui.section.agent.TeamDetailSection;
63
import eu.etaxonomy.taxeditor.ui.section.agent.TeamOrPersonBaseDetailSection;
64 f18e39bb n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.common.ReferencedEntityDetailSection;
65 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionDetailSection;
66
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementDetailSection;
67
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementMediaSection;
68
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementSourceSection;
69
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionSourceSection;
70 aa744c3b Katja Luther
import eu.etaxonomy.taxeditor.ui.section.description.IntextReferenceSection;
71 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection;
72
import eu.etaxonomy.taxeditor.ui.section.description.NaturalLanguageSection;
73
import eu.etaxonomy.taxeditor.ui.section.description.ScopeSection;
74
import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
75 e4da09e6 Cherian Mathew
import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
76 a60842d7 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
77
import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
78 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
79
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
80
import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
81
import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
82
import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
83
import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
84
import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
85
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
86 313a413f Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
87 054db913 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
88 c0ca45cc Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection;
89 148d6ead Andreas Müller
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
90 313a413f Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
91 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
92 4b61c2b2 Patrick Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
93 3fc39e76 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
94 8475fe50 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
95 87924e53 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
96 c0c6e635 Patrick Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSamplePreparationPreservationSection;
97 e4428955 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
98 39b24584 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection;
99 87924e53 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection;
100 39b24584 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection;
101 87924e53 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadGeneralDetailSection;
102 39b24584 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection;
103 87924e53 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection;
104 c0ca45cc Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
105 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
106
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
107 123de414 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
108 5d53f076 Patrick Plitzner
import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
109 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
110
import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailSection;
111 f18e39bb n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailSection;
112 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection;
113
import eu.etaxonomy.taxeditor.ui.section.user.UserDetailSection;
114 775d037d a.theys
import eu.etaxonomy.taxeditor.ui.section.userecords.UseRecordDetailSection;
115 b9a0d300 l.morris
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
116 f211dd28 n.hoffmann
import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer;
117
import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
118 729887cf n.hoffmann
119
/**
120 313a413f Patric Plitzner
 *
121 b0ce5b17 Patric Plitzner
 * The DetailsViewer handles the content of the details view (
122
 * {@link DetailsViewPart}).<br>
123
 * Depending on the type of the selected element the section of the details view
124
 * are created.
125
 *
126 729887cf n.hoffmann
 * @author n.hoffmann
127
 * @created Feb 12, 2010
128
 * @version 1.0
129
 */
130 2d9a13f7 n.hoffmann
public class DetailsViewer extends AbstractCdmDataViewer {
131 729887cf n.hoffmann
132 238441fa Patric Plitzner
    private ISelection selection;
133 994548e2 Katja Luther
134 238441fa Patric Plitzner
    public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
135
        super(parent, viewPart);
136
    }
137
138
    // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
139
    // since we are getting implementations of DerivedUnitBase from the bulk
140
    // editor
141
    // and not derived unit facade objects,
142
143
    @Override
144
    public void setInput(Object input) {
145 aa744c3b Katja Luther
    	
146 1b52b9e4 Patric Plitzner
        if(input instanceof TreeNode){
147
            input = ((TreeNode) input).getValue();
148
        }
149 5f152d2b Patric Plitzner
        if(input instanceof GbifResponse){
150
            input = ((GbifResponse) input).getDerivedUnitFacade();
151
        }
152 a936172b Patric Plitzner
        if (input.getClass().equals(DerivedUnit.class)) {
153 238441fa Patric Plitzner
            DerivedUnit derivedUnit = (DerivedUnit)input;
154 a936172b Patric Plitzner
            try {
155
                input = DerivedUnitFacade.NewInstance(derivedUnit,
156
                        PreferencesUtil.getDerivedUnitConfigurator());
157
            } catch (DerivedUnitFacadeNotSupportedException e) {
158 c21686a3 Andreas Müller
//                MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
159 cd7144f7 Patric Plitzner
            }
160 238441fa Patric Plitzner
        }
161
        else if(input instanceof FieldUnit){
162
            input = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) input);
163
        }
164
        super.setInput(input);
165
    }
166
167
    @Override
168
    protected void markViewPartDirty() {
169
        if (getInput() instanceof DerivedUnitFacade) {
170
            DerivedUnitFacade facade = (DerivedUnitFacade) getInput();
171
            if(facade.innerDerivedUnit()!=null){
172
                getViewPart().changed(facade.innerDerivedUnit());
173
            }
174
            else if(facade.innerFieldUnit()!=null){
175
                getViewPart().changed(facade.innerFieldUnit());
176
            }
177
        }
178 c27998d8 Patric Plitzner
        else{
179
            super.markViewPartDirty();
180
        }
181 238441fa Patric Plitzner
    }
182
183
    // END HACK TO MAKE THE DERIVED UNIT FACADE WORK
184
185 f638efaa Andreas Müller
186 238441fa Patric Plitzner
    /** {@inheritDoc} */
187
    @Override
188
    protected void showParts() {
189
        // FIXME (CM) : Need to clean out this code.
190
        // Too much type checking to decide which detail view to display.
191
        // Need to build in a mechanism where navigators / editors are 'aware'
192
        // of the corresponding detail viewer.
193 aa744c3b Katja Luther
    	
194 b0ce5b17 Patric Plitzner
        Object input = getInput();
195 c0ca45cc Patric Plitzner
196
        destroySections();
197 b0ce5b17 Patric Plitzner
        if (input instanceof TaxonBase) {
198 48584197 Patrick Plitzner
            if(((TaxonBase) input).getName()==null){
199
                createEmptySection(rootElement);
200
            }
201
            else{
202
                createTaxonSections(rootElement);
203
            }
204 b9a0d300 l.morris
205 e3a4a3ff Andreas Müller
        } else if (input instanceof TaxonName) {
206 238441fa Patric Plitzner
            createNameSections(rootElement);
207 b9a0d300 l.morris
208 b0ce5b17 Patric Plitzner
        } else if (input instanceof Reference) {
209 238441fa Patric Plitzner
            createReferenceSections(rootElement);
210 b9a0d300 l.morris
211 b0ce5b17 Patric Plitzner
        } else if (input instanceof Team) {
212 238441fa Patric Plitzner
            createTeamDetailSection(rootElement);
213 b9a0d300 l.morris
214 b0ce5b17 Patric Plitzner
        } else if (input instanceof Person) {
215 238441fa Patric Plitzner
            createPersonDetailSection(rootElement);
216 b9a0d300 l.morris
217 b0ce5b17 Patric Plitzner
        } else if (input instanceof TeamOrPersonBase) {
218 238441fa Patric Plitzner
            createTeamOrPersonBaseDetailSection(rootElement);
219 b9a0d300 l.morris
220 b0ce5b17 Patric Plitzner
        } else if (input instanceof DescriptionBase) {
221 7a0547ca Patric Plitzner
            if(input instanceof SpecimenDescription){
222
                //TODO: add more sections to DetailsView for SpecimenDescription
223
                createSpecimenDescriptionSection(rootElement);
224
            }
225
            else{
226 feb81cbe Patric Plitzner
                Set<Marker> descriptionMarkers = ((DescriptionBase<?>) input).getMarkers();
227 b856ff9a Patric Plitzner
228 7a0547ca Patric Plitzner
                Boolean isUseDescription = false;
229
                for (Marker marker : descriptionMarkers) {
230 f638efaa Andreas Müller
                    if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) {
231 7a0547ca Patric Plitzner
                        isUseDescription = true;
232
                    }
233
                }
234 feb81cbe Patric Plitzner
                if (((DescriptionBase<?>) input).isImageGallery()) {
235 7a0547ca Patric Plitzner
                    createImageGallerySection(rootElement);
236
237
                } else if (isUseDescription) {
238
                    createUseDescriptionSection(rootElement);
239
                } else {
240
                    createDescriptionSection(rootElement);
241
242
                }
243
            }
244 b0ce5b17 Patric Plitzner
        } else if (input instanceof DescriptionElementBase) {
245
            Set<Marker> descriptionMarkers = ((DescriptionElementBase) input).getInDescription().getMarkers();
246 b856ff9a Patric Plitzner
247 238441fa Patric Plitzner
            Boolean isUseDescription = false;
248
            for (Marker marker : descriptionMarkers) {
249 f638efaa Andreas Müller
                if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) {
250 238441fa Patric Plitzner
                    isUseDescription = true;
251
                }
252
            }
253 313a413f Patric Plitzner
254 b0ce5b17 Patric Plitzner
            if (isUseDescription == true && input instanceof CategoricalData) {
255 238441fa Patric Plitzner
                createUseRecordSection(rootElement);
256 b0ce5b17 Patric Plitzner
            } else {
257 238441fa Patric Plitzner
                createDescriptionElementSection(rootElement);
258
            }
259 b9a0d300 l.morris
260 b0ce5b17 Patric Plitzner
        } else if (input instanceof Media) {
261 238441fa Patric Plitzner
            createMediaElementSection(rootElement);
262 b9a0d300 l.morris
263 b0ce5b17 Patric Plitzner
        } else if (input instanceof DerivedUnitFacade) {
264 313a413f Patric Plitzner
            if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
265 d90a6c9f Patric Plitzner
                if(((DerivedUnitFacade) input).innerFieldUnit()==null){
266
                    MessagingUtils.error(DetailsViewer.class, "FieldUnit of facade is null", null);
267
                }
268
                else{
269
                    createFieldUnitSection(rootElement);
270
                }
271 313a413f Patric Plitzner
            }
272 1de3b0d0 Patric Plitzner
            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
273 d90a6c9f Patric Plitzner
                if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
274
                    MessagingUtils.error(DetailsViewer.class, "DerivedUnit of facade is null", null);
275
                }
276
                else{
277
                    createDerivedUnitBaseElementSection(rootElement);
278
                }
279 1de3b0d0 Patric Plitzner
            }
280
            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
281 fe371b32 Patric Plitzner
                //TissueSample should only be created by using it's own class
282
                //in future using only one class with different SpecimenOrObservationTypes is desired
283 fa39cfe4 Katja Luther
                createTissueSampleSection(rootElement);
284 1de3b0d0 Patric Plitzner
            }
285 313a413f Patric Plitzner
            else{
286
                createDerivedUnitBaseElementSection(rootElement);
287
            }
288 c0ca45cc Patric Plitzner
        } else if (input instanceof DnaSample){
289 fe371b32 Patric Plitzner
            DnaSample dnaSample = (DnaSample)input;
290
            if(dnaSample.getRecordBasis()==SpecimenOrObservationType.TissueSample){
291
                createTissueSampleSection(rootElement);
292
            }
293
            else if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){
294
                createDnaSampleSection(rootElement);
295
            }
296 c0ca45cc Patric Plitzner
        } else if (input instanceof MediaSpecimen){
297
            createMediaSpecimenSection(rootElement);
298 238441fa Patric Plitzner
        }
299
        else if(input instanceof Sequence){
300
            createSequenceSection(rootElement);
301 cd7144f7 Patric Plitzner
        }
302 dd8c8181 Patric Plitzner
        else if(input instanceof SingleRead){
303
            createSingleReadSection(rootElement);
304
        }
305 cd7144f7 Patric Plitzner
        else if (input instanceof FeatureNodeContainer) {
306 238441fa Patric Plitzner
            createFeatureDistributionSection(rootElement);
307 b9a0d300 l.morris
308 dfd06c80 Patric Plitzner
        }else if ((input instanceof PolytomousKeyNode) || (input instanceof PolytomousKeyRelationship)) {
309 238441fa Patric Plitzner
            createPolytomousKeyNodeSection(rootElement);
310 b0ce5b17 Patric Plitzner
        } else if (input instanceof User) {
311 238441fa Patric Plitzner
            createUserSection(rootElement);
312 b0ce5b17 Patric Plitzner
        } else if (input instanceof Group) {
313 238441fa Patric Plitzner
            createGroupSection(rootElement);
314 aa744c3b Katja Luther
        } else if (input instanceof TaxonRelationship && ((TaxonRelationship)input).getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) {
315
            createMisappliedNameSection(rootElement);
316
        }else if (input instanceof TaxonRelationship ) {
317 238441fa Patric Plitzner
            createTaxonRelationshipSection(rootElement);
318 b0ce5b17 Patric Plitzner
        } else if (input instanceof TermVocabulary) {
319 238441fa Patric Plitzner
            createTermVocabularySection(rootElement);
320 b0ce5b17 Patric Plitzner
        } else if (input instanceof DefinedTermBase) {
321 238441fa Patric Plitzner
            createDefinedTermSection(rootElement);
322 c0ca45cc Patric Plitzner
        }
323 dfd06c80 Patric Plitzner
        else {
324 c0ca45cc Patric Plitzner
            createEmptySection(rootElement);
325 238441fa Patric Plitzner
        }
326
        layout();
327 aa744c3b Katja Luther
       
328 238441fa Patric Plitzner
    }
329 729887cf n.hoffmann
330 313a413f Patric Plitzner
331 c0ca45cc Patric Plitzner
    private void createEmptySection(RootElement parent) {
332
        destroySections();
333
334
        EmptySection emptySection = formFactory.createEmptySection(formFactory, parent, SWT.NONE);
335
336 38eaa3c8 Patrick Plitzner
        addPart(emptySection);
337 c0ca45cc Patric Plitzner
    }
338
339 238441fa Patric Plitzner
    private void createGroupSection(RootElement parent) {
340
        destroySections();
341 a6b8fe66 n.hoffmann
342 b0ce5b17 Patric Plitzner
        GroupDetailSection groupDetailSection = formFactory.createGroupDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE| ExpandableComposite.EXPANDED);
343
        MemberDetailSection memberDetailSection = formFactory.createMemberDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
344
        GrantedAuthorityDetailSection grantedAuthorityDetailSection = formFactory.createGrantedAuthorityDetailSection(getConversationHolder(), parent,ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
345 a6b8fe66 n.hoffmann
346 38eaa3c8 Patrick Plitzner
        addPart(groupDetailSection);
347
        addPart(memberDetailSection);
348
        addPart(grantedAuthorityDetailSection);
349 238441fa Patric Plitzner
    }
350
351
    /** {@inheritDoc} */
352
    @Override
353
    public ISelection getSelection() {
354
        return selection;
355
    }
356
357
    /** {@inheritDoc} */
358
    @Override
359
    public void setSelection(ISelection selection, boolean reveal) {
360 aa744c3b Katja Luther
    	
361
    		this.selection = selection;
362
	      
363
	        if(this.selection!=null){
364
	            SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection);
365
	            fireSelectionChanged(selectionChangedEvent);
366
	        }
367
    	
368 238441fa Patric Plitzner
    }
369 a6b8fe66 n.hoffmann
370 ca9fc8ea Patric Plitzner
    private void createTaxonSections(RootElement parent) {
371 238441fa Patric Plitzner
        destroySections();
372 a6b8fe66 n.hoffmann
373 4b2e5afe Patric Plitzner
        ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this,
374
                ExpandableComposite.EXPANDED | ExpandableComposite.EXPANDED);
375 1bfcc747 Katja Luther
        if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){
376 76b874f8 Katja Luther
        	TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
377
	        ExpandableComposite.TWISTIE	| ExpandableComposite.EXPANDED);
378
	        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
379
	        addPart(taxonBaseDetailSection);
380
        }else{
381
        	if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON)){
382
	            TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
383
	            		ExpandableComposite.TWISTIE	| ExpandableComposite.EXPANDED);
384
	            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
385 994548e2 Katja Luther
386 76b874f8 Katja Luther
	            addPart(taxonBaseDetailSection);
387
        	}
388 1bfcc747 Katja Luther
        }
389 d0e973da Patrick Plitzner
        NonViralNameDetailSection nonViralNameSection = formFactory
390
                .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
391
                        ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
392 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
393 994548e2 Katja Luther
        if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE))){
394 b30beda3 Katja Luther
	            NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
395
	            		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
396
	            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
397
	            addPart(referenceDetailSection);
398 994548e2 Katja Luther
399 76b874f8 Katja Luther
        }
400 b30beda3 Katja Luther
        if ( !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS))){
401
	            NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
402
	            		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
403
	            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
404
	            addPart(nomenclaturalStatusSection);
405 1bfcc747 Katja Luther
        }
406 994548e2 Katja Luther
407
    	if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE))){
408
    		ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
409
    		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
410
    		addPart(protologSection);
411
    	}
412
413
    	if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) &&  PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION))){
414
    		TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
415
    		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
416
    		addPart(typeDesignationSection);
417
    	}
418
419
    	if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP))){
420
    		NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
421
    		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
422
    		addPart(nameRelationshipSection);
423
    	}
424
425 a6b8fe66 n.hoffmann
426 38eaa3c8 Patrick Plitzner
        addPart(parsingMessagesSection);
427 1bfcc747 Katja Luther
428 38eaa3c8 Patrick Plitzner
        addPart(nonViralNameSection);
429 1bfcc747 Katja Luther
430 238441fa Patric Plitzner
    }
431
432
    private void createNameSections(RootElement parent) {
433
        destroySections();
434 d0e973da Patrick Plitzner
        NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(
435
                getConversationHolder(), parent, this, false, ExpandableComposite.TWISTIE
436
                        | ExpandableComposite.EXPANDED);
437 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
438 a6b8fe66 n.hoffmann
439 4db49a38 Alexander Oppermann
        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
440
        		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
441 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
442 a6b8fe66 n.hoffmann
443 4db49a38 Alexander Oppermann
        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
444
        		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
445 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
446 a6b8fe66 n.hoffmann
447 38eaa3c8 Patrick Plitzner
        addPart(nonViralNameSection);
448
        addPart(nomenclaturalStatusSection);
449
        addPart(referenceDetailSection);
450 4db49a38 Alexander Oppermann
451 994548e2 Katja Luther
		ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
452
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
453
454
        TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
455
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
456
457
        NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
458
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
459
        addPart(protologSection);
460
        addPart(typeDesignationSection);
461
        addPart(nameRelationshipSection);
462 4db49a38 Alexander Oppermann
463 238441fa Patric Plitzner
    }
464 a6b8fe66 n.hoffmann
465 238441fa Patric Plitzner
    private void createReferenceSections(RootElement parent) {
466
        destroySections();
467 a6b8fe66 n.hoffmann
468 4db49a38 Alexander Oppermann
        ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(getConversationHolder(), parent, this,
469
        		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
470 a6b8fe66 n.hoffmann
471 38eaa3c8 Patrick Plitzner
        addPart(referenceDetailSection);
472 238441fa Patric Plitzner
    }
473 a6b8fe66 n.hoffmann
474 238441fa Patric Plitzner
    private void createTeamOrPersonBaseDetailSection(RootElement parent) {
475
        destroySections();
476 b0ce5b17 Patric Plitzner
        TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = formFactory.createTeamOrPersonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
477 a6b8fe66 n.hoffmann
478 38eaa3c8 Patrick Plitzner
        addPart(teamOrPersonBaseDetailSection);
479 238441fa Patric Plitzner
    }
480 a6b8fe66 n.hoffmann
481 238441fa Patric Plitzner
    private void createTeamDetailSection(RootElement parent) {
482
        destroySections();
483 b0ce5b17 Patric Plitzner
        TeamDetailSection teamDetailSection = formFactory.createTeamDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
484 a6b8fe66 n.hoffmann
485 38eaa3c8 Patrick Plitzner
        addPart(teamDetailSection);
486 238441fa Patric Plitzner
    }
487 313a413f Patric Plitzner
488 238441fa Patric Plitzner
    private void createPersonDetailSection(RootElement parent) {
489
        destroySections();
490 b0ce5b17 Patric Plitzner
        PersonDetailSection personDetailSection = formFactory.createPersonDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
491 38eaa3c8 Patrick Plitzner
        addPart(personDetailSection);
492 238441fa Patric Plitzner
    }
493 a6b8fe66 n.hoffmann
494 238441fa Patric Plitzner
    private void createDescriptionElementSection(RootElement parent) {
495
        destroySections();
496 a6b8fe66 n.hoffmann
497 b0ce5b17 Patric Plitzner
        DescriptionElementDetailSection descriptionElementDetailSection = formFactory.createDescriptionElementDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
498 aa744c3b Katja Luther
        
499
      //  IntextReferenceSection intextReferenceSection = formFactory.createIntextReferenceSection(getConversationHolder(), parent,  ExpandableComposite.TWISTIE);
500
        
501 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
502 a6b8fe66 n.hoffmann
503 b0ce5b17 Patric Plitzner
        DescriptionElementSourceSection descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
504 a6b8fe66 n.hoffmann
505 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
506 a6b8fe66 n.hoffmann
507 b0ce5b17 Patric Plitzner
        DescriptionElementMediaSection descriptionElementMediaSection = formFactory.createDescriptionElementMediaSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
508 a6b8fe66 n.hoffmann
509 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
510 a6b8fe66 n.hoffmann
511 38eaa3c8 Patrick Plitzner
        addPart(descriptionElementDetailSection);
512
        addPart(descriptionElementSourceSection);
513
        addPart(descriptionElementMediaSection);
514 238441fa Patric Plitzner
    }
515 729887cf n.hoffmann
516 238441fa Patric Plitzner
    private void createDescriptionSection(RootElement parent) {
517
        destroySections();
518 b0ce5b17 Patric Plitzner
        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
519 a6b8fe66 n.hoffmann
520 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
521 a6b8fe66 n.hoffmann
522 b0ce5b17 Patric Plitzner
        NaturalLanguageSection naturalLanguageSection = formFactory.createNaturalLanguageSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
523 a6b8fe66 n.hoffmann
524 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
525 a6b8fe66 n.hoffmann
526 c59691da Patrick Plitzner
//        DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
527
//
528
//        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
529 a6b8fe66 n.hoffmann
530 238441fa Patric Plitzner
        //		DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection) formFactory
531
        //				.createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE,
532
        //						getConversationHolder(), parent, Section.TWISTIE);
533
        //
534
        //		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
535 a6b8fe66 n.hoffmann
536 b0ce5b17 Patric Plitzner
        ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
537 a6b8fe66 n.hoffmann
538 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
539
540 38eaa3c8 Patrick Plitzner
        addPart(descriptionDetailSection);
541
        addPart(naturalLanguageSection);
542 c59691da Patrick Plitzner
//        addPart(describedSpecimenSection);
543 238441fa Patric Plitzner
        //		addPart(descriptionSourceSection);
544 38eaa3c8 Patrick Plitzner
        addPart(scopeSection);
545 238441fa Patric Plitzner
    }
546
547
    private void createSpecimenDescriptionSection(RootElement parent) {
548
        destroySections();
549 b0ce5b17 Patric Plitzner
        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
550 38eaa3c8 Patrick Plitzner
        addPart(descriptionDetailSection);
551 238441fa Patric Plitzner
    }
552 d3568756 a.theys
553 238441fa Patric Plitzner
    private void createUseDescriptionSection(RootElement parent) {
554
        destroySections();
555
        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
556
557
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
558 d3568756 a.theys
559 b0ce5b17 Patric Plitzner
        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
560 d3568756 a.theys
561 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
562 d3568756 a.theys
563 38eaa3c8 Patrick Plitzner
        addPart(descriptionDetailSection);
564
        addPart(descriptionSourceSection);
565 313a413f Patric Plitzner
566 238441fa Patric Plitzner
    }
567 d3568756 a.theys
568 238441fa Patric Plitzner
    private void createImageGallerySection(RootElement parent) {
569
        destroySections();
570 b0ce5b17 Patric Plitzner
        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
571 a6b8fe66 n.hoffmann
572 38eaa3c8 Patrick Plitzner
        addPart(descriptionDetailSection);
573 238441fa Patric Plitzner
    }
574 313a413f Patric Plitzner
575 238441fa Patric Plitzner
    private void createMediaElementSection(RootElement parent) {
576
        destroySections();
577 c0ca45cc Patric Plitzner
578 b0ce5b17 Patric Plitzner
        MediaDetailsSection mediaDetailSection = formFactory.createMediaDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
579 a6b8fe66 n.hoffmann
580 38eaa3c8 Patrick Plitzner
        addPart(mediaDetailSection);
581 238441fa Patric Plitzner
    }
582 a6b8fe66 n.hoffmann
583 238441fa Patric Plitzner
    private void createDerivedUnitBaseElementSection(RootElement parent) {
584
        destroySections();
585 a6b8fe66 n.hoffmann
586 e97b77c6 Patric Plitzner
        DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
587 d90a6c9f Patric Plitzner
        //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
588 f13a970a Patrick Plitzner
        if(!(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart)){
589 a5e9f7de Patric Plitzner
            derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
590
        }
591 38eaa3c8 Patrick Plitzner
        addPart(derivedUnitGeneralDetailSection);
592 a6b8fe66 n.hoffmann
593 e97b77c6 Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
594 7c3f94c6 Patric Plitzner
595 e97b77c6 Patric Plitzner
        DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
596 38eaa3c8 Patrick Plitzner
        addPart(derivedUnitBaseDetailSection);
597 7c3f94c6 Patric Plitzner
598 e3bcee2d Patric Plitzner
        //for editors working with facades
599 f13a970a Patrick Plitzner
        if(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart){
600 e3bcee2d Patric Plitzner
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
601
            GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
602 38eaa3c8 Patrick Plitzner
            addPart(gatheringEventDetailSection);
603 e3bcee2d Patric Plitzner
604
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
605
            FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
606 38eaa3c8 Patrick Plitzner
            addPart(fieldUnitDetailSection);
607 e3bcee2d Patric Plitzner
        }
608 8f96bb65 Patrick Plitzner
        else{
609 a6b8fe66 n.hoffmann
610 8f96bb65 Patrick Plitzner
            if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS)){
611
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
612
                TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
613 38eaa3c8 Patrick Plitzner
                addPart(taxonAssociationDetailSection);
614 8f96bb65 Patrick Plitzner
            }
615
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
616 5d53f076 Patrick Plitzner
            DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
617 38eaa3c8 Patrick Plitzner
            addPart(identifierDetailSection);
618 8f96bb65 Patrick Plitzner
        }
619 e97b77c6 Patric Plitzner
        if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){
620 6b5ad34c Patric Plitzner
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
621
            DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
622 38eaa3c8 Patrick Plitzner
            addPart(determinationDetailSection);
623 6b5ad34c Patric Plitzner
        }
624 b856ff9a Patric Plitzner
625 4b61c2b2 Patrick Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
626 8830229b Patrick Plitzner
        DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
627 38eaa3c8 Patrick Plitzner
        addPart(derivedUnitTypeDesignationSection);
628 4b61c2b2 Patrick Plitzner
629 238441fa Patric Plitzner
    }
630 a6b8fe66 n.hoffmann
631 238441fa Patric Plitzner
    private void createFieldUnitSection(RootElement parent) {
632
        destroySections();
633 313a413f Patric Plitzner
634 238441fa Patric Plitzner
        FieldUnitGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
635 313a413f Patric Plitzner
636 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
637 313a413f Patric Plitzner
638 238441fa Patric Plitzner
        GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
639 313a413f Patric Plitzner
640 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
641 313a413f Patric Plitzner
642 238441fa Patric Plitzner
        FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
643 313a413f Patric Plitzner
644 38eaa3c8 Patrick Plitzner
        addPart(fielUnitGeneralDetailSection);
645
        addPart(gatheringEventDetailSection);
646
        addPart(fieldUnitDetailSection);
647 6b5ad34c Patric Plitzner
648
        if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){
649
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
650
            DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
651 38eaa3c8 Patrick Plitzner
            addPart(determinationDetailSection);
652 6b5ad34c Patric Plitzner
        }
653 238441fa Patric Plitzner
    }
654 313a413f Patric Plitzner
655 238441fa Patric Plitzner
    private void createTissueSampleSection(RootElement parent) {
656
        destroySections();
657 1de3b0d0 Patric Plitzner
658 238441fa Patric Plitzner
        TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
659 1de3b0d0 Patric Plitzner
660 fe371b32 Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
661
662
        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
663
664 38eaa3c8 Patrick Plitzner
        addPart(section);
665
        addPart(sampleDesignationDetailSection);
666 238441fa Patric Plitzner
    }
667 1de3b0d0 Patric Plitzner
668 238441fa Patric Plitzner
    private void createDnaSampleSection(RootElement parent) {
669
        destroySections();
670 8475fe50 Patric Plitzner
671 238441fa Patric Plitzner
        DnaSampleGeneralDetailSection section = formFactory.createDnaSampleGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
672 1de3b0d0 Patric Plitzner
673 8475fe50 Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
674
675 c0c6e635 Patrick Plitzner
        DnaSamplePreparationPreservationSection preparationPreservationSection = formFactory.createDnaSamplePreparationPreservationSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
676
677
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
678
679 8475fe50 Patric Plitzner
        DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
680
681 e4428955 Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
682
683
        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
684
685 38eaa3c8 Patrick Plitzner
        addPart(section);
686
        addPart(preparationPreservationSection);
687
        addPart(qualitySection);
688
        addPart(sampleDesignationDetailSection);
689 238441fa Patric Plitzner
    }
690 1de3b0d0 Patric Plitzner
691 238441fa Patric Plitzner
    private void createSequenceSection(RootElement parent) {
692
        destroySections();
693 3d3c7b7c Patric Plitzner
694 238441fa Patric Plitzner
        SequenceGeneralDetailSection section = formFactory.createSequenceGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
695 1de3b0d0 Patric Plitzner
696 39b24584 Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
697
698
        SequenceReferenceCollectionDetailSection referenceSection = formFactory.createSequenceReferenceCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
699
700
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
701
702
        SequenceContigFileCollectionDetailSection contigFileSection = formFactory.createSequenceContigFileCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
703
704
705 38eaa3c8 Patrick Plitzner
        addPart(section);
706
        addPart(referenceSection);
707
        addPart(contigFileSection);
708 238441fa Patric Plitzner
    }
709 1de3b0d0 Patric Plitzner
710 dd8c8181 Patric Plitzner
    private void createSingleReadSection(RootElement parent) {
711
        destroySections();
712 3d3c7b7c Patric Plitzner
713 dd8c8181 Patric Plitzner
        SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
714 38eaa3c8 Patrick Plitzner
        addPart(section);
715 dd8c8181 Patric Plitzner
716 3d3c7b7c Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
717
718 39b24584 Patric Plitzner
        SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
719 38eaa3c8 Patrick Plitzner
        addPart(pherogramSection);
720 feb81cbe Patric Plitzner
721 dd8c8181 Patric Plitzner
    }
722
723 c0ca45cc Patric Plitzner
    private void createMediaSpecimenSection(RootElement parent) {
724 238441fa Patric Plitzner
        destroySections();
725
726 123de414 Patric Plitzner
        MediaSpecimenGeneralDetailSection generalSection = formFactory.createMediaSpecimenGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
727 38eaa3c8 Patrick Plitzner
        addPart(generalSection);
728 123de414 Patric Plitzner
729
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
730
731
        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
732 38eaa3c8 Patrick Plitzner
        addPart(rightsSection);
733 123de414 Patric Plitzner
734 238441fa Patric Plitzner
    }
735 1de3b0d0 Patric Plitzner
736 238441fa Patric Plitzner
    private void createFeatureDistributionSection(RootElement parent) {
737
        destroySections();
738 a6b8fe66 n.hoffmann
739 b0ce5b17 Patric Plitzner
        FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
740 a6b8fe66 n.hoffmann
741 38eaa3c8 Patrick Plitzner
        addPart(featureDistributionSection);
742 238441fa Patric Plitzner
    }
743 35861667 n.hoffmann
744 238441fa Patric Plitzner
    private void createPolytomousKeyNodeSection(RootElement parent) {
745
        destroySections();
746 a6b8fe66 n.hoffmann
747 958979c5 Patrick Plitzner
        PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
748 313a413f Patric Plitzner
749 43c3e0c5 Cherian Mathew
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
750 313a413f Patric Plitzner
751 b0ce5b17 Patric Plitzner
        PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = formFactory.createPolytomousKeyNodeDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
752 9d74b485 Cherian Mathew
753 38eaa3c8 Patrick Plitzner
        addPart(polytomousKeyDetailSection);
754
        addPart(polytomousKeyNodeDetailSection);
755 15011fb1 Cherian Mathew
756 238441fa Patric Plitzner
    }
757 313a413f Patric Plitzner
758 238441fa Patric Plitzner
    private void createUseRecordSection(RootElement parent) {
759
        destroySections();
760 775d037d a.theys
761 b0ce5b17 Patric Plitzner
        UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(getConversationHolder(), parent, this,ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
762 775d037d a.theys
763 238441fa Patric Plitzner
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
764 313a413f Patric Plitzner
765 38eaa3c8 Patrick Plitzner
        addPart(descriptionUseRecordSection);
766 313a413f Patric Plitzner
767
768 238441fa Patric Plitzner
    }
769 a6b8fe66 n.hoffmann
770 238441fa Patric Plitzner
    private void createUserSection(RootElement parent) {
771
        destroySections();
772 a6b8fe66 n.hoffmann
773 b0ce5b17 Patric Plitzner
        UserDetailSection userDetailSection = formFactory.createUserDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
774 a6b8fe66 n.hoffmann
775 b0ce5b17 Patric Plitzner
        GroupsByUserDetailSection groupByUserDetailSection = formFactory.createGroupsByUserDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
776 a6b8fe66 n.hoffmann
777 38eaa3c8 Patrick Plitzner
        addPart(userDetailSection);
778
        addPart(groupByUserDetailSection);
779 238441fa Patric Plitzner
    }
780 b9a0d300 l.morris
781 aa744c3b Katja Luther
    private void createMisappliedNameSection(RootElement parent) {
782 238441fa Patric Plitzner
        destroySections();
783 b9a0d300 l.morris
784 b0ce5b17 Patric Plitzner
        TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
785 b9a0d300 l.morris
786 c5ed01f6 Katja Luther
       // ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
787 38eaa3c8 Patrick Plitzner
        addPart(taxonRelationshipDetailSection);
788 aa744c3b Katja Luther
        //addPart(referencedEntityBaseDetailSection);
789
       
790 c5ed01f6 Katja Luther
        NonViralNameDetailSection nonViralNameSection = formFactory
791
                .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
792
                        ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
793
        addPart(nonViralNameSection);
794 af7453f9 Katja Luther
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
795
        //if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE))){
796
        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
797
        		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
798
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
799
        addPart(referenceDetailSection);
800 c5ed01f6 Katja Luther
801 af7453f9 Katja Luther
        //if ( !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS))){
802
            NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
803
            		ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
804
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
805
            addPart(nomenclaturalStatusSection);
806
    //}
807
808
	//if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE))){
809
		ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
810
		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
811
		addPart(protologSection);
812
	//}
813
814
	//if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) &&  PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION))){
815
		TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
816
		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
817
		addPart(typeDesignationSection);
818
	//}
819
820
	//if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP))){
821
		NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
822
		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
823
		addPart(nameRelationshipSection);
824
	//}
825
826
        
827 c5ed01f6 Katja Luther
        //}
828 238441fa Patric Plitzner
    }
829 b9a0d300 l.morris
830 aa744c3b Katja Luther
    private void createTaxonRelationshipSection(RootElement parent) {
831
    	destroySections();
832
833
    	TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
834
835
        ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
836
        addPart(taxonRelationshipDetailSection);
837
        addPart(referencedEntityBaseDetailSection);
838
    }
839 238441fa Patric Plitzner
    private void createTermVocabularySection(RootElement parent) {
840
        destroySections();
841 b9a0d300 l.morris
842 b0ce5b17 Patric Plitzner
        TermVocabularyDetailSection termVocabularyDetailSection = formFactory.createTermVocabularyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
843 38eaa3c8 Patrick Plitzner
        addPart(termVocabularyDetailSection);
844 238441fa Patric Plitzner
    }
845 b9a0d300 l.morris
846 238441fa Patric Plitzner
    private void createDefinedTermSection(RootElement parent) {
847
        destroySections();
848 b9a0d300 l.morris
849 f638efaa Andreas Müller
        AbstractFormSection<?> definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
850 38eaa3c8 Patrick Plitzner
        addPart(definedTermDetailSection);
851 956da1e4 Patrick Plitzner
    }
852 b0ce5b17 Patric Plitzner
853 38eaa3c8 Patrick Plitzner
	@Override
854
	public void update(CdmDataChangeMap arg0) {
855 994548e2 Katja Luther
856 38eaa3c8 Patrick Plitzner
	}
857
858 729887cf n.hoffmann
}