Swap taxon and synonym, make taxon synonym of another taxon: OK & Cancel MessageDialo...
authorp.ciardelli <p.ciardelli@localhost>
Wed, 19 Nov 2008 14:27:18 +0000 (14:27 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 19 Nov 2008 14:27:18 +0000 (14:27 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/SwapSynonymAndTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeTaxonToSynonymAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java

index 9ae1f41f91a65ec74b40ae54feb2275c485801af..fa58e68efb72c15b53a606ccf9fb3b0cf3e4d43f 100644 (file)
@@ -11,7 +11,10 @@ package eu.etaxonomy.taxeditor.actions.cdm;
 \r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.PartInitException;\r
 \r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
@@ -21,6 +24,7 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
@@ -49,6 +53,22 @@ public class SwapSynonymAndTaxonAction extends Action {
                // TODO: Call a taxon service method similar to makeTaxonSynonym()\r
                // instead of implementing the logic here\r
                \r
+               try {\r
+                       IEditorPart oldEditor = UiUtil.getEditorByTaxon(taxon);\r
+                       if (oldEditor.isDirty()) {\r
+                               if (!MessageDialog.openConfirm(UiUtil.getShell(), "Save before proceeding", \r
+                                               "All changes must be saved before proceeding with this action.\n\n" +\r
+                                               "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
+                                       return;\r
+                               }\r
+                               oldEditor.doSave(null);\r
+                       }\r
+               } catch (PartInitException e) {\r
+                       e.printStackTrace();\r
+                       MessageDialog.openError(UiUtil.getShell(), "Error", "Error swapping synonym and taxon");\r
+                       return;\r
+               }\r
+               \r
                taxon.removeSynonym(synonym);\r
                \r
                Taxon parentTaxon = taxon.getTaxonomicParent();\r
index cbefb54a5a54702c47d18acd3b70d6935d1f4416..d2e2bde317898426ecb96f5fd5d0fd760c1365b1 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.actions.ui;
 \r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.ui.IEditorPart;\r
@@ -64,9 +65,17 @@ public class ChangeTaxonToSynonymAction extends Action {
                        // Prompt user "Would you like to save?" before showing dialog\r
                        // "Cancel" cancels action - "No" does not\r
                        oldEditor = UiUtil.getEditorByTaxon(oldTaxon);\r
-                       if (UiUtil.getActivePage().saveEditor(oldEditor, true) == false) {\r
-                               return;\r
+                       if (oldEditor.isDirty()) {\r
+                               if (!MessageDialog.openConfirm(UiUtil.getShell(), "Save before proceeding", \r
+                                               "All changes must be saved before proceeding with this action.\n\n" +\r
+                                               "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
+                                       return;\r
+                               }\r
+                               oldEditor.doSave(null);\r
                        }\r
+//                     if (UiUtil.getActivePage().saveEditor(oldEditor, true) == false) {\r
+//                             return;\r
+//                     }\r
                } catch (PartInitException e1) {\r
                        e1.printStackTrace();\r
                }\r
index a4ecacb39859559ca85a647ec7c34edabe5decf6..caca41c2b45069e0a8a0ebd74566bb6d0914bc66 100644 (file)
@@ -440,26 +440,33 @@ public class NameComposite extends EditorGroupedComposite {
                        return;\r
                }\r
 \r
+               // Create right-click context menu\r
                Synonym synonym = (Synonym) getData();\r
                ContextMenu contextMenu = createContextMenu();\r
 \r
+               // Action to change composite to a misapplied name\r
                Action misappliedNameAction = new MoveCompositeToMisappliedCompositeAction(\r
                                this, managedForm);\r
                contextMenu.addAction(misappliedNameAction);\r
 \r
+               // Action to delete composite\r
                Action deleteSynonymAction = new DeleteSynonymCompositeAction(this,\r
                                getTaxon());\r
                contextMenu.addAction(deleteSynonymAction);\r
 \r
+               // Separator\r
                contextMenu.addSeparator();\r
 \r
+               // Action to make the composite the basionym of the homotypic group\r
                final Action addBasionymAction = new AddBasionymCompositeAction(this);\r
                contextMenu.addAction(addBasionymAction);\r
 \r
+               // Action to remove the composite as basionym of the homotypic group\r
                final Action removeBasionymAction = new RemoveBasionymCompositeAction(\r
                                this);\r
                contextMenu.addAction(removeBasionymAction);\r
 \r
+               // Listeners to activate / reactivate the above two actions as necessary\r
                addBasionymAction\r
                                .addPropertyChangeListener(new IPropertyChangeListener() {\r
                                        public void propertyChange(\r
@@ -471,7 +478,6 @@ public class NameComposite extends EditorGroupedComposite {
                                                }\r
                                        }\r
                                });\r
-\r
                removeBasionymAction\r
                                .addPropertyChangeListener(new IPropertyChangeListener() {\r
                                        public void propertyChange(\r
@@ -484,12 +490,15 @@ public class NameComposite extends EditorGroupedComposite {
                                        }\r
                                });\r
 \r
+               // Separator\r
                contextMenu.addSeparator();\r
 \r
+               // Action to change this synonym to the taxon's accepted name\r
                Action changeToThisTaxon = new ChangeSynonymToTaxonUiAction(synonym,\r
                                getTaxon());\r
                contextMenu.addAction(changeToThisTaxon);\r
 \r
+               // Action to make a new taxon with this synonym as the accepted name\r
                Action changeToNewAccepted = new ChangeCompositeToNewTaxonAction(this,\r
                                getTaxon());\r
                contextMenu.addAction(changeToNewAccepted);\r