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.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
-import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+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;
/**
* @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,
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()) || entity.getType().equals(TaxonRelationshipType.PRO_PARTE_MISAPPLIED_NAME_FOR())) ){
+ if ((entity.getType().isAnyMisappliedName()) ){
taxon = entity.getFromTaxon();
- taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, style);
+ taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
addControl(taxonElement);
addElement(taxonElement);
- combo_misappliedRelationshipType = formFactory.createMisappliedRelationshipComboElement(formElement, "Relationship Type",
- entity.getType(), style);
-
- combo_misappliedRelationshipType.setEnabled(true);
+ 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, "Sensu",
+ formElement, label,
taxon.getSec(), EntitySelectionElement.ALL,
style);
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, "Misappl. Sec.",
+ formElement, label,
entity.getCitation(), EntitySelectionElement.ALL,
style);
formElement, "Detail",
entity.getCitationMicroReference(),null,
SWT.WRAP);
- checkBoxDoubtful = formFactory.createCheckbox(formElement, "Misapplication Doubtful", entity.isDoubtful(), style);
- }else if ((entity.getType().equals(TaxonRelationshipType.PRO_PARTE_SYNONYM_FOR()) || entity.getType().equals(TaxonRelationshipType.PARTIAL_SYNONYM_FOR())) ){
+ */
+ 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, style);
+ taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
addControl(taxonElement);
addElement(taxonElement);
- combo_misappliedRelationshipType = formFactory.createMisappliedRelationshipComboElement(formElement, "Relationship Type",
- entity.getType(), style);
- combo_misappliedRelationshipType.setEnabled(true);
- sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
- formElement, "Sensu",
- taxon.getSec(), EntitySelectionElement.ALL,
- style);
-
- text_sensu_microreference = formFactory.createTextWithLabelElement(
- formElement, "Detail",
- taxon.getSecMicroReference(),null,
+ text_appendedPhrase = formFactory.createTextWithLabelElement(
+ this, "Appended Phrase", taxon.getAppendedPhrase(),
SWT.WRAP);
- secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
- formElement, "Syn Sec.",
+ checkbox_published = formFactory.createCheckbox(this,
+ "Published", taxon.isPublish(), style);
+ /*
+ * secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+
+ formElement, "Syn. Sec.",
entity.getCitation(), EntitySelectionElement.ALL,
style);
formElement, "Detail",
entity.getCitationMicroReference(),null,
SWT.WRAP);
- checkBoxDoubtful = formFactory.createCheckbox(formElement, "PP Doubtful", entity.isDoubtful(), style);
+ */
+
+ 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(
@Override
public void handleEvent(Object eventSource) {
- if (getEntity().getType().isAnyMisappliedName()){
- 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) {
taxon.setSec(sensuReference.getSelection());
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){
}
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 SelectionArbitrator getSelectionArbitrator() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}