Fixed bug #574 - deleting last child node from tree successfully removes entry
authorp.ciardelli <p.ciardelli@localhost>
Wed, 11 Feb 2009 08:47:28 +0000 (08:47 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 11 Feb 2009 08:47:28 +0000 (08:47 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/AcceptedNameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/QuickNameTaxon.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeContentProvider.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java

index a371c92d07862d08ee1064f4cb7382133f391b0d..0ba74719f74c8509102e0cbfafe56769a68bb61b 100644 (file)
@@ -81,6 +81,8 @@ public class AcceptedNameComposite extends NameComposite {
 //                     contextMenu.addAction(new CreateAutonymAction());\r
 //     //      }\r
 //             contextMenu.addAction(new CreateTaxonomicallyIncludedTaxonAction());\r
+               \r
+               textViewer.getTextWidget().setMenu(contextMenu.getMenu());\r
        }\r
 \r
        @Override\r
index f4e28f0eada47e8e00474e78870fd7a21821a93e..5bfc0de3f10740ef1214f24bd615abdd365d34e2 100644 (file)
@@ -220,7 +220,7 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
        \r
        @Override\r
        public void addTaxon(Taxon taxon) {\r
-               \r
+                               \r
                // Add taxon to its parent's child map\r
                Taxon parentTaxon = taxon.getTaxonomicParent();\r
                getTaxonomicChildren(parentTaxon).add(taxon);\r
@@ -270,9 +270,6 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
 \r
        @Override\r
        public void removeTaxon(Taxon taxon) {\r
-\r
-               // Remove from session taxa\r
-               getObservableTaxa().remove(taxon);\r
                \r
                // Recursively remove all children, children's children, etc.\r
                clearTaxonomicChildren(taxon);\r
@@ -282,6 +279,9 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
                if (parentTaxon != null) {\r
                        removeTaxonomicChild(taxon, parentTaxon);\r
                }\r
+\r
+               // Remove from session taxa\r
+               getObservableTaxa().remove(taxon);\r
                \r
                // Remove from recent names list\r
                RecentNamesView.removeRecentName(taxon);\r
index 194270b371224ce6875c88132e442a1b7151969d..d47be5d6f58b54dd72e0fcac5aa569bc5be425e3 100644 (file)
@@ -54,7 +54,7 @@ public class QuickNameTaxon extends Taxon {
                        return parentTaxon.getSec();\r
                }\r
        }\r
-\r
+       \r
        public void setParent(Taxon parentTaxon) {\r
                this.parentTaxon = parentTaxon;\r
        }\r
index f117dd2297fda64263aed776e512f0029486b48d..76cf58b6c95fabba29cae2a2365d58341f9216c7 100644 (file)
@@ -62,7 +62,13 @@ public class TaxonomicTreeContentProvider implements ITreeContentProvider {
        private Set<Taxon> getTaxonChildren(Taxon parentTaxon) {\r
                Set<Taxon> children = \r
                                CdmSessionDataRepository.getDefault().getTaxonomicChildren(parentTaxon);\r
-               \r
+       \r
+               // BUG - Somehow when a child taxon 1) is added with "add quick name", 2) is the\r
+               //      parent taxon's only child, and 3) is then deleted, the QuickNameTaxon singleton\r
+               //      shows up in the parent taxon's children after it is deleted and therefore pops\r
+               //      back up in the tree\r
+               children.remove(QuickNameTaxon.getInstance());\r
+                               \r
                if (isQuickNameParent(parentTaxon)) {\r
                        children.add(QuickNameTaxon.getInstance());\r
                }\r
index a5d7fac2b51bef96da2d0f090b2999cc8fe76ee8..39c2ec2f096bc7fd439304dbe7fe9b223333ee2c 100644 (file)
@@ -27,7 +27,6 @@ import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.ICellEditorListener;\r
 import org.eclipse.jface.viewers.ICellModifier;\r
 import org.eclipse.jface.viewers.IDoubleClickListener;\r
-import org.eclipse.jface.viewers.ISelection;\r
 import org.eclipse.jface.viewers.ITreeContentProvider;\r
 import org.eclipse.jface.viewers.StructuredSelection;\r
 import org.eclipse.jface.viewers.TextCellEditor;\r
@@ -233,7 +232,7 @@ public class TaxonomicTreeViewer extends TreeViewer {
                        }\r
 \r
                        public Object getValue(Object element, String property) {\r
-                               // If this node is editable, TitleCache is by definition empty\r
+                               // If this node is modifiable, name is by definition empty\r
                                return "";\r
                        }\r
 \r
@@ -285,10 +284,11 @@ public class TaxonomicTreeViewer extends TreeViewer {
                                                        QuickNameTaxon.getInstance().getTaxonomicParent()), true);\r
                                }\r
                                \r
+                               // Clear singleton's parent\r
+                               QuickNameTaxon.getInstance().setParent(null);\r
+                               \r
                                // Remove quick name from tree\r
                                remove(QuickNameTaxon.getInstance());\r
-                               \r
-                               QuickNameTaxon.getInstance().setParent(null);\r
                        }\r
 \r
                        public void editorValueChanged(boolean oldValidState,\r
@@ -320,7 +320,7 @@ public class TaxonomicTreeViewer extends TreeViewer {
         */\r
        private void createContent() {\r
                \r
-               // Yet another custom content provider ...\r
+               // Custom content provider\r
                ITreeContentProvider viewerContentProviderList = new TaxonomicTreeContentProvider();\r
                setContentProvider(viewerContentProviderList);\r
 \r
@@ -365,17 +365,17 @@ public class TaxonomicTreeViewer extends TreeViewer {
                                \r
                                // Save any selection and expansion info ...\r
                                // NOTE: may be superfluous\r
-                               Object[] viewerExpandedElements = null;\r
-                               ISelection viewerSelection = null;\r
-                               viewerExpandedElements = getExpandedElements();\r
-                               viewerSelection = getSelection();\r
+//                             Object[] viewerExpandedElements = null;\r
+//                             ISelection viewerSelection = null;\r
+//                             viewerExpandedElements = getExpandedElements();\r
+//                             viewerSelection = getSelection();\r
                                                                \r
                                remove(taxon);\r
                                addTaxonToTree(taxon, newParentTaxon);\r
                                \r
                                // ... to restore after taxon has been removed then re-added\r
-                               setExpandedElements(viewerExpandedElements);\r
-                               setSelection(viewerSelection, true);\r
+//                             setExpandedElements(viewerExpandedElements);\r
+//                             setSelection(viewerSelection, true);\r
                        }               \r
                });\r
        }\r