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<TaxonRelationship> {
+public class TaxonRelationshipDetailElement extends AbstractSingleSourceElement<TaxonRelationship> {//TODO: use AbstractSingleSourcedElement
private TermComboElement<TaxonRelationshipTypeInverseContainer> combo_taxonRelationshipType;
+ private MisappliedRelationshipComboElement combo_misappliedRelationshipType;
private EntitySelectionElement<Taxon> selection_relatedTaxon;
private CheckboxElement checkBoxDoubtful;
protected ToggleableTextElement toggleable_cache;
- private EntitySelectionElement<Reference> secReference;
+// private EntitySelectionElement<Reference> secReference;
private EntitySelectionElement<Reference> 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);
}
}
@Override
public void handleEvent(Object eventSource) {
- if (getEntity().getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
- if (eventSource == secReference) {
+ if (getEntity().getType().isAnyMisappliedName() || getEntity().getType().isAnySynonym()){
+ /* if (eventSource == secReference) {
getEntity().setCitation(secReference.getSelection());
} else if (eventSource == text_secundum_microreference) {
getEntity().setCitationMicroReference(text_secundum_microreference.getText());
- } else if (eventSource == text_sensu_microreference) {
+ } else
+ */
+ if (eventSource == text_sensu_microreference) {
taxon.setSecMicroReference(text_sensu_microreference.getText());
- }else if (eventSource == sensuReference) {
+ } else if (eventSource == sensuReference) {
taxon.setSec(sensuReference.getSelection());
- }
+ } else if (eventSource == combo_taxonRelationshipType ) {
+ getEntity().setType(combo_taxonRelationshipType.getSelection().getType());
+ } else if ( eventSource == combo_misappliedRelationshipType) {
+ getEntity().setType(combo_misappliedRelationshipType.getSelection());
+ } else if (eventSource == text_appendedPhrase) {
+ taxon.setAppendedPhrase(text_appendedPhrase.getText());
+ } else if (eventSource == checkbox_published) {
+ taxon.setPublish(checkbox_published.getSelection());
+ }
}else{
if (eventSource == selection_relatedTaxon){
boolean inverse = getTaxonRelationshipTypeInverseContainer().isInverse();
}else{
getEntity().setToTaxon(relatedTaxon);
}
- }else if(eventSource==checkBoxDoubtful){
- getEntity().setDoubtful(checkBoxDoubtful.getSelection());
}
}
+ if(eventSource==checkBoxDoubtful){
+ getEntity().setDoubtful(checkBoxDoubtful.getSelection());
+ }
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, getEntity().getToTaxon());
+ taxonElement.updateTitle();
}
@Override
}
@Override
protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
- if (getEntity().getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
+ if (getEntity().getType().isAnyMisappliedName() || getEntity().getType().isAnySynonym()){
String title = taxon.generateTitle();
taxon.setTitleCache(title);
super.handleTitleCacheRelevantChange(event);
@Override
public void refresh(){
updateContent();
-
}
@Override
if (taxonElement!=null) {
taxonElement.setEntity(entity.getFromTaxon());
}
-
}
-}
+ @Override
+ public SelectionArbitrator getSelectionArbitrator() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
\ No newline at end of file