X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/803c3b8ef00c29cddb3fae02617592ba5836aacd..159e7b25a0744c59fb1d4fbde01d1c4f03b84c33:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java index d4763904c..3862e0bf9 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java @@ -14,99 +14,187 @@ import org.eclipse.swt.SWT; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; -import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType; import eu.etaxonomy.taxeditor.event.EventUtility; +import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants; import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer; -import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.taxeditor.store.StoreUtil; +import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement; +import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; 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.SelectionArbitrator; import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; +import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSingleSourceElement; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; /** * @author n.hoffmann * @date Dec 1, 2011 - * */ -public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement { +public class TaxonRelationshipDetailElement extends AbstractSingleSourceElement {//TODO: use AbstractSingleSourcedElement private TermComboElement combo_taxonRelationshipType; + private MisappliedRelationshipComboElement combo_misappliedRelationshipType; private EntitySelectionElement selection_relatedTaxon; private CheckboxElement checkBoxDoubtful; protected ToggleableTextElement toggleable_cache; - private EntitySelectionElement secReference; +// private EntitySelectionElement secReference; private EntitySelectionElement sensuReference; private TextWithLabelElement text_sensu_microreference; - - private TextWithLabelElement text_secundum_microreference; +// private TextWithLabelElement text_secundum_microreference; private TextWithLabelElement text_appendedPhrase; + private CheckboxElement checkbox_published; + private Taxon taxon; private TaxonDetailSection taxonElement; - public TaxonRelationshipDetailElement(CdmFormFactory formFactory, + public TaxonDetailSection getTaxonElement() { + return taxonElement; + } + + public TaxonRelationshipDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) { + super(formFactory, formElement); } @Override - protected void createControls(ICdmFormElement formElement, + public void createControls(ICdmFormElement formElement, TaxonRelationship entity, int style) { - if (!entity.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){ - combo_taxonRelationshipType = formFactory.createTermComboElement( - TaxonRelationshipTypeInverseContainer.class, - formElement, "Relationship Type", - getTaxonRelationshipTypeInverseContainer(), style); - combo_taxonRelationshipType.setEnabled(false); - selection_relatedTaxon = formFactory.createSelectionElement( - Taxon.class, //getConversationHolder(), - formElement, "Related Taxon", getRelatedTaxon(), - EntitySelectionElement.SELECTABLE, style); - checkBoxDoubtful = formFactory.createCheckbox(formElement, "Relation is doubtful", entity.isDoubtful(), style); - }else{ + if ((entity.getType().isAnyMisappliedName()) ){ + taxon = entity.getFromTaxon(); - toggleable_cache = formFactory.createToggleableTextField(formElement, - "Title Cache", taxon.getTitleCache(), - taxon.isProtectedTitleCache(), style); - - text_appendedPhrase = formFactory.createTextWithLabelElement( - formElement, "Appended Phrase", taxon.getAppendedPhrase(), - SWT.WRAP); - - - taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, style); - taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); - addControl(taxonElement); - addElement(taxonElement); - - sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), - formElement, "Sensu", - taxon.getSec(), EntitySelectionElement.ALL, - style); - - text_sensu_microreference = formFactory.createTextWithLabelElement( - formElement, "Detail", - taxon.getSecMicroReference(),null, - SWT.WRAP); - - secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), - formElement, "Misappl. Sec.", - entity.getCitation(), EntitySelectionElement.ALL, - style); - - text_secundum_microreference = formFactory.createTextWithLabelElement( - formElement, "Detail", - entity.getCitationMicroReference(),null, - SWT.WRAP); + + taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName())); + taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + addControl(taxonElement); + addElement(taxonElement); + String label; + if (entity.getType().isAnyMisappliedName()) { + label = "Sensu"; + }else{ + label = "Sec."; + } + text_appendedPhrase = formFactory.createTextWithLabelElement( + this, "Appended Phrase", taxon.getAppendedPhrase(), + SWT.WRAP); + + checkbox_published = formFactory.createCheckbox(this, + "Published", taxon.isPublish(), style); + sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), + formElement, label, + taxon.getSec(), EntitySelectionElement.ALL, + style); + + text_sensu_microreference = formFactory.createTextWithLabelElement( + formElement, "Detail", + taxon.getSecMicroReference(),null, + SWT.WRAP); + + if (entity.getType().isAnyMisappliedName()) { + label = "Misapplication Type"; + }else{ + label = "Relationship Type"; + } + combo_misappliedRelationshipType = formFactory.createMisappliedRelationshipComboElement(formElement, label, + entity.getType(), style); + + combo_misappliedRelationshipType.setEnabled(true); + + + if (entity.getType().isAnyMisappliedName()) { + label = "Misappl. Sec."; + }else{ + label = "Err. Sec."; + } + + /*TODO: use super.createControls(); to create single source element + secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), + formElement, label, + entity.getCitation(), EntitySelectionElement.ALL, + style); + + text_secundum_microreference = formFactory.createTextWithLabelElement( + formElement, "Detail", + entity.getCitationMicroReference(),null, + SWT.WRAP); + */ + super.createControls(formElement, entity, style); + setSourceLabel(label); + + if (entity.getType().isAnyMisappliedName()) { + label = "Misapplication Doubtful"; + }else{ + label = "Relationship Doubtful"; + } + checkBoxDoubtful = formFactory.createCheckbox(formElement, label, entity.isDoubtful(), style); + }else if (entity.getType().isAnySynonym() ){ + taxon = entity.getFromTaxon(); + + taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName())); + taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + addControl(taxonElement); + addElement(taxonElement); + + + text_appendedPhrase = formFactory.createTextWithLabelElement( + this, "Appended Phrase", taxon.getAppendedPhrase(), + SWT.WRAP); + + checkbox_published = formFactory.createCheckbox(this, + "Published", taxon.isPublish(), style); + /* + * secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), + + formElement, "Syn. Sec.", + entity.getCitation(), EntitySelectionElement.ALL, + style); + + text_secundum_microreference = formFactory.createTextWithLabelElement( + formElement, "Detail", + entity.getCitationMicroReference(),null, + SWT.WRAP); + */ + + super.createControls(formElement, entity, style); + setSourceLabel("Syn. Sec."); + sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(), + formElement, "Sec", + taxon.getSec(), EntitySelectionElement.ALL, + style); + + text_sensu_microreference = formFactory.createTextWithLabelElement( + formElement, "Detail", + taxon.getSecMicroReference(),null, + SWT.WRAP); + + combo_misappliedRelationshipType = formFactory.createMisappliedRelationshipComboElement(formElement, "Synonym Type", + entity.getType(), style); + + combo_misappliedRelationshipType.setEnabled(true); + checkBoxDoubtful = formFactory.createCheckbox(formElement, "Syn. Doubtful", entity.isDoubtful(), style); + + }else{ + combo_taxonRelationshipType = formFactory.createTermComboElement( + TaxonRelationshipTypeInverseContainer.class, + formElement, "Relationship Type", + getTaxonRelationshipTypeInverseContainer(), style); + + combo_taxonRelationshipType.setEnabled(false); + selection_relatedTaxon = formFactory.createSelectionElement( + Taxon.class, //getConversationHolder(), + formElement, "Related Taxon", getRelatedTaxon(), + EntitySelectionElement.SELECTABLE, style); + checkBoxDoubtful = formFactory.createCheckbox(formElement, "Relation Doubtful", entity.isDoubtful(), style); } } @@ -124,16 +212,26 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement