3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.editor
.view
.detail
;
13 import org
.eclipse
.jface
.viewers
.ISelection
;
14 import org
.eclipse
.jface
.viewers
.SelectionChangedEvent
;
15 import org
.eclipse
.swt
.SWT
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.ui
.forms
.widgets
.Section
;
19 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacade
;
20 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeNotSupportedException
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
24 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionBase
;
25 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
26 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
27 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKeyNode
;
28 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
29 import eu
.etaxonomy
.cdm
.model
.name
.NonViralName
;
30 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnitBase
;
31 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
32 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
33 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
34 import eu
.etaxonomy
.taxeditor
.editor
.view
.AbstractCdmDataViewer
;
35 import eu
.etaxonomy
.taxeditor
.forms
.CdmFormFactory
.DetailType
;
36 import eu
.etaxonomy
.taxeditor
.forms
.CdmFormFactory
.EntityDetailType
;
37 import eu
.etaxonomy
.taxeditor
.forms
.RootElement
;
38 import eu
.etaxonomy
.taxeditor
.model
.AbstractCdmViewPart
;
39 import eu
.etaxonomy
.taxeditor
.model
.FeatureNodeContainer
;
40 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
41 import eu
.etaxonomy
.taxeditor
.section
.agent
.PersonDetailSection
;
42 import eu
.etaxonomy
.taxeditor
.section
.agent
.TeamDetailSection
;
43 import eu
.etaxonomy
.taxeditor
.section
.agent
.TeamOrPersonBaseDetailSection
;
44 import eu
.etaxonomy
.taxeditor
.section
.description
.DescribedSpecimenSection
;
45 import eu
.etaxonomy
.taxeditor
.section
.description
.DescriptionDetailSection
;
46 import eu
.etaxonomy
.taxeditor
.section
.description
.DescriptionElementDetailSection
;
47 import eu
.etaxonomy
.taxeditor
.section
.description
.DescriptionElementMediaSection
;
48 import eu
.etaxonomy
.taxeditor
.section
.description
.DescriptionElementSourceSection
;
49 import eu
.etaxonomy
.taxeditor
.section
.description
.DescriptionSourceSection
;
50 import eu
.etaxonomy
.taxeditor
.section
.description
.MediaDetailsSection
;
51 import eu
.etaxonomy
.taxeditor
.section
.description
.NaturalLanguageSection
;
52 import eu
.etaxonomy
.taxeditor
.section
.description
.ScopeSection
;
53 import eu
.etaxonomy
.taxeditor
.section
.feature
.FeatureDistributionDetailSection
;
54 import eu
.etaxonomy
.taxeditor
.section
.key
.GeographicalScopeDetailSection
;
55 import eu
.etaxonomy
.taxeditor
.section
.key
.PolytomousKeyDetailSection
;
56 import eu
.etaxonomy
.taxeditor
.section
.key
.PolytomousKeyNodeDetailSection
;
57 import eu
.etaxonomy
.taxeditor
.section
.key
.ScopeRestrictionSection
;
58 import eu
.etaxonomy
.taxeditor
.section
.name
.HybridDetailSection
;
59 import eu
.etaxonomy
.taxeditor
.section
.name
.NameRelationshipDetailSection
;
60 import eu
.etaxonomy
.taxeditor
.section
.name
.NomenclaturalStatusSection
;
61 import eu
.etaxonomy
.taxeditor
.section
.name
.NonViralNameDetailSection
;
62 import eu
.etaxonomy
.taxeditor
.section
.name
.ProtologueSection
;
63 import eu
.etaxonomy
.taxeditor
.section
.name
.TypeDesignationSection
;
64 import eu
.etaxonomy
.taxeditor
.section
.occurrence
.DerivedUnitBaseDetailSection
;
65 import eu
.etaxonomy
.taxeditor
.section
.occurrence
.FieldObservationDetailSection
;
66 import eu
.etaxonomy
.taxeditor
.section
.occurrence
.GatheringEventDetailSection
;
67 import eu
.etaxonomy
.taxeditor
.section
.occurrence
.GeneralDetailSection
;
68 import eu
.etaxonomy
.taxeditor
.section
.reference
.NomenclaturalReferenceDetailSection
;
69 import eu
.etaxonomy
.taxeditor
.section
.reference
.ReferenceDetailSection
;
70 import eu
.etaxonomy
.taxeditor
.section
.taxon
.ParsingMessagesSection
;
71 import eu
.etaxonomy
.taxeditor
.section
.taxon
.TaxonBaseDetailSection
;
74 * <p>DetailsViewer class.</p>
77 * @created Feb 12, 2010
80 public class DetailsViewer
extends AbstractCdmDataViewer
{
82 private enum VIEW_PART
{
99 private VIEW_PART currentViewPart
;
101 private ISelection selection
;
104 * <p>Constructor for DetailsViewer.</p>
106 * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
107 * @param viewPart a {@link eu.etaxonomy.taxeditor.model.AbstractCdmViewPart} object.
109 public DetailsViewer(Composite parent
, AbstractCdmViewPart viewPart
) {
110 super(parent
, viewPart
);
113 // START HACK TO MAKE THE DERIVED UNIT FACADE WORKING
114 // since we are getting implementations of DerivedUnitBase from the bulk editor
115 // and not derived unit base objects,
118 * @see eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java.lang.Object)
121 public void setInput(Object input
) {
122 if(input
instanceof DerivedUnitBase
){
124 input
= DerivedUnitFacade
.NewInstance((DerivedUnitBase
) input
, PreferencesUtil
.getDerivedUnitConfigurator());
125 } catch (DerivedUnitFacadeNotSupportedException e
) {
126 EditorUtil
.error(getClass(), e
);
129 super.setInput(input
);
133 protected void markViewPartDirty(){
134 if(getInput() instanceof DerivedUnitFacade
){
135 getViewPart().changed(((DerivedUnitFacade
) getInput()).innerDerivedUnit());
138 super.markViewPartDirty();
141 // END HACK TO MAKE THE DERIVED UNIT FACADE WORKING
144 * @see org.eclipse.jface.viewers.Viewer#refresh()
148 protected void showParts() {
149 if(getInput() instanceof TaxonBase
){
150 if(currentViewPart
!= VIEW_PART
.TAXON
){
151 createTaxonSections(rootElement
);
152 currentViewPart
= VIEW_PART
.TAXON
;
154 // preserve a pointer to the AbstractNameComposite
155 // MultiPageTaxonEditor editor = EditorUtil.getActiveMultiPageTaxonEditor();
156 // if(editor != null){
157 // TaxonNameEditor page = (TaxonNameEditor) editor.getPage(Page.NAME);
158 // for(AbstractGroupedContainer container : page.getGroupedContainers()){
159 // if(container.getData() == getInput()){
160 // sourceContainer = container;
165 }else if(getInput() instanceof NonViralName
){
166 if(currentViewPart
!= VIEW_PART
.NAME
){
167 createNameSections(rootElement
);
168 currentViewPart
= VIEW_PART
.NAME
;
170 }else if(getInput() instanceof Reference
){
171 if(currentViewPart
!= VIEW_PART
.REFEERENCE
){
172 createReferenceSections(rootElement
);
173 currentViewPart
= VIEW_PART
.REFEERENCE
;
175 }else if(getInput() instanceof Team
){
176 if(currentViewPart
!= VIEW_PART
.TEAM
){
177 createTeamDetailSection(rootElement
);
178 currentViewPart
= VIEW_PART
.TEAM
;
180 }else if(getInput() instanceof Person
){
181 if(currentViewPart
!= VIEW_PART
.PERSON
){
182 createPersonDetailSection(rootElement
);
183 currentViewPart
= VIEW_PART
.PERSON
;
185 }else if(getInput() instanceof TeamOrPersonBase
){
187 if(currentViewPart
!= VIEW_PART
.TEAM_OR_PERSON_BASE
){
188 createTeamOrPersonBaseDetailSection(rootElement
);
189 currentViewPart
= VIEW_PART
.TEAM_OR_PERSON_BASE
;
191 }else if(getInput() instanceof DescriptionBase
){
192 if(currentViewPart
!= VIEW_PART
.DESCRIPTION
){
193 createDescriptionSection(rootElement
);
194 currentViewPart
= VIEW_PART
.DESCRIPTION
;
196 }else if(getInput() instanceof DescriptionElementBase
){
197 if(currentViewPart
!= VIEW_PART
.DESCRIPTION_ELEMENT
){
198 createDescriptionElementSection(rootElement
);
199 currentViewPart
= VIEW_PART
.DESCRIPTION_ELEMENT
;
201 }else if(getInput() instanceof Media
){
202 if(currentViewPart
!= VIEW_PART
.MEDIA
){
203 createMediaElementSection(rootElement
);
204 currentViewPart
= VIEW_PART
.MEDIA
;
206 }else if(getInput() instanceof DerivedUnitFacade
){
207 if(currentViewPart
!= VIEW_PART
.DERIVED_UNIT
){
208 createDerivedUnitBaseElementSection(rootElement
);
209 currentViewPart
= VIEW_PART
.DERIVED_UNIT
;
211 }else if(getInput() instanceof FeatureNodeContainer
) {
212 if(currentViewPart
!= VIEW_PART
.FEATURE_DISTRIBUTION
){
213 createFeatureDistributionSection(rootElement
);
214 currentViewPart
= VIEW_PART
.FEATURE_DISTRIBUTION
;
216 }else if(getInput() instanceof PolytomousKey
) {
217 if(currentViewPart
!= VIEW_PART
.POLYTOMOUS_KEY
){
218 createPolytomousKeySection(rootElement
);
219 currentViewPart
= VIEW_PART
.POLYTOMOUS_KEY
;
221 }else if(getInput() instanceof PolytomousKeyNode
) {
222 if(currentViewPart
!= VIEW_PART
.POLYTOMOUS_KEY_NODE
){
223 createPolytomousKeyNodeSection(rootElement
);
224 currentViewPart
= VIEW_PART
.POLYTOMOUS_KEY_NODE
;
228 currentViewPart
= VIEW_PART
.EMPTY
;
235 * @see org.eclipse.jface.viewers.Viewer#getSelection()
239 public ISelection
getSelection() {
244 * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
248 public void setSelection(ISelection selection
, boolean reveal
) {
249 this.selection
= selection
;
250 SelectionChangedEvent selectionChangedEvent
= new SelectionChangedEvent(this, selection
);
251 fireSelectionChanged(selectionChangedEvent
);
255 private void createTaxonSections(RootElement parent
) {
258 TaxonBaseDetailSection taxonBaseDetailSection
= (TaxonBaseDetailSection
)
259 formFactory
.createCdmDetailSection(DetailType
.TAXONBASE
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
261 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
263 NonViralNameDetailSection nonViralNameSection
= (NonViralNameDetailSection
)
264 formFactory
.createCdmDetailSection(DetailType
.NONVIRALNAME
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
266 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
268 NomenclaturalReferenceDetailSection referenceDetailSection
= (NomenclaturalReferenceDetailSection
)
269 formFactory
.createCdmDetailSection(DetailType
.NOMENCLATURALREFERENCE
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
271 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
273 NomenclaturalStatusSection nomenclaturalStatusSection
= (NomenclaturalStatusSection
)
274 formFactory
.createEntityDetailSection(EntityDetailType
.NOMENCLATURALSTATUS
, getConversationHolder(), parent
, Section
.TWISTIE
);
276 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
278 ProtologueSection protologSection
= (ProtologueSection
)
279 formFactory
.createEntityDetailSection(EntityDetailType
.PROTOLOG
, getConversationHolder(), parent
, Section
.TWISTIE
);
281 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
283 TypeDesignationSection typeDesignationSection
= (TypeDesignationSection
)
284 formFactory
.createEntityDetailSection(EntityDetailType
.TYPEDESIGNATION
, getConversationHolder(), parent
, Section
.TWISTIE
);
286 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
288 NameRelationshipDetailSection nameRelationshipSection
= (NameRelationshipDetailSection
)
289 formFactory
.createEntityDetailSection(EntityDetailType
.NAME_RELATIONSHIP
, getConversationHolder(), parent
, Section
.TWISTIE
);
291 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
293 HybridDetailSection hybridDetailSection
= (HybridDetailSection
)
294 formFactory
.createCdmDetailSection(DetailType
.HYBRID
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
296 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
298 ParsingMessagesSection parsingMessagesSection
= (ParsingMessagesSection
)
299 formFactory
.createCdmDetailSection(DetailType
.PARSINGMESSAGE
, getConversationHolder(), parent
, this, Section
.EXPANDED
);
303 addPart(taxonBaseDetailSection
);
304 addPart(nonViralNameSection
);
305 addPart(nomenclaturalStatusSection
);
306 addPart(protologSection
);
307 addPart(referenceDetailSection
);
308 addPart(typeDesignationSection
);
309 addPart(nameRelationshipSection
);
310 addPart(hybridDetailSection
);
311 addPart(parsingMessagesSection
);
314 private void createNameSections(RootElement parent
) {
316 NonViralNameDetailSection nonViralNameSection
= (NonViralNameDetailSection
)
317 formFactory
.createCdmDetailSection(DetailType
.NONVIRALNAME
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
319 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
321 NomenclaturalReferenceDetailSection referenceDetailSection
= (NomenclaturalReferenceDetailSection
)
322 formFactory
.createCdmDetailSection(DetailType
.NOMENCLATURALREFERENCE
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
324 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
326 NomenclaturalStatusSection nomenclaturalStatusSection
= (NomenclaturalStatusSection
)
327 formFactory
.createEntityDetailSection(EntityDetailType
.NOMENCLATURALSTATUS
, getConversationHolder(), parent
, Section
.TWISTIE
);
329 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
331 ProtologueSection protologSection
= (ProtologueSection
)
332 formFactory
.createEntityDetailSection(EntityDetailType
.PROTOLOG
, getConversationHolder(), parent
, Section
.TWISTIE
);
334 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
336 TypeDesignationSection typeDesignationSection
= (TypeDesignationSection
)
337 formFactory
.createEntityDetailSection(EntityDetailType
.TYPEDESIGNATION
, getConversationHolder(), parent
, Section
.TWISTIE
);
339 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
341 NameRelationshipDetailSection nameRelationshipSection
= (NameRelationshipDetailSection
)
342 formFactory
.createEntityDetailSection(EntityDetailType
.NAME_RELATIONSHIP
, getConversationHolder(), parent
, Section
.TWISTIE
);
344 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
346 HybridDetailSection hybridDetailSection
= (HybridDetailSection
)
347 formFactory
.createCdmDetailSection(DetailType
.HYBRID
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
349 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
351 addPart(nonViralNameSection
);
352 addPart(nomenclaturalStatusSection
);
353 addPart(protologSection
);
354 addPart(referenceDetailSection
);
355 addPart(typeDesignationSection
);
356 addPart(nameRelationshipSection
);
357 addPart(hybridDetailSection
);
360 private void createReferenceSections(RootElement parent
) {
363 ReferenceDetailSection referenceDetailSection
= (ReferenceDetailSection
)
364 formFactory
.createCdmDetailSection(DetailType
.REFERENCEBASE
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
366 addPart(referenceDetailSection
);
369 private void createTeamOrPersonBaseDetailSection(RootElement parent
) {
371 TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection
= (TeamOrPersonBaseDetailSection
)
372 formFactory
.createCdmDetailSection(DetailType
.TEAMORPERSONBASE
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
374 addPart(teamOrPersonBaseDetailSection
);
377 private void createTeamDetailSection(RootElement parent
){
379 TeamDetailSection teamDetailSection
= (TeamDetailSection
)
380 formFactory
.createCdmDetailSection(DetailType
.TEAM
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
382 addPart(teamDetailSection
);
386 private void createPersonDetailSection(RootElement parent
) {
388 PersonDetailSection personDetailSection
= (PersonDetailSection
)
389 formFactory
.createCdmDetailSection(DetailType
.PERSON
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
390 addPart(personDetailSection
);
393 private void createDescriptionElementSection(RootElement parent
) {
396 DescriptionElementDetailSection descriptionElementDetailSection
= (DescriptionElementDetailSection
)
397 formFactory
.createCdmDetailSection(DetailType
.DESCRIPTIONELEMENT
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
399 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
401 DescriptionElementSourceSection descriptionElementSourceSection
= (DescriptionElementSourceSection
)
402 formFactory
.createEntityDetailSection(EntityDetailType
.DESCRIPTIONELEMENTSOURCE
, getConversationHolder(), parent
, Section
.TWISTIE
);
404 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
406 DescriptionElementMediaSection descriptionElementMediaSection
= (DescriptionElementMediaSection
)
407 formFactory
.createEntityDetailSection(EntityDetailType
.DESCRIPTIONELEMENTMEDIA
, getConversationHolder(), parent
, Section
.TWISTIE
);
409 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
411 addPart(descriptionElementDetailSection
);
412 addPart(descriptionElementSourceSection
);
413 addPart(descriptionElementMediaSection
);
416 private void createDescriptionSection(RootElement parent
) {
418 DescriptionDetailSection descriptionDetailSection
= (DescriptionDetailSection
)
419 formFactory
.createCdmDetailSection(DetailType
.DESCRIPTION
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
421 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
423 NaturalLanguageSection naturalLanguageSection
= (NaturalLanguageSection
)
424 formFactory
.createCdmDetailSection(DetailType
.NATURAL_LANGUAGE
, getConversationHolder(), parent
, this,Section
.TWISTIE
| Section
.EXPANDED
);
426 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
428 DescribedSpecimenSection describedSpecimenSection
= (DescribedSpecimenSection
)
429 formFactory
.createEntityDetailSection(EntityDetailType
.DESCRIBED_SPECIMEN
, getConversationHolder(), parent
, Section
.TWISTIE
);
431 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
433 DescriptionSourceSection descriptionSourceSection
= (DescriptionSourceSection
)
434 formFactory
.createEntityDetailSection(EntityDetailType
.DESCRIPTIONSOURCE
, getConversationHolder(), parent
, Section
.TWISTIE
);
436 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
438 ScopeSection scopeSection
= (ScopeSection
)
439 formFactory
.createEntityDetailSection(EntityDetailType
.SCOPE
, getConversationHolder(), parent
, Section
.TWISTIE
);
441 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
443 addPart(descriptionDetailSection
);
444 addPart(naturalLanguageSection
);
445 addPart(describedSpecimenSection
);
446 addPart(descriptionSourceSection
);
447 addPart(scopeSection
);
451 private void createMediaElementSection(RootElement parent
) {
453 MediaDetailsSection mediaDetailSection
= (MediaDetailsSection
)
454 formFactory
.createCdmDetailSection(DetailType
.MEDIA
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
456 addPart(mediaDetailSection
);
459 private void createDerivedUnitBaseElementSection(RootElement parent
){
462 GeneralDetailSection generalDetailSection
= (GeneralDetailSection
)
463 formFactory
.createCdmDetailSection(DetailType
.DERIVED_UNIT_GENERAL
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
465 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
467 GatheringEventDetailSection gatheringEventDetailSection
= (GatheringEventDetailSection
)
468 formFactory
.createCdmDetailSection(DetailType
.GATHERING_EVENT
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
470 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
472 FieldObservationDetailSection fieldObservationDetailSection
= (FieldObservationDetailSection
)
473 formFactory
.createCdmDetailSection(DetailType
.FIELD_OBSERVATION
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
475 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
477 DerivedUnitBaseDetailSection derivedUnitBaseDetailSection
= (DerivedUnitBaseDetailSection
)
478 formFactory
.createCdmDetailSection(DetailType
.DERIVED_UNIT
, getConversationHolder(), parent
, this, Section
.TWISTIE
);
480 addPart(generalDetailSection
);
481 addPart(gatheringEventDetailSection
);
482 addPart(fieldObservationDetailSection
);
483 addPart(derivedUnitBaseDetailSection
);
489 private void createFeatureDistributionSection(RootElement parent
) {
492 FeatureDistributionDetailSection featureDistributionSection
= (FeatureDistributionDetailSection
)
493 formFactory
.createCdmDetailSection(DetailType
.FEATURE_DISTRIBUTION
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
495 addPart(featureDistributionSection
);
500 private void createPolytomousKeySection(RootElement parent
) {
503 PolytomousKeyDetailSection polytomousKeyDetailSection
= (PolytomousKeyDetailSection
)
504 formFactory
.createCdmDetailSection(DetailType
.POLYTOMOUS_KEY
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
506 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
508 GeographicalScopeDetailSection geographicalScopeDetailSection
= (GeographicalScopeDetailSection
)
509 formFactory
.createEntityDetailSection(EntityDetailType
.GEOGRAPHICAL_SCOPE
, getConversationHolder(), parent
, Section
.TWISTIE
);
511 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
513 ScopeRestrictionSection scopeRestrictionSection
= (ScopeRestrictionSection
)
514 formFactory
.createEntityDetailSection(EntityDetailType
.SCOPE_RESTRICTION
, getConversationHolder(), parent
, Section
.TWISTIE
);
516 addPart(polytomousKeyDetailSection
);
517 addPart(geographicalScopeDetailSection
);
518 addPart(scopeRestrictionSection
);
521 private void createPolytomousKeyNodeSection(RootElement parent
) {
524 PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection
= (PolytomousKeyNodeDetailSection
)
525 formFactory
.createCdmDetailSection(DetailType
.POLYTOMOUS_KEY_NODE
, getConversationHolder(), parent
, this, Section
.TWISTIE
| Section
.EXPANDED
);
527 addPart(polytomousKeyNodeDetailSection
);