Checkin before attempting to put each "save taxon" in its own transaction.
authorp.ciardelli <p.ciardelli@localhost>
Tue, 23 Sep 2008 09:56:40 +0000 (09:56 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Tue, 23 Sep 2008 09:56:40 +0000 (09:56 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java

index dd13aa7dcac7032bbdba88b8c2f4fdae34c42ad0..2c647206b2a7cb966548cc05be24b6af17e5806f 100644 (file)
@@ -33,7 +33,6 @@ import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.operations.IWorkbenchOperationSupport;\r
 import org.eclipse.ui.views.properties.PropertySheet;\r
 \r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.name.BotanicalName;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
@@ -60,6 +59,7 @@ public class UiUtil {
 \r
        private static Set<Feature> preferredFeatureSet;\r
        private static Set<Rank> preferredRankSet;\r
+       private static IViewPart treeView;\r
        \r
        public static IViewPart getPropertySheet() {\r
                for (IViewReference reference : getActivePage().getViewReferences()) {\r
@@ -205,11 +205,13 @@ public class UiUtil {
         * @return\r
         */     \r
        public static TaxonomicTreeView getTreeView() {\r
-               IViewPart view = getViewById(TaxonomicTreeView.ID);\r
-               if (view == null || !(view instanceof TaxonomicTreeView)) {\r
-                       return null;\r
+               if (treeView == null) {\r
+                       treeView = getViewById(TaxonomicTreeView.ID);\r
+                       if (!(treeView instanceof TaxonomicTreeView)) {\r
+                               treeView = null;\r
+                       }\r
                }\r
-               return (TaxonomicTreeView) view;\r
+               return (TaxonomicTreeView) treeView;\r
        }\r
        \r
 \r
index 4da2bd6b9728da35ccce5d24a8330b702ce43d14..9aecf8e559279eae2d4a13d500ae14c36a3f2cf9 100644 (file)
@@ -79,7 +79,6 @@ public class DeleteElementCompositeAction extends Action {
                        throw new IllegalArgumentException(\r
                                        "This action requires that the element composite's \"grandparent\" has a Description in its data field.");\r
                }\r
-\r
                operation = new DeleteElementOperation();\r
        }\r
 \r
@@ -106,19 +105,10 @@ public class DeleteElementCompositeAction extends Action {
                                throws ExecutionException {\r
                        \r
                        // Delete element from description\r
+                       description.removeElement(descriptionElement);\r
                        \r
-                       \r
-//                     Action action = new DeleteMisappliedNameFromTaxonAction(misappliedName, taxon);\r
-//                     action.addPropertyChangeListener(new IPropertyChangeListener() {\r
-//                             @Override\r
-//                             public void propertyChange(PropertyChangeEvent event) {\r
-//                                     if (event.getProperty().equals(\r
-//                                                     ITaxEditorConstants.MISAPPLIED_NAME)) {\r
-//                                             elementComposite.dispose();             \r
-//                                     }\r
-//                             }\r
-//                     });                     \r
-//                     action.run();\r
+                       // Dipose element composite\r
+                       elementComposite.dispose();\r
                        \r
                        return Status.OK_STATUS;\r
                }\r
index 41f9d81409840793e28e2ec4718554080fc8284d..34e41f7f165331481cff8e7253971eff45716b12 100644 (file)
@@ -35,6 +35,12 @@ public class GroupComposite extends Composite {
        private DropTarget target;\r
        private DropTargetListener dropListener;\r
        \r
+       /**\r
+        * Sets whether or not to dispose of this <code>Composite</code>\r
+        * when all its children have been disposed.\r
+        */\r
+       private boolean isDisposeEmpty;\r
+       \r
        public GroupComposite(Composite parent) {\r
                super(parent, SWT.NONE);\r
 \r
@@ -81,4 +87,12 @@ public class GroupComposite extends Composite {
                        }\r
                }\r
        }\r
+\r
+       public boolean isDisposeEmpty() {\r
+               return isDisposeEmpty;\r
+       }\r
+\r
+       public void setDisposeEmpty(boolean isDisposeEmpty) {\r
+               this.isDisposeEmpty = isDisposeEmpty;\r
+       }\r
 }\r
index d09ecf641d2cb4f107d3536931e66cb311df6712..41785aed104dea9f31ea9872eec359e8c67edd6a 100644 (file)
@@ -119,7 +119,7 @@ abstract public class GroupedComposite extends Composite {
                        grandParent = parent.getParent();\r
                }\r
                super.dispose();\r
-               if (parent instanceof EditorGroupComposite\r
+               if (parent instanceof Composite\r
                                && parent.getChildren().length == 0) {\r
                        parent.dispose();\r
                }\r
index d014c10823d342984847929721284e1334053232..2b4491f79796d8517b85d7fb8e1ebb745d51bbcc 100644 (file)
@@ -24,7 +24,6 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.cdm.model.description.TextData;\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.actions.ui.description.DeleteElementCompositeAction;\r
@@ -174,10 +173,34 @@ public class DescriptionElementComposite extends EditorGroupedComposite {
                ContextMenu contextMenu = new ContextMenu(getDraggableLabel());\r
                \r
                // Delete this description element\r
-//             Action deleteElementAction = new DeleteElementCompositeAction(\r
-//                             this, getTaxon());\r
-//             contextMenu.addAction(deleteElementAction);\r
+               Action deleteElementAction = new DeleteElementCompositeAction(\r
+                               this, getTaxon());\r
+               contextMenu.addAction(deleteElementAction);\r
                \r
                // Add new text \r
-       }       \r
+       }\r
+       \r
+       @Override\r
+       public void dispose() {\r
+               \r
+               Composite featureComponent = this.getParent();\r
+               \r
+               super.dispose();\r
+               \r
+               // If feature only has 1 child that is not DescriptionElementComposite,\r
+               //      composite is empty\r
+               if (!(featureComponent instanceof FeatureGroupComposite)) {\r
+                       return;\r
+               }\r
+               \r
+               if (featureComponent.getChildren().length == 1 &&\r
+                               !(featureComponent.getChildren()[0] instanceof \r
+                                               DescriptionElementComposite)) {\r
+                       Composite grandParent = featureComponent.getParent(); \r
+                       featureComponent.dispose();\r
+                       grandParent.layout();\r
+               }\r
+\r
+               managedForm.getForm().getBody().layout();\r
+       }\r
 }
\ No newline at end of file