Checkin before moving TaxonCompositeFactory methods into NameComposite.transform...
authorp.ciardelli <p.ciardelli@localhost>
Fri, 6 Jun 2008 13:32:37 +0000 (13:32 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Fri, 6 Jun 2008 13:32:37 +0000 (13:32 +0000)
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/AddBasionymCompositeAction.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeCompositeToMisappliedNameAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationWizardAction.java

index ea17e828f10611b2f68f2760a10579a183981cf1..00db11bc512329c173778d8f2e009e8cd54daa17 100644 (file)
@@ -405,6 +405,7 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/Cr
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteMisappliedNameFromTaxonAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteSynonymFromTaxonAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/TaxonActionFactory.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/AddBasionymCompositeAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeCompositeToMisappliedNameAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/DeleteSynonymCompositeAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationWizardAction.java -text
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/AddBasionymCompositeAction.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/AddBasionymCompositeAction.java
new file mode 100644 (file)
index 0000000..871d6e1
--- /dev/null
@@ -0,0 +1,137 @@
+/**\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
index b898160e3441800120f73e4aa41d9135f88906e7..5833f2062952bcdc0cf0107bbb467b0e1cfadcb1 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.Status;
 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
@@ -76,7 +77,7 @@ public class ChangeCompositeToMisappliedNameAction extends Action {
                this.composite = composite;\r
                this.taxonCompositeFactory = taxonCompositeFactory;\r
 \r
-               operation = new UndoTest();\r
+               operation = new MisappliedNameOperation();\r
 \r
        }\r
 \r
@@ -92,9 +93,9 @@ public class ChangeCompositeToMisappliedNameAction extends Action {
                }\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
@@ -106,7 +107,6 @@ public class ChangeCompositeToMisappliedNameAction extends Action {
                                        synonym, taxon);\r
                        misappliedNameCdmAction\r
                                        .addPropertyChangeListener(new IPropertyChangeListener() {\r
-\r
                                                @Override\r
                                                public void propertyChange(\r
                                                                org.eclipse.jface.util.PropertyChangeEvent event) {\r
@@ -141,8 +141,7 @@ public class ChangeCompositeToMisappliedNameAction extends Action {
                                        .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
@@ -155,6 +154,5 @@ public class ChangeCompositeToMisappliedNameAction extends Action {
                        misappliedNameCdmUndoAction.run();\r
                        return Status.OK_STATUS;\r
                }\r
-\r
        }\r
 }
\ No newline at end of file
index 13b46c54a348eef399559fb468f15286fa08cde9..f14925a2adb3d78188ed1d827ac3cade8b44c0b4 100644 (file)
@@ -9,18 +9,20 @@
 \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
@@ -37,7 +39,7 @@ public class OpenNameRelationWizardAction extends Action {
        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
@@ -47,21 +49,30 @@ public class OpenNameRelationWizardAction extends Action {
 \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