X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/8475fe50d60fb00da3b96f020085f02876da939f..b30beda380d3ea4af4fe54c592f6d633b2d0af2f:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java index 219e158b6..420fcbef8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java @@ -15,30 +15,28 @@ import java.util.Set; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.TreeNode; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.ExpandableComposite; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; -import eu.etaxonomy.cdm.api.service.ITermService; +import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse; import eu.etaxonomy.cdm.model.agent.Person; import eu.etaxonomy.cdm.model.agent.Team; import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; import eu.etaxonomy.cdm.model.common.DefinedTermBase; import eu.etaxonomy.cdm.model.common.Group; import eu.etaxonomy.cdm.model.common.Marker; -import eu.etaxonomy.cdm.model.common.MarkerType; import eu.etaxonomy.cdm.model.common.TermVocabulary; import eu.etaxonomy.cdm.model.common.User; import eu.etaxonomy.cdm.model.description.CategoricalData; import eu.etaxonomy.cdm.model.description.DescriptionBase; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; -import eu.etaxonomy.cdm.model.description.PolytomousKey; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; import eu.etaxonomy.cdm.model.description.SpecimenDescription; import eu.etaxonomy.cdm.model.media.Media; -import eu.etaxonomy.cdm.model.molecular.Amplification; import eu.etaxonomy.cdm.model.molecular.DnaSample; import eu.etaxonomy.cdm.model.molecular.Sequence; import eu.etaxonomy.cdm.model.molecular.SingleRead; @@ -50,20 +48,21 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; -import eu.etaxonomy.taxeditor.editor.UsageTermCollection; +import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.model.AbstractUtility; import eu.etaxonomy.taxeditor.model.FeatureNodeContainer; +import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart; +import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship; import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; -import eu.etaxonomy.taxeditor.store.CdmStore; +import eu.etaxonomy.taxeditor.store.UsageTermCollection; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.RootElement; import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection; import eu.etaxonomy.taxeditor.ui.section.agent.TeamDetailSection; import eu.etaxonomy.taxeditor.ui.section.agent.TeamOrPersonBaseDetailSection; import eu.etaxonomy.taxeditor.ui.section.common.ReferencedEntityDetailSection; -import eu.etaxonomy.taxeditor.ui.section.description.DescribedSpecimenSection; import eu.etaxonomy.taxeditor.ui.section.description.DescriptionDetailSection; import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementDetailSection; import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementMediaSection; @@ -78,7 +77,6 @@ import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection; import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection; import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection; -import eu.etaxonomy.taxeditor.ui.section.key.TaxonomicScopeSection; import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection; import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection; import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection; @@ -91,26 +89,23 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection; import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenDeterminationDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection; +import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection; +import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection; +import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSamplePreparationPreservationSection; +import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceContigFileCollectionDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceGeneralDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SequenceReferenceCollectionDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadGeneralDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.media.LivingPlantPhotoGeneralDetailSection; import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection; -import eu.etaxonomy.taxeditor.ui.section.occurrence.media.SpecimenScanGeneralDetailSection; import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection; import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection; +import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection; import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection; import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailSection; import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailSection; @@ -135,18 +130,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart; public class DetailsViewer extends AbstractCdmDataViewer { private ISelection selection; - - /** - *

- * Constructor for DetailsViewer. - *

- * - * @param parent - * a {@link org.eclipse.swt.widgets.Composite} object. - * @param viewPart - * a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} - * object. - */ + public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) { super(parent, viewPart); } @@ -156,22 +140,21 @@ public class DetailsViewer extends AbstractCdmDataViewer { // editor // and not derived unit facade objects, - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java - * .lang.Object) - */ @Override public void setInput(Object input) { + if(input instanceof TreeNode){ + input = ((TreeNode) input).getValue(); + } + if(input instanceof GbifResponse){ + input = ((GbifResponse) input).getDerivedUnitFacade(); + } if (input.getClass().equals(DerivedUnit.class)) { DerivedUnit derivedUnit = (DerivedUnit)input; try { input = DerivedUnitFacade.NewInstance(derivedUnit, PreferencesUtil.getDerivedUnitConfigurator()); } catch (DerivedUnitFacadeNotSupportedException e) { - AbstractUtility.error(getClass(), e); +// 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 } } else if(input instanceof FieldUnit){ @@ -198,11 +181,7 @@ public class DetailsViewer extends AbstractCdmDataViewer { // END HACK TO MAKE THE DERIVED UNIT FACADE WORK - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.Viewer#refresh() - */ + /** {@inheritDoc} */ @Override protected void showParts() { @@ -214,7 +193,12 @@ public class DetailsViewer extends AbstractCdmDataViewer { destroySections(); if (input instanceof TaxonBase) { - createTaxonSections(rootElement); + if(((TaxonBase) input).getName()==null){ + createEmptySection(rootElement); + } + else{ + createTaxonSections(rootElement); + } } else if (input instanceof NonViralName) { createNameSections(rootElement); @@ -237,16 +221,15 @@ public class DetailsViewer extends AbstractCdmDataViewer { createSpecimenDescriptionSection(rootElement); } else{ - Set descriptionMarkers = ((DescriptionBase) input).getMarkers(); - MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find( - UsageTermCollection.uuidUseMarkerType); + Set descriptionMarkers = ((DescriptionBase) input).getMarkers(); + Boolean isUseDescription = false; for (Marker marker : descriptionMarkers) { - if (marker.getMarkerType().equals(useMarkertype)) { + if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) { isUseDescription = true; } } - if (((DescriptionBase) input).isImageGallery()) { + if (((DescriptionBase) input).isImageGallery()) { createImageGallerySection(rootElement); } else if (isUseDescription) { @@ -258,11 +241,10 @@ public class DetailsViewer extends AbstractCdmDataViewer { } } else if (input instanceof DescriptionElementBase) { Set descriptionMarkers = ((DescriptionElementBase) input).getInDescription().getMarkers(); - MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find( - UsageTermCollection.uuidUseMarkerType); + Boolean isUseDescription = false; for (Marker marker : descriptionMarkers) { - if (marker.getMarkerType().equals(useMarkertype)) { + if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) { isUseDescription = true; } } @@ -278,34 +260,40 @@ public class DetailsViewer extends AbstractCdmDataViewer { } else if (input instanceof DerivedUnitFacade) { if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){ - createFieldUnitSection(rootElement); + if(((DerivedUnitFacade) input).innerFieldUnit()==null){ + MessagingUtils.error(DetailsViewer.class, "FieldUnit of facade is null", null); + } + else{ + createFieldUnitSection(rootElement); + } } else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){ - createDerivedUnitBaseElementSection(rootElement); + if(((DerivedUnitFacade) input).innerDerivedUnit()==null){ + MessagingUtils.error(DetailsViewer.class, "DerivedUnit of facade is null", null); + } + else{ + createDerivedUnitBaseElementSection(rootElement); + } } else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){ - createTissueSampleSection(rootElement); - } - else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.StillImage){ - createSpecimenScanSection(rootElement); - } - else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.StillImage){ - createLivingPlantPhotoSection(rootElement); - } - else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.StillImage){ - createMediaSpecimenSection(rootElement); + //TissueSample should only be created by using it's own class + //in future using only one class with different SpecimenOrObservationTypes is desired +// createTissueSampleSection(rootElement); } else{ createDerivedUnitBaseElementSection(rootElement); } } else if (input instanceof DnaSample){ - createDnaSampleSection(rootElement); + DnaSample dnaSample = (DnaSample)input; + if(dnaSample.getRecordBasis()==SpecimenOrObservationType.TissueSample){ + createTissueSampleSection(rootElement); + } + else if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){ + createDnaSampleSection(rootElement); + } } else if (input instanceof MediaSpecimen){ createMediaSpecimenSection(rootElement); } - else if(input instanceof Amplification){ - createAmplificationSection(rootElement); - } else if(input instanceof Sequence){ createSequenceSection(rootElement); } @@ -315,10 +303,7 @@ public class DetailsViewer extends AbstractCdmDataViewer { else if (input instanceof FeatureNodeContainer) { createFeatureDistributionSection(rootElement); - } else if (input instanceof PolytomousKey) { - //createPolytomousKeySection(rootElement); - - } else if ((input instanceof PolytomousKeyNode) || (input instanceof PolytomousKeyRelationship)) { + }else if ((input instanceof PolytomousKeyNode) || (input instanceof PolytomousKeyRelationship)) { createPolytomousKeyNodeSection(rootElement); } else if (input instanceof User) { createUserSection(rootElement); @@ -331,16 +316,13 @@ public class DetailsViewer extends AbstractCdmDataViewer { } else if (input instanceof DefinedTermBase) { createDefinedTermSection(rootElement); } - if(managedForm.getParts().length==0) { + else { createEmptySection(rootElement); } layout(); } - /** - * @param rootElement - */ private void createEmptySection(RootElement parent) { destroySections(); @@ -349,9 +331,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(emptySection); } - /** - * @param rootElement - */ private void createGroupSection(RootElement parent) { destroySections(); @@ -364,138 +343,127 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(grantedAuthorityDetailSection); } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.Viewer#getSelection() - */ /** {@inheritDoc} */ @Override public ISelection getSelection() { return selection; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers - * .ISelection, boolean) - */ /** {@inheritDoc} */ @Override public void setSelection(ISelection selection, boolean reveal) { this.selection = selection; - SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection); - fireSelectionChanged(selectionChangedEvent); + if(this.selection!=null){ + SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection); + fireSelectionChanged(selectionChangedEvent); + } } - /** - * createTaxonSections(RootElement parent) - * - * @param parent - */ private void createTaxonSections(RootElement parent) { destroySections(); - TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE - | ExpandableComposite.EXPANDED); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); + ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this, + ExpandableComposite.EXPANDED | ExpandableComposite.EXPANDED); + if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){ + TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(taxonBaseDetailSection); + }else{ + if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON)){ + TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + + addPart(taxonBaseDetailSection); + } + } + NonViralNameDetailSection nonViralNameSection = formFactory + .createNonViralNameDetailSection(getConversationHolder(), parent, this, true, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + 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))){ + NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(referenceDetailSection); + + } + 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))){ + NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(nomenclaturalStatusSection); + } + if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL) ){ + 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))){ + ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(protologSection); + } + + 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))){ + TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(typeDesignationSection); + } + + 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))){ + NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(nameRelationshipSection); + } + } - ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this, ExpandableComposite.EXPANDED); + addPart(parsingMessagesSection); - addPart(taxonBaseDetailSection); addPart(nonViralNameSection); - addPart(nomenclaturalStatusSection); - addPart(protologSection); - addPart(referenceDetailSection); - addPart(typeDesignationSection); - addPart(nameRelationshipSection); - addPart(parsingMessagesSection); + } - /** - * createNameSections - * - * @param parent - */ private void createNameSections(RootElement parent) { destroySections(); - NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - + NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection( + getConversationHolder(), parent, this, false, ExpandableComposite.TWISTIE + | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - + NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - + NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); addPart(nonViralNameSection); addPart(nomenclaturalStatusSection); - addPart(protologSection); addPart(referenceDetailSection); - addPart(typeDesignationSection); - addPart(nameRelationshipSection); +//TODO RL + if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){ + ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + + TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + + NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + addPart(protologSection); + addPart(typeDesignationSection); + addPart(nameRelationshipSection); + } } - /** - * createReferenceSections - * - * @param parent - */ private void createReferenceSections(RootElement parent) { destroySections(); - ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(getConversationHolder(), parent, this, + ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); addPart(referenceDetailSection); } - /** - * createTeamOrPersonBaseDetailSection - * - * @param parent - */ private void createTeamOrPersonBaseDetailSection(RootElement parent) { destroySections(); TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = formFactory.createTeamOrPersonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); @@ -503,11 +471,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(teamOrPersonBaseDetailSection); } - /** - * createTeamDetailSection - * - * @param parent - */ private void createTeamDetailSection(RootElement parent) { destroySections(); TeamDetailSection teamDetailSection = formFactory.createTeamDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); @@ -515,22 +478,12 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(teamDetailSection); } - /** - * createPersonDetailSection - * - * @param parent - */ private void createPersonDetailSection(RootElement parent) { destroySections(); PersonDetailSection personDetailSection = formFactory.createPersonDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); addPart(personDetailSection); } - /** - * createDescriptionElementSection - * - * @param parent - */ private void createDescriptionElementSection(RootElement parent) { destroySections(); @@ -551,11 +504,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(descriptionElementMediaSection); } - /** - * createDescriptionSection - * - * @param parent - */ private void createDescriptionSection(RootElement parent) { destroySections(); DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); @@ -566,9 +514,9 @@ public class DetailsViewer extends AbstractCdmDataViewer { formFactory.createHorizontalSeparator(parent, SWT.BORDER); - DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); +// DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); +// +// formFactory.createHorizontalSeparator(parent, SWT.BORDER); // DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection) formFactory // .createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE, @@ -582,27 +530,17 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(descriptionDetailSection); addPart(naturalLanguageSection); - addPart(describedSpecimenSection); +// addPart(describedSpecimenSection); // addPart(descriptionSourceSection); addPart(scopeSection); } - /** - * createDescriptionSection - * - * @param parent - */ private void createSpecimenDescriptionSection(RootElement parent) { destroySections(); DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); addPart(descriptionDetailSection); } - /** - * Creates the use Description section - * - * @param parent - */ private void createUseDescriptionSection(RootElement parent) { destroySections(); DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); @@ -618,10 +556,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { } - - /** - * @param rootElement - */ private void createImageGallerySection(RootElement parent) { destroySections(); DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); @@ -629,12 +563,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(descriptionDetailSection); } - /** - * createMediaElementSection - * - * @param parent - */ - private void createMediaElementSection(RootElement parent) { destroySections(); @@ -643,39 +571,51 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(mediaDetailSection); } - /** - * createDerivedUnitBaseElementSection - * - * @param parent - */ private void createDerivedUnitBaseElementSection(RootElement parent) { destroySections(); DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539 + if(!(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart)){ + derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true); + } + addPart(derivedUnitGeneralDetailSection); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); + DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + addPart(derivedUnitBaseDetailSection); - DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + //for editors working with facades + if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart){ + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + addPart(gatheringEventDetailSection); - addPart(derivedUnitGeneralDetailSection); - addPart(gatheringEventDetailSection); - addPart(fieldUnitDetailSection); - addPart(derivedUnitBaseDetailSection); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + addPart(fieldUnitDetailSection); + } + else{ + if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS)){ + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + addPart(taxonAssociationDetailSection); + } + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + addPart(identifierDetailSection); + } if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){ formFactory.createHorizontalSeparator(parent, SWT.BORDER); DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); addPart(determinationDetailSection); } + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + addPart(derivedUnitTypeDesignationSection); } @@ -703,30 +643,17 @@ public class DetailsViewer extends AbstractCdmDataViewer { } } - private void createPreservedSpecimenSpecimenSection(RootElement parent) { + private void createTissueSampleSection(RootElement parent) { destroySections(); - PreservedSpecimenGeneralDetailSection section = formFactory.createPreservedSpecimenGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - PreservedSpecimenDetailSection derivedUnitBaseDetailSection = formFactory.createPreservedSpecimenDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - PreservedSpecimenDeterminationDetailSection determinationDetailSection = formFactory.createPreservedSpecimenDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - addPart(section); - addPart(derivedUnitBaseDetailSection); - addPart(determinationDetailSection); - } - - private void createTissueSampleSection(RootElement parent) { - destroySections(); - - TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); addPart(section); + addPart(sampleDesignationDetailSection); } private void createDnaSampleSection(RootElement parent) { @@ -736,33 +663,20 @@ public class DetailsViewer extends AbstractCdmDataViewer { formFactory.createHorizontalSeparator(parent, SWT.BORDER); - DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - addPart(section); - addPart(qualitySection); - } - - private void createAmplificationSection(RootElement parent) { - destroySections(); - AmplificationGeneralDetailSection generalSection = formFactory.createAmplificationGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + DnaSamplePreparationPreservationSection preparationPreservationSection = formFactory.createDnaSamplePreparationPreservationSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - AmplificationPrimerDetailSection primerSection = formFactory.createAmplificationPrimerDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); + DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); formFactory.createHorizontalSeparator(parent, SWT.BORDER); - AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - addPart(generalSection); - addPart(primerSection); - addPart(cloningSection); - addPart(gelPhotoSection); + addPart(section); + addPart(preparationPreservationSection); + addPart(qualitySection); + addPart(sampleDesignationDetailSection); } private void createSequenceSection(RootElement parent) { @@ -788,41 +702,28 @@ public class DetailsViewer extends AbstractCdmDataViewer { destroySections(); SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + addPart(section); formFactory.createHorizontalSeparator(parent, SWT.BORDER); SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - addPart(section); addPart(pherogramSection); - } - private void createSpecimenScanSection(RootElement parent) { - destroySections(); - SpecimenScanGeneralDetailSection section = formFactory.createSpecimenScanGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - addPart(section); - } - - private void createLivingPlantPhotoSection(RootElement parent) { - destroySections(); - LivingPlantPhotoGeneralDetailSection section = formFactory.createLivingPlantPhotoGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - - addPart(section); } private void createMediaSpecimenSection(RootElement parent) { destroySections(); - MediaSpecimenGeneralDetailSection section = formFactory.createMediaSpecimenGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - addPart(section); - } + MediaSpecimenGeneralDetailSection generalSection = formFactory.createMediaSpecimenGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + addPart(generalSection); + + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + addPart(rightsSection); + } - /** - * @param rootElement - */ private void createFeatureDistributionSection(RootElement parent) { destroySections(); @@ -831,35 +732,20 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(featureDistributionSection); } - /** - * createPolytomousKeyNodeSection - * - * @param parent - */ private void createPolytomousKeyNodeSection(RootElement parent) { destroySections(); - PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.COMPACT); + PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE); formFactory.createHorizontalSeparator(parent, SWT.BORDER); PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = formFactory.createPolytomousKeyNodeDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - TaxonomicScopeSection taxonomicScopeSection = formFactory.createTaxonomicScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.COMPACT); - addPart(polytomousKeyDetailSection); addPart(polytomousKeyNodeDetailSection); - addPart(taxonomicScopeSection); } - /** - * create the UseRecordSection - * - * @param parent - */ private void createUseRecordSection(RootElement parent) { destroySections(); @@ -872,11 +758,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { } - /** - * createUserSection - * - * @param parent - */ private void createUserSection(RootElement parent) { destroySections(); @@ -888,11 +769,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(groupByUserDetailSection); } - /** - * createTaxonRelationshipSection - * - * @param parent - */ private void createTaxonRelationshipSection(RootElement parent) { destroySections(); @@ -903,9 +779,6 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(referencedEntityBaseDetailSection); } - /** - * @param rootElement - */ private void createTermVocabularySection(RootElement parent) { destroySections(); @@ -913,16 +786,16 @@ public class DetailsViewer extends AbstractCdmDataViewer { addPart(termVocabularyDetailSection); } - /** - * createDefinedTermSection - * - * @param parent - */ private void createDefinedTermSection(RootElement parent) { destroySections(); - AbstractFormSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + AbstractFormSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); addPart(definedTermDetailSection); } + @Override + public void update(CdmDataChangeMap arg0) { + + } + }