\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
\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
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
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
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
}\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
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
*/\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
\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