X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/c1c83a38d07bdc4286ce7abb8b30789d0c32e637..d58b8e3f77a8664b300c738c9678edb6024edf17:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java index 51de9ca99..e8729b142 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java @@ -9,17 +9,19 @@ package eu.etaxonomy.taxeditor.ui.section.name; -import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; -import eu.etaxonomy.cdm.model.common.TermType; +import eu.etaxonomy.cdm.model.common.RelationshipTermBase; import eu.etaxonomy.cdm.model.name.NameRelationship; import eu.etaxonomy.cdm.model.name.NameRelationshipType; -import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.cdm.model.name.TaxonName; +import eu.etaxonomy.cdm.model.term.TermRelationshipType; +import eu.etaxonomy.taxeditor.l10n.Messages; import eu.etaxonomy.taxeditor.ui.AbstractEntityCollectionElementWizardPage; -import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; /** @@ -31,18 +33,18 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; * @created Jun 1, 2010 * @version 1.0 */ -public class NameRelationshipWizardPage extends AbstractEntityCollectionElementWizardPage implements - IPropertyChangeListener { +public class NameRelationshipWizardPage extends AbstractEntityCollectionElementWizardPage { - private EntitySelectionElement selection_relatedTo; + private EntitySelectionElement selection_relatedTo; - private TermComboElement combo_relationshipType; + private RelationshipTypeCombo combo_relationshipType; - private final TaxonNameBase entity; + private final TaxonName entity; - private NameRelationshipType type; + private RelationshipTermBase type; - private TaxonNameBase toName; + private TaxonName relatedName; + boolean inverse; /** *

@@ -55,12 +57,12 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW * object. */ protected NameRelationshipWizardPage( - NameRelationshipDetailSection callingSection) { - super("NameRelationshipWizardPage"); - setTitle("New Name Relationship"); - setDescription(callingSection.getEntity().getTitleCache()); + NameRelationshipDetailSection callingSection, CdmFormFactory formFactory) { + super("NameRelationshipWizardPage", formFactory); //$NON-NLS-1$ + setTitle("New Name Relationship"); //$NON-NLS-1$ + //setDescription(callingSection.getEntity().getTitleCache()); + setDescription(Messages.NameRelationshipWizardPage_description); this.entity = callingSection.getEntity(); - this.formFactory = callingSection.getFormFactory(); formFactory.addPropertyChangeListener(this); } @@ -77,14 +79,13 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW public void createControl(Composite parent) { super.createControl(parent); - combo_relationshipType = formFactory.createDefinedTermComboElement(TermType.NameRelationshipType, - rootElement, "Name Relationship Type", null, SWT.NULL); + combo_relationshipType = formFactory.createNameRelationshipTypeCombo(rootElement, + entity.getNameCache(), SWT.NULL, false,null); + selection_relatedTo = formFactory - .createSelectionElement(TaxonNameBase.class, - ((NameRelationshipWizard) getWizard()) - .getConversationHolder(), rootElement, - "Related to",this.entity, EntitySelectionElement.ALL, + .createSelectionElement(TaxonName.class, rootElement, + "",this.entity, EntitySelectionElement.ALL, SWT.NULL, true); } @@ -97,7 +98,13 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW * @return a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object. */ public NameRelationship getNameRelationship() { - return entity.addRelationshipToName(toName, type, null, null, null); + NameRelationship rel; + if (inverse){ + rel = entity.addRelationshipFromName(relatedName, (NameRelationshipType)type, null, null, null, null); + }else{ + rel = entity.addRelationshipToName(relatedName, (NameRelationshipType)type, null, null, null, null); + } + return rel; } /** {@inheritDoc} */ @@ -107,13 +114,15 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW return; } Object eventSource = event.getSource(); - if (eventSource == combo_relationshipType) { - type = combo_relationshipType.getSelection(); + if (eventSource == combo_relationshipType && combo_relationshipType.getSelection() != null) { + type = combo_relationshipType.getSelection().getTerm(); + this.inverse = combo_relationshipType.getSelection().isInverse(); } else if (eventSource == selection_relatedTo) { - toName = selection_relatedTo.getEntity(); + relatedName = selection_relatedTo.getEntity(); + } - boolean complete = type != null && toName != null; + boolean complete = type != null && relatedName != null; setPageComplete(complete); }