--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.ui;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.AbstractOperation;\r
+import org.eclipse.core.commands.operations.IOperationHistory;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.jface.util.IPropertyChangeListener;\r
+import org.eclipse.jface.util.PropertyChangeEvent;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.actions.cdm.AddBasionymToGroupAction;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.TaxonCompositeFactory;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 04.06.2008\r
+ * @version 1.0\r
+ */\r
+public class AddBasionymCompositeAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(AddBasionymCompositeAction.class);\r
+\r
+ private static String text = "Set as basionym for homotypical group";\r
+ private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
+\r
+ private TaxonNameBase basionymName;\r
+\r
+ private NameComposite composite;\r
+ private TaxonCompositeFactory taxonCompositeFactory;\r
+ private IUndoableOperation operation;\r
+\r
+ private AddBasionymCompositeAction() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+\r
+ public AddBasionymCompositeAction(NameComposite composite,\r
+ TaxonCompositeFactory taxonCompositeFactory) {\r
+ this();\r
+\r
+ if (composite.getData() instanceof Synonym) {\r
+ Synonym synonym = (Synonym) composite.getData();\r
+ this.basionymName = synonym.getName();\r
+ } else {\r
+ throw new IllegalArgumentException(\r
+ "This action requires a composite with a Synonym in its data field.");\r
+ }\r
+\r
+ this.composite = composite;\r
+ this.taxonCompositeFactory = taxonCompositeFactory;\r
+\r
+ operation = new AddBasionymOperation();\r
+ }\r
+\r
+ public void run() {\r
+ IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
+ IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+ operation.addContext(undoContext);\r
+ try {\r
+ operationHistory.execute(operation, null, null);\r
+ operationHistory.add(operation);\r
+ } catch (ExecutionException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ class AddBasionymOperation extends AbstractOperation {\r
+\r
+ public AddBasionymOperation() {\r
+ super("'" + text + "'");\r
+ }\r
+\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // Delete synonym from taxon\r
+ Action action = new AddBasionymToGroupAction(basionymName);\r
+ action.addPropertyChangeListener(new IPropertyChangeListener() {\r
+ @Override\r
+ public void propertyChange(PropertyChangeEvent event) {\r
+ if (event.getProperty().equals(\r
+ ITaxEditorConstants.BASIONYM)) {\r
+ Taxon taxon = taxonCompositeFactory.getTaxon(); \r
+ if (CdmUtil.isNameHomotypic(basionymName, taxon)) {\r
+ composite.setIcon(NameComposite.HOMOTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
+ } else {\r
+ composite.setIcon(NameComposite.HETEROTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
+ }\r
+ setEnabled(false);\r
+ }\r
+ }\r
+ }); \r
+ action.run();\r
+ \r
+ return Status.OK_STATUS;\r
+ }\r
+\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return Status.OK_STATUS;\r
+ }\r
+\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return Status.OK_STATUS;\r
+ }\r
+ }\r
+}\r
import org.eclipse.jface.action.Action;\r
import org.eclipse.jface.resource.ImageDescriptor;\r
import org.eclipse.jface.util.IPropertyChangeListener;\r
+import org.eclipse.jface.util.PropertyChangeEvent;\r
\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
this.composite = composite;\r
this.taxonCompositeFactory = taxonCompositeFactory;\r
\r
- operation = new UndoTest();\r
+ operation = new MisappliedNameOperation();\r
\r
}\r
\r
}\r
}\r
\r
- class UndoTest extends AbstractOperation {\r
+ class MisappliedNameOperation extends AbstractOperation {\r
\r
- public UndoTest() {\r
+ public MisappliedNameOperation() {\r
super("'" + text + "'");\r
}\r
\r
synonym, taxon);\r
misappliedNameCdmAction\r
.addPropertyChangeListener(new IPropertyChangeListener() {\r
-\r
@Override\r
public void propertyChange(\r
org.eclipse.jface.util.PropertyChangeEvent event) {\r
.addPropertyChangeListener(new IPropertyChangeListener() {\r
\r
@Override\r
- public void propertyChange(\r
- org.eclipse.jface.util.PropertyChangeEvent event) {\r
+ public void propertyChange(PropertyChangeEvent event) {\r
if (event.getProperty().equals(\r
ITaxEditorConstants.SYNONYM)) {\r
synonym = (Synonym) event.getNewValue();\r
misappliedNameCdmUndoAction.run();\r
return Status.OK_STATUS;\r
}\r
-\r
}\r
}
\ No newline at end of file
\r
package eu.etaxonomy.taxeditor.actions.ui;\r
\r
+import java.util.List;\r
+\r
import org.apache.log4j.Logger;\r
import org.eclipse.jface.action.Action;\r
import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.jface.viewers.StructuredSelection;\r
import org.eclipse.jface.wizard.Wizard;\r
import org.eclipse.jface.wizard.WizardDialog;\r
\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.cdm.model.occurrence.Collection;\r
import eu.etaxonomy.taxeditor.UiUtil;\r
-import eu.etaxonomy.taxeditor.model.CdmUtil;\r
import eu.etaxonomy.taxeditor.view.propertysheetsupport.namerelationswizard.NameRelationWizard;\r
+import eu.etaxonomy.taxeditor.view.propertysheetsupport.namerelationswizard.NameRelationWizardModel;\r
\r
/**\r
* @author p.ciardelli\r
private ImageDescriptor image = null;\r
public static final String ID = "eu.etaxonomy.taxeditor.actions.opennamerelationswizard"; //$NON-NLS-1$\r
\r
- private TaxonNameBase name;\r
+ private NameRelationWizardModel relationModel;\r
\r
private OpenNameRelationWizardAction() {\r
super(text);\r
\r
public OpenNameRelationWizardAction(TaxonNameBase name) {\r
this();\r
+ \r
+ this.relationModel = new NameRelationWizardModel(name);\r
+ }\r
+\r
+ public OpenNameRelationWizardAction(TaxonNameBase name,\r
+ List<NameRelationship> nameRelationsList) {\r
+ this(name);\r
+ \r
+ this.relationModel.setNameRelationsList(nameRelationsList); \r
+ }\r
\r
- this.name = name;\r
-// if (composite.getData() instanceof Synonym) {\r
-// this.synonym = (Synonym) composite.getData();\r
-// } else {\r
-// throw new IllegalArgumentException(\r
-// "This action requires a composite with a Synonym in its data field.");\r
-// }\r
+ public OpenNameRelationWizardAction(TaxonNameBase name,\r
+ NameRelationship relation) {\r
+ this(name);\r
+ \r
+ this.relationModel.setRelation(relation);\r
}\r
\r
public void run() {\r
- if (name == null) {\r
- name = CdmUtil.parseFullReference("Pepsicum testicum", null, null);\r
+ if (relationModel.getBaseName() == null) {\r
+ return;\r
}\r
- NameRelationWizard wizard = new NameRelationWizard(name);\r
+ \r
+ Wizard wizard = new NameRelationWizard(relationModel);\r
\r
// Instantiates the wizard container with the wizard and opens it\r
WizardDialog dialog = new WizardDialog(UiUtil.getShell(), wizard);\r