2 * Copyright (C) 2011 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * 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.
10 package eu
.etaxonomy
.taxeditor
.view
.e4
.details
;
12 import java
.util
.HashSet
;
15 import javax
.inject
.Inject
;
17 import org
.eclipse
.e4
.core
.di
.annotations
.Optional
;
18 import org
.eclipse
.e4
.ui
.di
.UIEventTopic
;
19 import org
.eclipse
.jface
.viewers
.ISelection
;
20 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
21 import org
.eclipse
.jface
.viewers
.SelectionChangedEvent
;
22 import org
.eclipse
.jface
.viewers
.TreeNode
;
23 import org
.eclipse
.swt
.SWT
;
25 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacade
;
26 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeNotSupportedException
;
27 import eu
.etaxonomy
.cdm
.ext
.occurrence
.gbif
.GbifResponse
;
28 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
29 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
30 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
31 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
32 import eu
.etaxonomy
.cdm
.model
.description
.CategoricalData
;
33 import eu
.etaxonomy
.cdm
.model
.description
.Character
;
34 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionBase
;
35 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
36 import eu
.etaxonomy
.cdm
.model
.description
.Distribution
;
37 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKeyNode
;
38 import eu
.etaxonomy
.cdm
.model
.description
.SpecimenDescription
;
39 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
40 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
41 import eu
.etaxonomy
.cdm
.model
.molecular
.DnaSample
;
42 import eu
.etaxonomy
.cdm
.model
.molecular
.Sequence
;
43 import eu
.etaxonomy
.cdm
.model
.molecular
.SingleRead
;
44 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
45 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
46 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
47 import eu
.etaxonomy
.cdm
.model
.occurrence
.MediaSpecimen
;
48 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
49 import eu
.etaxonomy
.cdm
.model
.permission
.Group
;
50 import eu
.etaxonomy
.cdm
.model
.permission
.User
;
51 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
52 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
53 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationship
;
54 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTermBase
;
55 import eu
.etaxonomy
.cdm
.model
.term
.TermNode
;
56 import eu
.etaxonomy
.cdm
.model
.term
.TermTree
;
57 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
58 import eu
.etaxonomy
.cdm
.model
.term
.TermVocabulary
;
59 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
60 import eu
.etaxonomy
.taxeditor
.editor
.IDistributionEditor
;
61 import eu
.etaxonomy
.taxeditor
.event
.WorkbenchEventConstants
;
62 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
63 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
64 import eu
.etaxonomy
.taxeditor
.model
.FeatureNodeContainer
;
65 import eu
.etaxonomy
.taxeditor
.model
.IDerivedUnitFacadePart
;
66 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
67 import eu
.etaxonomy
.taxeditor
.model
.PolytomousKeyRelationship
;
68 import eu
.etaxonomy
.taxeditor
.preference
.NameDetailsConfigurator
;
69 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
70 import eu
.etaxonomy
.taxeditor
.store
.StoreUtil
;
71 import eu
.etaxonomy
.taxeditor
.store
.UsageTermCollection
;
72 import eu
.etaxonomy
.taxeditor
.ui
.element
.RootElement
;
73 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.PersonDetailSection
;
74 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.TeamDetailSection
;
75 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.TeamOrPersonBaseDetailSection
;
76 import eu
.etaxonomy
.taxeditor
.ui
.section
.common
.ReferencedEntityDetailSection
;
77 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.DescriptionDetailSection
;
78 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.DescriptionElementDetailSection
;
79 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.DescriptionElementMediaSection
;
80 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.DescriptionElementSourceSection
;
81 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.DescriptionSourceSection
;
82 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.MediaDetailsSection
;
83 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.NaturalLanguageSection
;
84 import eu
.etaxonomy
.taxeditor
.ui
.section
.description
.ScopeSection
;
85 import eu
.etaxonomy
.taxeditor
.ui
.section
.feature
.CharacterDetailSection
;
86 import eu
.etaxonomy
.taxeditor
.ui
.section
.feature
.CharacterNodeDetailSection
;
87 import eu
.etaxonomy
.taxeditor
.ui
.section
.feature
.FeatureDistributionDetailSection
;
88 import eu
.etaxonomy
.taxeditor
.ui
.section
.feature
.FeatureNodeDetailSection
;
89 import eu
.etaxonomy
.taxeditor
.ui
.section
.feature
.FeatureTreeDetailSection
;
90 import eu
.etaxonomy
.taxeditor
.ui
.section
.grantedAuthority
.GrantedAuthorityDetailSection
;
91 import eu
.etaxonomy
.taxeditor
.ui
.section
.group
.GroupDetailSection
;
92 import eu
.etaxonomy
.taxeditor
.ui
.section
.group
.MemberDetailSection
;
93 import eu
.etaxonomy
.taxeditor
.ui
.section
.key
.PolytomousKeyDetailSection
;
94 import eu
.etaxonomy
.taxeditor
.ui
.section
.key
.PolytomousKeyNodeDetailSection
;
95 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NameRelationshipDetailSection
;
96 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NomenclaturalStatusSection
;
97 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NonViralNameDetailSection
;
98 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.ProtologueSection
;
99 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.TypeDesignationSection
;
100 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DerivedUnitBaseDetailSection
;
101 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DerivedUnitGeneralDetailSection
;
102 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DeterminationDetailSection
;
103 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldUnitDetailSection
;
104 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldUnitGeneralDetailSection
;
105 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GatheringEventDetailSection
;
106 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.association
.DerivedUnitTypeDesignationSection
;
107 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.association
.TaxonAssociationDetailSection
;
108 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.DnaQualityDetailSection
;
109 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.DnaSampleGeneralDetailSection
;
110 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.DnaSamplePreparationPreservationSection
;
111 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SampleDesignationDetailSection
;
112 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SequenceContigFileCollectionDetailSection
;
113 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SequenceGeneralDetailSection
;
114 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SequenceReferenceCollectionDetailSection
;
115 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SingleReadGeneralDetailSection
;
116 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.SingleReadPherogramCollectionDetailSection
;
117 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
.TissueSampleGeneralDetailSection
;
118 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.media
.MediaSpecimenGeneralDetailSection
;
119 import eu
.etaxonomy
.taxeditor
.ui
.section
.reference
.NomenclaturalReferenceDetailSection
;
120 import eu
.etaxonomy
.taxeditor
.ui
.section
.reference
.ReferenceDetailSection
;
121 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.RightsSection
;
122 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.identifier
.DerivedUnitFacadeIdentifierSection
;
123 import eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
.ParsingMessagesSection
;
124 import eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
.TaxonBaseDetailSection
;
125 import eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
.TaxonRelationshipDetailSection
;
126 import eu
.etaxonomy
.taxeditor
.ui
.section
.user
.GroupsByUserDetailSection
;
127 import eu
.etaxonomy
.taxeditor
.ui
.section
.user
.UserDetailSection
;
128 import eu
.etaxonomy
.taxeditor
.ui
.section
.userecords
.UseRecordDetailSection
;
129 import eu
.etaxonomy
.taxeditor
.ui
.section
.vocabulary
.DefinedTermDetailSection
;
130 import eu
.etaxonomy
.taxeditor
.ui
.section
.vocabulary
.TermMediaSection
;
131 import eu
.etaxonomy
.taxeditor
.ui
.section
.vocabulary
.TermVocabularyDetailSection
;
132 import eu
.etaxonomy
.taxeditor
.view
.e4
.AbstractCdmDataViewerE4
;
136 * The DetailsViewer handles the content of the details view (
137 * {@link DetailsPartE4}).<br>
138 * Depending on the type of the selected element the section of the details view
145 public class DetailsViewerE4
extends AbstractCdmDataViewerE4
{
147 private ISelection selection
;
148 private boolean detailsEnabled
= true;
150 public boolean isDetailsEnabled() {
151 return detailsEnabled
;
154 public void setDetailsEnabled(boolean detailsEnabled
) {
155 this.detailsEnabled
= detailsEnabled
;
158 public void setInput(Object input
, Object activePart
) {
159 if (activePart
instanceof IDistributionEditor
){
160 detailsEnabled
= false;
162 detailsEnabled
= true;
167 // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
168 // since we are getting implementations of DerivedUnitBase from the bulk
170 // and not derived unit facade objects,
173 public void setInput(Object input
) {
175 if(input
instanceof TreeNode
){
176 input
= ((TreeNode
) input
).getValue();
178 if(input
instanceof GbifResponse
){
179 input
= ((GbifResponse
) input
).getDerivedUnitFacade();
181 if (input
!=null && input
.getClass().equals(DerivedUnit
.class)) {
182 DerivedUnit derivedUnit
= (DerivedUnit
)input
;
184 input
= DerivedUnitFacade
.NewInstance(derivedUnit
,
185 PreferencesUtil
.getDerivedUnitConfigurator());
186 } catch (DerivedUnitFacadeNotSupportedException e
) {
187 // 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
190 else if(input
instanceof FieldUnit
){
191 input
= DerivedUnitFacade
.NewInstance(SpecimenOrObservationType
.FieldUnit
, (FieldUnit
) input
);
193 super.setInput(input
);
197 protected void markViewPartDirty() {
198 if (getInput() instanceof DerivedUnitFacade
) {
199 if(part
instanceof IDerivedUnitFacadePart
){
200 part
.changed(getInput());
203 DerivedUnitFacade facade
= (DerivedUnitFacade
) getInput();
204 if(facade
.innerDerivedUnit()!=null){
205 part
.changed(facade
.innerDerivedUnit());
207 else if(facade
.innerFieldUnit()!=null){
208 part
.changed(facade
.innerFieldUnit());
213 super.markViewPartDirty();
219 protected void showParts() {
220 // FIXME (CM) : Need to clean out this code.
221 // Too much type checking to decide which detail view to display.
222 // Need to build in a mechanism where navigators / editors are 'aware'
223 // of the corresponding detail viewer.
225 Object input
= getInput();
230 if (input
instanceof TaxonBase
) {
231 if(((TaxonBase
) input
).getName()==null){
232 createEmptySection(Messages
.DetailsViewerE4_TAXON_HAS_NO_NAME
, rootElement
);
235 createTaxonSections(rootElement
);
238 } else if (input
instanceof TaxonName
) {
239 createNameSections(rootElement
);
241 } else if (input
instanceof Reference
) {
242 createReferenceSections(rootElement
);
244 } else if (input
instanceof Team
) {
245 createTeamDetailSection(rootElement
);
247 } else if (input
instanceof Person
) {
248 createPersonDetailSection(rootElement
);
250 } else if (input
instanceof TeamOrPersonBase
) {
251 createTeamOrPersonBaseDetailSection(rootElement
);
253 } else if (input
instanceof DescriptionBase
) {
254 if(input
instanceof SpecimenDescription
){
255 //TODO: add more sections to DetailsView for SpecimenDescription
256 createSpecimenDescriptionSection(rootElement
);
259 Set
<Marker
> descriptionMarkers
= ((DescriptionBase
<?
>) input
).getMarkers();
261 Boolean isUseDescription
= false;
262 for (Marker marker
: descriptionMarkers
) {
263 if (marker
.getMarkerType()!= null && marker
.getMarkerType().getUuid().equals(UsageTermCollection
.uuidUseMarkerType
)) {
264 isUseDescription
= true;
267 if (((DescriptionBase
<?
>) input
).isImageGallery()) {
268 createImageGallerySection(rootElement
);
270 } else if (isUseDescription
) {
271 createUseDescriptionSection(rootElement
);
272 } else if (input
instanceof TaxonDescription
){
273 createTaxonDescriptionSection(rootElement
);
276 createDescriptionSection(rootElement
, false);
279 } else if (input
instanceof DescriptionElementBase
){
280 Set
<Marker
> descriptionMarkers
= new HashSet
<>();
281 if(((DescriptionElementBase
) input
).getInDescription()!=null) {
282 descriptionMarkers
= ((DescriptionElementBase
) input
).getInDescription().getMarkers();
285 Boolean isUseDescription
= false;
286 for (Marker marker
: descriptionMarkers
) {
287 if (marker
.getMarkerType()!= null && marker
.getMarkerType().getUuid().equals(UsageTermCollection
.uuidUseMarkerType
)) {
288 isUseDescription
= true;
292 if (isUseDescription
== true && input
instanceof CategoricalData
) {
293 createUseRecordSection(rootElement
);
295 createDescriptionElementSection(rootElement
);
298 } else if (input
instanceof Media
) {
299 createMediaElementSection(rootElement
);
302 //FIXME hack to show more informative message to the user when
303 //DerivedUnit has more than one FieldUnit #4363
304 else if (input
.getClass().equals(DerivedUnit
.class)) {
305 DerivedUnit derivedUnit
= (DerivedUnit
)input
;
307 input
= DerivedUnitFacade
.NewInstance(derivedUnit
,
308 PreferencesUtil
.getDerivedUnitConfigurator());
309 } catch (DerivedUnitFacadeNotSupportedException e
) {
310 createEmptySection(e
.getMessage(), rootElement
);
313 else if (input
instanceof DerivedUnitFacade
) {
314 if(((DerivedUnitFacade
) input
).getType()==SpecimenOrObservationType
.FieldUnit
){
315 if(((DerivedUnitFacade
) input
).innerFieldUnit()==null){
316 MessagingUtils
.error(DetailsViewerE4
.class, "FieldUnit of facade is null", null); //$NON-NLS-1$
319 createFieldUnitSection(rootElement
);
322 else if(((DerivedUnitFacade
) input
).getType()==SpecimenOrObservationType
.PreservedSpecimen
){
323 if(((DerivedUnitFacade
) input
).innerDerivedUnit()==null){
324 MessagingUtils
.error(DetailsViewerE4
.class, "DerivedUnit of facade is null", null); //$NON-NLS-1$
327 createDerivedUnitBaseElementSection(rootElement
);
330 else if(((DerivedUnitFacade
) input
).getType()==SpecimenOrObservationType
.TissueSample
){
331 //TissueSample should only be created by using it's own class
332 //in future using only one class with different SpecimenOrObservationTypes is desired
333 createTissueSampleSection(rootElement
);
336 createDerivedUnitBaseElementSection(rootElement
);
338 } else if (input
instanceof DnaSample
){
339 DnaSample dnaSample
= (DnaSample
)input
;
340 if(dnaSample
.getRecordBasis()==SpecimenOrObservationType
.TissueSample
){
341 createTissueSampleSection(rootElement
);
343 else if(dnaSample
.getRecordBasis()==SpecimenOrObservationType
.DnaSample
){
344 createDnaSampleSection(rootElement
);
346 } else if (input
instanceof MediaSpecimen
){
347 createMediaSpecimenSection(rootElement
);
349 else if(input
instanceof Sequence
){
350 createSequenceSection(rootElement
);
352 else if(input
instanceof SingleRead
){
353 createSingleReadSection(rootElement
);
355 else if (input
instanceof FeatureNodeContainer
) {
356 createFeatureDistributionSection(rootElement
);
358 } else if (input
instanceof TermNode
) {
359 TermType type
= ((TermNode
) input
).getTermType();
360 if(type
.equals(TermType
.Character
)){
361 createCharacterNodeSection(rootElement
);
363 else if(type
.equals(TermType
.Feature
)){
364 createFeatureNodeSection(rootElement
);
367 } else if (input
instanceof TermTree
) {
368 createFeatureTreeSection(rootElement
);
370 } else if (input
instanceof Character
) {
371 createCharacterSection(rootElement
);
373 }else if ((input
instanceof PolytomousKeyNode
) || (input
instanceof PolytomousKeyRelationship
)) {
374 createPolytomousKeyNodeSection(rootElement
);
375 } else if (input
instanceof User
) {
376 createUserSection(rootElement
);
377 } else if (input
instanceof Group
) {
378 createGroupSection(rootElement
);
379 } else if (input
instanceof TaxonRelationship
&& ((TaxonRelationship
)input
).getType()!=null
380 && (((TaxonRelationship
)input
).getType().isAnyMisappliedName() || ((TaxonRelationship
)input
).getType().isAnySynonym() || ((TaxonRelationship
)input
).getType().isMisappliedNameOrInvalidDesignation())){
381 createMisappliedNameSection(rootElement
);
382 }else if (input
instanceof TaxonRelationship
) {
383 createTaxonRelationshipSection(rootElement
);
384 } else if (input
instanceof TermVocabulary
) {
385 createTermVocabularySection(rootElement
);
386 } else if (input
instanceof DefinedTermBase
) {
387 createDefinedTermSection(rootElement
);
389 } else if (input
instanceof SelectionChangedEvent
) {
390 IStructuredSelection sel
=(IStructuredSelection
) ((SelectionChangedEvent
)input
).getSelection();
391 if (sel
.getFirstElement()instanceof Distribution
){
392 createDescriptionElementSection(rootElement
);
395 // createDescriptionElementSection(rootElement);
398 createEmptySection(null, rootElement
);
404 private void createGroupSection(RootElement parent
) {
405 GroupDetailSection groupDetailSection
= formFactory
.createGroupDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(GroupDetailSection
.class, getInput().getClass().getCanonicalName()));
406 MemberDetailSection memberDetailSection
= formFactory
.createMemberDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(MemberDetailSection
.class, getInput().getClass().getCanonicalName()));
407 GrantedAuthorityDetailSection grantedAuthorityDetailSection
= formFactory
.createGrantedAuthorityDetailSection(getConversationHolder(), parent
,StoreUtil
.getSectionStyle(GrantedAuthorityDetailSection
.class, getInput().getClass().getCanonicalName()));
409 addPart(groupDetailSection
);
410 addPart(memberDetailSection
);
411 addPart(grantedAuthorityDetailSection
);
416 public ISelection
getSelection() {
422 public void setSelection(ISelection selection
, boolean reveal
) {
424 this.selection
= selection
;
426 if(this.selection
!=null){
427 SelectionChangedEvent selectionChangedEvent
= new SelectionChangedEvent(this, selection
);
428 fireSelectionChanged(selectionChangedEvent
);
433 private void createTaxonSections(RootElement parent
) {
434 NameDetailsConfigurator config
= PreferencesUtil
.getPreferredNameDetailsConfiguration();
435 ParsingMessagesSection parsingMessagesSection
= formFactory
.createParsingMessagesSection(getConversationHolder(), parent
, this,
436 StoreUtil
.getSectionStyle(ParsingMessagesSection
.class, getInput().getClass().getCanonicalName(), true));
437 if (!config
.isSimpleDetailsViewActivated()){
438 TaxonBaseDetailSection taxonBaseDetailSection
= formFactory
.createTaxonBaseDetailSection(getConversationHolder(), parent
, this,
439 StoreUtil
.getSectionStyle(TaxonBaseDetailSection
.class, getInput().getClass().getCanonicalName(), true));
440 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
441 addPart(taxonBaseDetailSection
);
443 if (config
.isTaxonSectionActivated()){
444 TaxonBaseDetailSection taxonBaseDetailSection
= formFactory
.createTaxonBaseDetailSection(getConversationHolder(), parent
, this,
445 StoreUtil
.getSectionStyle(TaxonBaseDetailSection
.class, getInput().getClass().getCanonicalName(), true));
446 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
447 addPart(taxonBaseDetailSection
);
450 NonViralNameDetailSection nonViralNameSection
= formFactory
451 .createNonViralNameDetailSection(getConversationHolder(), parent
, this, true,
452 StoreUtil
.getSectionStyle(NonViralNameDetailSection
.class, getInput().getClass().getCanonicalName(), true));
453 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
454 if (!config
.isSimpleDetailsViewActivated() || (config
.isSimpleDetailsViewActivated() && config
.isNomenclaturalReferenceSectionActivated())){
455 NomenclaturalReferenceDetailSection referenceDetailSection
= formFactory
.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent
, this,
456 StoreUtil
.getSectionStyle(NomenclaturalReferenceDetailSection
.class, getInput().getClass().getCanonicalName(), true));
457 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
458 addPart(referenceDetailSection
);
461 if ( !config
.isSimpleDetailsViewActivated() || (config
.isSimpleDetailsViewActivated() && config
.isNomenclaturalStatusSectionActivated())){
462 NomenclaturalStatusSection nomenclaturalStatusSection
= formFactory
.createNomenclaturalStatusSection(getConversationHolder(), parent
,
463 StoreUtil
.getSectionStyle(NomenclaturalStatusSection
.class, getInput().getClass().getCanonicalName(), true));
464 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
465 addPart(nomenclaturalStatusSection
);
468 if ( !config
.isSimpleDetailsViewActivated() || (config
.isSimpleDetailsViewActivated() && config
.isProtologueActivated())){
469 ProtologueSection protologSection
= formFactory
.createProtologueSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(ProtologueSection
.class, getInput().getClass().getCanonicalName()));
470 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
471 addPart(protologSection
);
474 if (!config
.isSimpleDetailsViewActivated() || (config
.isSimpleDetailsViewActivated() && config
.isTypeDesignationSectionActivated())){
475 TypeDesignationSection typeDesignationSection
= formFactory
.createTypeDesignationSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(TypeDesignationSection
.class, getInput().getClass().getCanonicalName()));
476 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
477 addPart(typeDesignationSection
);
480 if (!config
.isSimpleDetailsViewActivated() || (config
.isSimpleDetailsViewActivated() &&config
.isNameRelationsSectionActivated())){
481 NameRelationshipDetailSection nameRelationshipSection
= formFactory
.createNameRelationshipDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(NameRelationshipDetailSection
.class, getInput().getClass().getCanonicalName()));
482 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
483 addPart(nameRelationshipSection
);
487 addPart(parsingMessagesSection
);
489 addPart(nonViralNameSection
);
493 private void createNameSections(RootElement parent
) {
494 NonViralNameDetailSection nonViralNameSection
= formFactory
.createNonViralNameDetailSection(
495 getConversationHolder(), parent
, this, false, StoreUtil
.getSectionStyle(NonViralNameDetailSection
.class, getInput().getClass().getCanonicalName(), true));
497 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
499 NomenclaturalReferenceDetailSection referenceDetailSection
= formFactory
.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent
, this,
500 StoreUtil
.getSectionStyle(NomenclaturalReferenceDetailSection
.class, getInput().getClass().getCanonicalName(), true));
501 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
503 NomenclaturalStatusSection nomenclaturalStatusSection
= formFactory
.createNomenclaturalStatusSection(getConversationHolder(), parent
,
504 StoreUtil
.getSectionStyle(NomenclaturalStatusSection
.class, getInput().getClass().getCanonicalName(), true));
505 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
507 addPart(nonViralNameSection
);
508 addPart(nomenclaturalStatusSection
);
509 addPart(referenceDetailSection
);
511 ProtologueSection protologSection
= formFactory
.createProtologueSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(ProtologueSection
.class, getInput().getClass().getCanonicalName()));
512 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
514 TypeDesignationSection typeDesignationSection
= formFactory
.createTypeDesignationSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(TypeDesignationSection
.class, getInput().getClass().getCanonicalName()));
515 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
517 NameRelationshipDetailSection nameRelationshipSection
= formFactory
.createNameRelationshipDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(NameRelationshipDetailSection
.class, getInput().getClass().getCanonicalName()));
518 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
519 addPart(protologSection
);
520 addPart(typeDesignationSection
);
521 addPart(nameRelationshipSection
);
525 private void createReferenceSections(RootElement parent
) {
526 ReferenceDetailSection referenceDetailSection
= formFactory
.createReferenceDetailSection(getConversationHolder(), parent
, this,
527 StoreUtil
.getSectionStyle(ReferenceDetailSection
.class, getInput().getClass().getCanonicalName(), true));
529 addPart(referenceDetailSection
);
532 private void createTeamOrPersonBaseDetailSection(RootElement parent
) {
533 TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection
= formFactory
.createTeamOrPersonBaseDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(TeamOrPersonBaseDetailSection
.class, getInput().getClass().getCanonicalName(), true));
535 addPart(teamOrPersonBaseDetailSection
);
538 private void createTeamDetailSection(RootElement parent
) {
539 TeamDetailSection teamDetailSection
= formFactory
.createTeamDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(TeamDetailSection
.class, getInput().getClass().getCanonicalName(), true));
541 addPart(teamDetailSection
);
544 private void createPersonDetailSection(RootElement parent
) {
545 PersonDetailSection personDetailSection
= formFactory
.createPersonDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(PersonDetailSection
.class, getInput().getClass().getCanonicalName(), true));
546 addPart(personDetailSection
);
549 private void createDescriptionElementSection(RootElement parent
) {
550 DescriptionElementDetailSection descriptionElementDetailSection
= formFactory
.createDescriptionElementDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DescriptionElementDetailSection
.class, getInput().getClass().getCanonicalName(), true));
551 descriptionElementDetailSection
.setEnabled(this.detailsEnabled
);
553 // IntextReferenceSection intextReferenceSection = formFactory.createIntextReferenceSection(getConversationHolder(), parent, getSectionStyle(.class, getInput().getClass().getCanonicalName()));
555 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
557 DescriptionElementSourceSection descriptionElementSourceSection
= formFactory
.createDescriptionElementSourceSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DescriptionElementSourceSection
.class, getInput().getClass().getCanonicalName()));
559 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
561 DescriptionElementMediaSection descriptionElementMediaSection
= formFactory
.createDescriptionElementMediaSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DescriptionElementMediaSection
.class, getInput().getClass().getCanonicalName()));
563 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
565 addPart(descriptionElementDetailSection
);
566 addPart(descriptionElementSourceSection
);
567 addPart(descriptionElementMediaSection
);
570 private void createDescriptionSection(RootElement parent
, boolean isTaxonDescription
) {
571 DescriptionDetailSection descriptionDetailSection
= formFactory
.createDescriptionDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DescriptionDetailSection
.class, getInput().getClass().getCanonicalName(), true));
572 addPart(descriptionDetailSection
);
574 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
576 if(isTaxonDescription
) {
577 NaturalLanguageSection naturalLanguageSection
= formFactory
.createNaturalLanguageSection(
578 getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(NaturalLanguageSection
.class, getInput().getClass().getCanonicalName(), true));
579 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
580 addPart(naturalLanguageSection
);
582 DescriptionSourceSection descriptionSourceSection
= formFactory
.createDescriptionSourceSection(
583 getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DescriptionSourceSection
.class, getInput().getClass().getCanonicalName(), true));
584 addPart(descriptionSourceSection
);
586 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
588 if(isTaxonDescription
) {
589 ScopeSection scopeSection
= formFactory
.createScopeSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(ScopeSection
.class, getInput().getClass().getCanonicalName()));
590 addPart(scopeSection
);
594 private void createTaxonDescriptionSection(RootElement parent
) {
595 createDescriptionSection(parent
, true);
598 private void createSpecimenDescriptionSection(RootElement parent
) {
599 createDescriptionSection(parent
, false);
602 private void createUseDescriptionSection(RootElement parent
) {
603 DescriptionDetailSection descriptionDetailSection
= formFactory
.createDescriptionDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DescriptionDetailSection
.class, getInput().getClass().getCanonicalName()));
605 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
607 DescriptionSourceSection descriptionSourceSection
= formFactory
.createDescriptionSourceSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DescriptionSourceSection
.class, getInput().getClass().getCanonicalName()));
609 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
611 addPart(descriptionDetailSection
);
612 addPart(descriptionSourceSection
);
616 private void createImageGallerySection(RootElement parent
) {
617 DescriptionDetailSection descriptionDetailSection
= formFactory
.createDescriptionDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DescriptionDetailSection
.class, getInput().getClass().getCanonicalName()));
619 addPart(descriptionDetailSection
);
622 private void createMediaElementSection(RootElement parent
) {
623 MediaDetailsSection mediaDetailSection
= formFactory
.createMediaDetailsSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(MediaDetailsSection
.class, getInput().getClass().getCanonicalName(), true));
625 addPart(mediaDetailSection
);
628 private void createDerivedUnitBaseElementSection(RootElement parent
) {
629 DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection
= formFactory
.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DerivedUnitGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
630 //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
631 if(!(AbstractUtility
.getActivePart() instanceof IDerivedUnitFacadePart
)){
632 derivedUnitGeneralDetailSection
.setShowOnlyDerivedUnitData(true);
634 addPart(derivedUnitGeneralDetailSection
);
636 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
638 DerivedUnitBaseDetailSection derivedUnitBaseDetailSection
= formFactory
.createDerivedUnitBaseDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DerivedUnitBaseDetailSection
.class, getInput().getClass().getCanonicalName(), true));
639 addPart(derivedUnitBaseDetailSection
);
641 //for editors working with facades
642 if(AbstractUtility
.getActivePart() instanceof IDerivedUnitFacadePart
){
643 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
644 GatheringEventDetailSection gatheringEventDetailSection
= formFactory
.createGatheringEventDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(GatheringEventDetailSection
.class, getInput().getClass().getCanonicalName()));
645 addPart(gatheringEventDetailSection
);
647 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
648 FieldUnitDetailSection fieldUnitDetailSection
= formFactory
.createFieldUnitDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FieldUnitDetailSection
.class, getInput().getClass().getCanonicalName()));
649 addPart(fieldUnitDetailSection
);
653 if(PreferencesUtil
.isShowTaxonAssociations()){
654 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
655 TaxonAssociationDetailSection taxonAssociationDetailSection
= formFactory
.createTaxonAssociationDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(TaxonAssociationDetailSection
.class, getInput().getClass().getCanonicalName(), true));
656 addPart(taxonAssociationDetailSection
);
658 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
659 DerivedUnitFacadeIdentifierSection identifierDetailSection
= formFactory
.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DerivedUnitFacadeIdentifierSection
.class, getInput().getClass().getCanonicalName()));
660 addPart(identifierDetailSection
);
662 if(!PreferencesUtil
.isDeterminationOnlyForFieldUnits()){
663 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
664 DeterminationDetailSection determinationDetailSection
= formFactory
.createDeterminationDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DeterminationDetailSection
.class, getInput().getClass().getCanonicalName()));
665 addPart(determinationDetailSection
);
668 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
669 DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection
= formFactory
.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DerivedUnitTypeDesignationSection
.class, getInput().getClass().getCanonicalName()));
670 addPart(derivedUnitTypeDesignationSection
);
674 private void createFieldUnitSection(RootElement parent
) {
675 FieldUnitGeneralDetailSection fielUnitGeneralDetailSection
= formFactory
.createFieldUnitGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FieldUnitGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
677 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
679 GatheringEventDetailSection gatheringEventDetailSection
= formFactory
.createGatheringEventDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(GatheringEventDetailSection
.class, getInput().getClass().getCanonicalName()));
681 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
683 FieldUnitDetailSection fieldUnitDetailSection
= formFactory
.createFieldUnitDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FieldUnitDetailSection
.class, getInput().getClass().getCanonicalName()));
685 addPart(fielUnitGeneralDetailSection
);
686 addPart(gatheringEventDetailSection
);
687 addPart(fieldUnitDetailSection
);
689 if(PreferencesUtil
.isDeterminationOnlyForFieldUnits()){
690 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
691 DeterminationDetailSection determinationDetailSection
= formFactory
.createDeterminationDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DeterminationDetailSection
.class, getInput().getClass().getCanonicalName()));
692 addPart(determinationDetailSection
);
696 private void createTissueSampleSection(RootElement parent
) {
697 TissueSampleGeneralDetailSection section
= formFactory
.createTissueSampleGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(TissueSampleGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
699 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
701 SampleDesignationDetailSection sampleDesignationDetailSection
= formFactory
.createSampleDesignationDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(SampleDesignationDetailSection
.class, getInput().getClass().getCanonicalName(), true));
704 addPart(sampleDesignationDetailSection
);
707 private void createDnaSampleSection(RootElement parent
) {
708 DnaSampleGeneralDetailSection section
= formFactory
.createDnaSampleGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DnaSampleGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
710 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
712 DnaSamplePreparationPreservationSection preparationPreservationSection
= formFactory
.createDnaSamplePreparationPreservationSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DnaSamplePreparationPreservationSection
.class, getInput().getClass().getCanonicalName(), true));
714 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
716 DnaQualityDetailSection qualitySection
= formFactory
.createDnaQualityDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DnaQualityDetailSection
.class, getInput().getClass().getCanonicalName(), true));
718 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
720 SampleDesignationDetailSection sampleDesignationDetailSection
= formFactory
.createSampleDesignationDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(SampleDesignationDetailSection
.class, getInput().getClass().getCanonicalName(), true));
723 addPart(preparationPreservationSection
);
724 addPart(qualitySection
);
725 addPart(sampleDesignationDetailSection
);
728 private void createSequenceSection(RootElement parent
) {
729 SequenceGeneralDetailSection section
= formFactory
.createSequenceGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(SequenceGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
731 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
733 SequenceReferenceCollectionDetailSection referenceSection
= formFactory
.createSequenceReferenceCollectionDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(SequenceReferenceCollectionDetailSection
.class, getInput().getClass().getCanonicalName(), true));
735 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
737 SequenceContigFileCollectionDetailSection contigFileSection
= formFactory
.createSequenceContigFileCollectionDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(SequenceContigFileCollectionDetailSection
.class, getInput().getClass().getCanonicalName(), true));
741 addPart(referenceSection
);
742 addPart(contigFileSection
);
745 private void createSingleReadSection(RootElement parent
) {
746 SingleReadGeneralDetailSection section
= formFactory
.createSingleReadGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(SingleReadGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
749 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
751 SingleReadPherogramCollectionDetailSection pherogramSection
= formFactory
.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(SingleReadPherogramCollectionDetailSection
.class, getInput().getClass().getCanonicalName(), true));
752 addPart(pherogramSection
);
756 private void createMediaSpecimenSection(RootElement parent
) {
757 MediaSpecimenGeneralDetailSection generalSection
= formFactory
.createMediaSpecimenGeneralDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(MediaSpecimenGeneralDetailSection
.class, getInput().getClass().getCanonicalName(), true));
758 addPart(generalSection
);
760 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
762 RightsSection rightsSection
= formFactory
.createRightsSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(RightsSection
.class, getInput().getClass().getCanonicalName()));
763 addPart(rightsSection
);
767 private void createFeatureTreeSection(RootElement parent
) {
768 FeatureTreeDetailSection section
= formFactory
.createFeatureTreeDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FeatureTreeDetailSection
.class, getInput().getClass().getCanonicalName(), true));
773 private void createFeatureNodeSection(RootElement parent
) {
774 FeatureNodeDetailSection featureDistributionSection
= formFactory
.createFeatureNodeDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FeatureNodeDetailSection
.class, getInput().getClass().getCanonicalName(), true));
776 addPart(featureDistributionSection
);
779 private void createFeatureDistributionSection(RootElement parent
) {
780 FeatureDistributionDetailSection featureDistributionSection
= formFactory
.createFeatureDistributionDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(FeatureDistributionDetailSection
.class, getInput().getClass().getCanonicalName(), true));
782 addPart(featureDistributionSection
);
785 private void createCharacterNodeSection(RootElement parent
) {
786 CharacterNodeDetailSection featureDistributionSection
= formFactory
.createCharacterNodeDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(CharacterDetailSection
.class, getInput().getClass().getCanonicalName(), true));
787 addPart(featureDistributionSection
);
790 private void createCharacterSection(RootElement parent
) {
791 CharacterDetailSection featureDistributionSection
= formFactory
.createCharacterDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(CharacterDetailSection
.class, getInput().getClass().getCanonicalName(), true));
792 addPart(featureDistributionSection
);
795 private void createPolytomousKeyNodeSection(RootElement parent
) {
796 PolytomousKeyDetailSection polytomousKeyDetailSection
= formFactory
.createPolytomousKeyDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(PolytomousKeyDetailSection
.class, getInput().getClass().getCanonicalName()));
798 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
800 PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection
= formFactory
.createPolytomousKeyNodeDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(PolytomousKeyNodeDetailSection
.class, getInput().getClass().getCanonicalName(), true));
802 addPart(polytomousKeyDetailSection
);
803 addPart(polytomousKeyNodeDetailSection
);
807 private void createUseRecordSection(RootElement parent
) {
808 UseRecordDetailSection descriptionUseRecordSection
= formFactory
.createUseRecordDetailSection(getConversationHolder(), parent
, this,StoreUtil
.getSectionStyle(UseRecordDetailSection
.class, getInput().getClass().getCanonicalName(), true));
810 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
812 addPart(descriptionUseRecordSection
);
817 private void createUserSection(RootElement parent
) {
818 UserDetailSection userDetailSection
= formFactory
.createUserDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(UserDetailSection
.class, getInput().getClass().getCanonicalName(), true));
820 GroupsByUserDetailSection groupByUserDetailSection
= formFactory
.createGroupsByUserDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(GroupsByUserDetailSection
.class, getInput().getClass().getCanonicalName(), true));
822 addPart(userDetailSection
);
823 addPart(groupByUserDetailSection
);
826 private void createMisappliedNameSection(RootElement parent
) {
827 TaxonRelationshipDetailSection taxonRelationshipDetailSection
= formFactory
.createTaxonRelationshipDetailSection(getConversationHolder(), parent
, this,
828 StoreUtil
.getSectionStyle(TaxonRelationshipDetailSection
.class, getInput().getClass().getCanonicalName(), true));
829 addPart(taxonRelationshipDetailSection
);
831 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
834 NonViralNameDetailSection nonViralNameSection
= formFactory
835 .createNonViralNameDetailSection(getConversationHolder(), parent
, this, true,
836 StoreUtil
.getSectionStyle(NonViralNameDetailSection
.class, getInput().getClass().getCanonicalName(), true));
837 addPart(nonViralNameSection
);
839 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
841 NomenclaturalReferenceDetailSection referenceDetailSection
= formFactory
.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent
, this,
842 StoreUtil
.getSectionStyle(NomenclaturalReferenceDetailSection
.class, getInput().getClass().getCanonicalName(), true));
843 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
844 addPart(referenceDetailSection
);
847 NomenclaturalStatusSection nomenclaturalStatusSection
= formFactory
.createNomenclaturalStatusSection(getConversationHolder(), parent
,
848 StoreUtil
.getSectionStyle(NomenclaturalStatusSection
.class, getInput().getClass().getCanonicalName(), true));
849 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
850 addPart(nomenclaturalStatusSection
);
852 ProtologueSection protologSection
= formFactory
.createProtologueSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(ProtologueSection
.class, getInput().getClass().getCanonicalName()));
853 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
854 addPart(protologSection
);
856 TypeDesignationSection typeDesignationSection
= formFactory
.createTypeDesignationSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(TypeDesignationSection
.class, getInput().getClass().getCanonicalName()));
857 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
858 addPart(typeDesignationSection
);
860 NameRelationshipDetailSection nameRelationshipSection
= formFactory
.createNameRelationshipDetailSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(NameRelationshipDetailSection
.class, getInput().getClass().getCanonicalName()));
861 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
862 addPart(nameRelationshipSection
);
866 private void createTaxonRelationshipSection(RootElement parent
) {
867 TaxonRelationshipDetailSection taxonRelationshipDetailSection
= formFactory
.createTaxonRelationshipDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(TaxonRelationshipDetailSection
.class, getInput().getClass().getCanonicalName(), true));
869 ReferencedEntityDetailSection referencedEntityBaseDetailSection
= formFactory
.createReferencedEntityDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(ReferencedEntityDetailSection
.class, getInput().getClass().getCanonicalName(), true));
870 addPart(taxonRelationshipDetailSection
);
871 addPart(referencedEntityBaseDetailSection
);
873 private void createTermVocabularySection(RootElement parent
) {
874 TermVocabularyDetailSection termVocabularyDetailSection
= formFactory
.createTermVocabularyDetailSection(getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(TermVocabularyDetailSection
.class, getInput().getClass().getCanonicalName(), true));
875 addPart(termVocabularyDetailSection
);
878 private void createDefinedTermSection(RootElement parent
) {
879 DefinedTermDetailSection definedTermDetailSection
= formFactory
.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent
, this, StoreUtil
.getSectionStyle(DefinedTermDetailSection
.class, getInput().getClass().getCanonicalName(), true));
880 addPart(definedTermDetailSection
);
881 TermMediaSection termMediaSection
= formFactory
.createTermMediaSection(getConversationHolder(), parent
, StoreUtil
.getSectionStyle(DefinedTermDetailSection
.class, getInput().getClass().getCanonicalName(), true));
882 addPart(termMediaSection
);
886 public void update(CdmDataChangeMap arg0
) {
891 private void updateView(@UIEventTopic(WorkbenchEventConstants
.REFRESH_DETAILS
)boolean refresh
){