- implemented SynonymRelationship detail section for the DetailsView of Synonyms...
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 29 Jan 2014 07:58:59 +0000 (07:58 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 29 Jan 2014 07:58:59 +0000 (07:58 +0000)
.gitattributes
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java

index a2d7d681f2f8d45bb24d1b4164c625ea097dbe5c..1d9402e02ad58af7161e0b9849a923a0595f1e61 100644 (file)
@@ -1450,6 +1450,10 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/nam
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizard.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractDeterminationEventDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractEventDetailElement.java -text
index 1266da91080a2d7e95a4b27bbc20efef8a8c9650..9d9c710f8f0e0780127ba0fb0f3a6d383e4db04b 100644 (file)
@@ -91,6 +91,7 @@ import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
@@ -189,6 +190,8 @@ import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement;
 import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.ui.section.name.SpecimenTypeDesignationElement;
+import eu.etaxonomy.taxeditor.ui.section.name.SynonymRelationshipDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.name.SynonymRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreasDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectionDetailElement;
@@ -2175,11 +2178,11 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-//    public SynonymRelationshipDetailSection createSynonymRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-//        SynonymRelationshipDetailSection section = new SynonymRelationshipDetailSection(this, conversation, parentElement, style);
-//        addAndAdaptSection(parentElement, section);
-//        return section;
-//    }
+    public SynonymRelationshipDetailSection createSynonymRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        SynonymRelationshipDetailSection section = new SynonymRelationshipDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
 
     public ProtologueSection createProtologueSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         ProtologueSection section = new ProtologueSection(this, conversation, parentElement, style);
@@ -2413,9 +2416,9 @@ public class CdmFormFactory extends FormToolkit {
         } else if (entity instanceof NameRelationship) {
             element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener,
                     style);
-//        } else if (entity instanceof SynonymRelationship) {
-//            element = new SynonymRelationshipDetailElement(this, parentElement, (SynonymRelationship) entity, removeListener,
-//                    style);
+        } else if (entity instanceof SynonymRelationship) {
+            element = new SynonymRelationshipDetailElement(this, parentElement, (SynonymRelationship) entity, removeListener,
+                    style);
         } else if (entity instanceof SpecimenTypeDesignation) {
             element = new SpecimenTypeDesignationElement(this, parentElement, (SpecimenTypeDesignation) entity,
                     removeListener, style);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailElement.java
new file mode 100644 (file)
index 0000000..59ee529
--- /dev/null
@@ -0,0 +1,114 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.name;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @date 28.01.2014
+ *
+ */
+public class SynonymRelationshipDetailElement extends AbstractReferencedEntityElement<SynonymRelationship>{
+
+    private TextWithLabelElement text_ruleConsidered;
+    private LabelElement label;
+    private EntitySelectionElement selection_toName;
+    private TermComboElement<SynonymRelationshipType> combo_relationshipType;
+    private CheckboxElement checkProParte;
+    private CheckboxElement checkPartial;
+
+    /**
+     * <p>Constructor for NameRelationshipDetailElement.</p>
+     *
+     * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
+     * @param entity a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
+     * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
+     * @param style a int.
+     */
+    public SynonymRelationshipDetailElement(CdmFormFactory cdmFormFactory,
+            AbstractFormSection formElement,
+            SynonymRelationship entity, SelectionListener removeListener, int style) {
+        super(cdmFormFactory, formElement, entity, removeListener, style);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        label = formFactory.createLabel(element, null);
+        checkProParte = formFactory.createCheckbox(element, "Pro Parte Synonym", null, style);
+        checkPartial= formFactory.createCheckbox(element, "Partial Synonym", null, style);
+        super.createControls(element, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEntity(SynonymRelationship entity) {
+        String text = entity.getSynonym().getTitleCache() + " is " + entity.getType().getLabel() + " " + entity.getAcceptedTaxon().getTitleCache();
+
+        label.setText(text);
+
+        checkPartial.setSelection(entity.isPartial());
+        checkProParte.setSelection(entity.isProParte());
+
+        super.setEntity(entity);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource == combo_relationshipType){
+            getEntity().setType(combo_relationshipType.getSelection());
+        }
+        else if(eventSource == selection_toName){
+            AbstractUtility.error(getClass(), "No API call available.", null);
+        }
+        else if(eventSource == checkPartial){
+            getEntity().setPartial(checkPartial.getSelection());
+        }
+        else if(eventSource == checkProParte){
+            getEntity().setProParte(checkProParte.getSelection());
+        }
+        else if(eventSource == selection_reference){
+            getEntity().setCitation(selection_reference.getSelection());
+        }
+        else if(eventSource == text_referenceDetail){
+            getEntity().setCitationMicroReference(text_referenceDetail.getText());
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackground(Color color) {
+        if(label != null) {
+            label.setBackground(color);
+        }
+        super.setBackground(color);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailSection.java
new file mode 100644 (file)
index 0000000..5b0d212
--- /dev/null
@@ -0,0 +1,92 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.name;
+
+import java.util.Collection;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date 27.01.2014
+ *
+ */
+public class SynonymRelationshipDetailSection extends AbstractEntityCollectionSection<Synonym, SynonymRelationship> {
+
+    /**
+     * <p>Constructor for NameRelationshipDetailSection.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param style a int.
+     */
+    public SynonymRelationshipDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, conversation, parentElement, "Synonym Relationship", style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void addElement(SynonymRelationship element) {
+        // nothing
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public SynonymRelationship createNewElement() {
+
+        SynonymRelationshipWizard wizard = new SynonymRelationshipWizard(this);
+        WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard);
+        int status = dialog.open();
+
+        if(status == IStatus.OK) {
+            return wizard.getSynonymRelationship();
+        }
+
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public Collection<SynonymRelationship> getCollection(Synonym entity) {
+        Collection<SynonymRelationship> allSynonymRelationships = entity.getSynonymRelations();
+        return allSynonymRelationships;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getEmptyString() {
+        return "No synonym relationships yet.";
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected String getTooltipString() {
+        return "Add a new synonym relationship from this name.";
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void removeElement(SynonymRelationship element) {
+        getEntity().removeSynonymRelation(element);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizard.java
new file mode 100644 (file)
index 0000000..cdde3e4
--- /dev/null
@@ -0,0 +1,80 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.name;
+
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+
+/**
+ * @author pplitzner
+ * @date 27.01.2014
+ *
+ */
+public class SynonymRelationshipWizard  extends Wizard implements IConversationEnabled{
+
+    private static SynonymRelationshipDetailSection callingSection;
+
+    /**
+     * <p>Constructor for NameRelationshipWizard.</p>
+     *
+     * @param callingSection a {@link eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection} object.
+     */
+    public SynonymRelationshipWizard(SynonymRelationshipDetailSection callingSection) {
+        SynonymRelationshipWizard.callingSection = callingSection;
+    }
+
+    private SynonymRelationshipWizardPage page;
+
+    /** {@inheritDoc} */
+    @Override
+    public void addPages() {
+        page = new SynonymRelationshipWizardPage(callingSection);
+
+        addPage(page);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#performFinish()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public boolean performFinish() {
+        return page.isPageComplete();
+    }
+
+
+
+    /**
+     * <p>getNameRelationship</p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
+     */
+    public SynonymRelationship getSynonymRelationship() {
+        return page.getSynonymRelationship();
+    }
+
+    /**
+     * <p>getConversationHolder</p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     */
+    @Override
+    public ConversationHolder getConversationHolder() {
+        return callingSection.getConversationHolder();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void update(CdmDataChangeMap changeEvents) {}
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizardPage.java
new file mode 100644 (file)
index 0000000..5c6af4a
--- /dev/null
@@ -0,0 +1,136 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.section.name;
+
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.RootElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @date 27.01.2014
+ *
+ */
+public class SynonymRelationshipWizardPage extends WizardPage implements IPropertyChangeListener {
+
+    private final CdmFormFactory formFactory;
+
+    private EntitySelectionElement<Taxon> selection_relatedTo;
+
+    private TermComboElement<SynonymRelationshipType> combo_relationshipType;
+
+    private final Synonym entity;
+
+    private SynonymRelationshipType type;
+
+    private Taxon taxon;
+
+    private RootElement rootElement;
+
+    /**
+     * <p>
+     * Constructor for NameRelationshipWizardPage.
+     * </p>
+     *
+     * @param callingSection
+     *            a
+     *            {@link eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection}
+     *            object.
+     */
+    protected SynonymRelationshipWizardPage(
+            SynonymRelationshipDetailSection callingSection) {
+        super("SynonymRelationshipWizardPage");
+        setTitle("New Synonym Relationship");
+        setDescription(callingSection.getEntity().getTitleCache());
+        this.entity = callingSection.getEntity();
+        this.formFactory = callingSection.getFormFactory();
+
+        formFactory.addPropertyChangeListener(this);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
+     * .Composite)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void createControl(Composite parent) {
+        this.setPageComplete(false);
+
+        Composite control = formFactory.createComposite(parent);
+
+        control.setLayout(LayoutConstants.LAYOUT(2, false));
+
+        rootElement = new RootElement(formFactory, control);
+
+        combo_relationshipType = formFactory.createTermComboElement(SynonymRelationshipType.class,
+                rootElement, "Synonym Relationship Type", null, SWT.NULL);
+
+        selection_relatedTo = formFactory
+                .createSelectionElement(Taxon.class,
+                        ((SynonymRelationshipWizard) getWizard())
+                        .getConversationHolder(), rootElement,
+                        "Related to", null, EntitySelectionElement.ALL,
+                        SWT.NULL);
+
+        setControl(control);
+    }
+
+    /**
+     * <p>
+     * getNameRelationship
+     * </p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
+     */
+    public SynonymRelationship getSynonymRelationship() {
+        return taxon.addSynonym(entity, combo_relationshipType.getSelection());
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void propertyChange(PropertyChangeEvent event) {
+        if (event == null) {
+            return;
+        }
+        Object eventSource = event.getSource();
+        if (eventSource == combo_relationshipType) {
+            type = combo_relationshipType.getSelection();
+        } else if (eventSource == selection_relatedTo) {
+            taxon = selection_relatedTo.getEntity();
+        }
+
+        boolean complete = type != null && taxon != null;
+        setPageComplete(complete);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void dispose() {
+        rootElement.removeElements();
+        formFactory.removePropertyChangeListener(this);
+        super.dispose();
+    }
+}
index efa16b00a9abd747c192706b8ada0cb5e7d304b9..2a9a3f84cc7b3e49a3e0e4ef027bc816f5be5d06 100644 (file)
@@ -14,15 +14,19 @@ import java.util.Arrays;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.name.SynonymRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -50,6 +54,8 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
 
        private CheckboxElement checkbox_published;
 
+       private SynonymRelationshipDetailSection sectionSynonymRelationship;
+
        /**
         * <p>
         * Constructor for TaxonBaseDetailElement.
@@ -101,6 +107,12 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
                        checkbox_published = formFactory.createCheckbox(formElement,
                                        "Taxon is published", ((Taxon) entity).isPublish(), style);
                }
+
+               if(entity instanceof Synonym){
+                   sectionSynonymRelationship = formFactory.createSynonymRelationshipDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
+                   sectionSynonymRelationship.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+                   sectionSynonymRelationship.setEntity((Synonym) entity);
+               }
        }
 
        /** {@inheritDoc} */
index e0a5d92eb6cfed6cc58c454d04f405c70ccd7cc7..27849d6989f474bcb6615ea050015c99d4297c40 100644 (file)
@@ -13,13 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.taxon;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
  * <p>TaxonBaseDetailSection class.</p>
@@ -28,9 +26,7 @@ import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
  * @created Nov 4, 2009
  * @version 1.0
  */
-public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase> implements ITaxonBaseDetailSection{
-
-       private TaxonBase taxonBase;
+public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase> {
 
        /**
         * <p>Constructor for TaxonBaseDetailSection.</p>
@@ -45,32 +41,12 @@ public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase>
                super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.ITaxonDetailSection#setTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void setTaxonBase(TaxonBase entity) {
-               this.taxonBase = entity;
-               TaxonBase taxonBase = (TaxonBase) HibernateProxyHelper.deproxy(entity);
-               setEntity(taxonBase);
-       }
-
        /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return getEntity() != null ? getEntity().getClass().getSimpleName() : "TaxonBase";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.ITaxonDetailSection#getTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase)
-        */
-       @Override
-       public TaxonBase getTaxonBase() {
-               return taxonBase;
-       }
-
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
         */
index c429d84ddd3f08a0cb9eec14c89c9c1ce84ee01a..326cbe3eb1d2308ba38db7dcd9e76b24933e2f39 100644 (file)
@@ -208,7 +208,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         destroySections();
         if (input instanceof TaxonBase) {
-            createTaxonSections(rootElement, (TaxonBase) input);
+            createTaxonSections(rootElement);
 
         } else if (input instanceof NonViralName) {
             createNameSections(rootElement);
@@ -280,10 +280,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
                 createTissueSampleSection(rootElement);
             }
-            //            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.DnaSample){
-            //                createDnaSampleSection(rootElement);
-            //            }
-            //FIXME: change to specific SpecimenOrObservationType
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.StillImage){
                 createSpecimenScanSection(rootElement);
             }
@@ -301,21 +297,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         } else if (input instanceof MediaSpecimen){
             createMediaSpecimenSection(rootElement);
         }
-//        else if (input instanceof SpecimenOrObservationBase){
-//            SpecimenOrObservationType recordBasis = ((SpecimenOrObservationBase<?>) input).getRecordBasis();
-//            if(recordBasis==SpecimenOrObservationType.PreservedSpecimen){
-//                createPreservedSpecimenSpecimenSection(rootElement);
-//            }
-//            else if(recordBasis==SpecimenOrObservationType.FieldUnit){
-//                createFieldUnitSection(rootElement);
-//            }
-//            else if(recordBasis==SpecimenOrObservationType.DnaSample){
-//                createDnaSampleSection(rootElement);
-//            }
-//            else if(recordBasis.isKindOf(SpecimenOrObservationType.Media)){
-//                createMediaSpecimenSection(rootElement);
-//            }
-//        }
         else if(input instanceof Amplification){
             createAmplificationSection(rootElement);
         }
@@ -408,7 +389,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
      *
      * @param parent
      */
-    private void createTaxonSections(RootElement parent, TaxonBase taxonBase) {
+    private void createTaxonSections(RootElement parent) {
         destroySections();
 
         TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
@@ -440,13 +421,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-//        SynonymRelationshipDetailSection synonymRelationshipSection = null;
-//        if(taxonBase instanceof Synonym){
-//            synonymRelationshipSection = formFactory.createSynonymRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-//
-//            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-//        }
-
         ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this, ExpandableComposite.EXPANDED);
 
         addPart(taxonBaseDetailSection);
@@ -456,9 +430,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         addPart(referenceDetailSection);
         addPart(typeDesignationSection);
         addPart(nameRelationshipSection);
-//        if(synonymRelationshipSection!=null){
-//            addPart(synonymRelationshipSection);
-//        }
         addPart(parsingMessagesSection);
     }