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;
/**
* @created Jun 1, 2010
* @version 1.0
*/
-public class NameRelationshipWizardPage extends AbstractEntityCollectionElementWizardPage implements
- IPropertyChangeListener {
+public class NameRelationshipWizardPage extends AbstractEntityCollectionElementWizardPage {
- private EntitySelectionElement<TaxonNameBase> selection_relatedTo;
+ private EntitySelectionElement<TaxonName> selection_relatedTo;
- private TermComboElement<NameRelationshipType> 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;
/**
* <p>
* 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);
}
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);
}
* @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} */
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);
}