From: p.ciardelli
Date: Tue, 23 Sep 2008 09:56:40 +0000 (+0000)
Subject: Checkin before attempting to put each "save taxon" in its own transaction.
X-Git-Tag: rcp.ss-first-working-version~1052
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/c2f06cc17edce9ac34f77e28284ef8db101d8625
Checkin before attempting to put each "save taxon" in its own transaction.
---
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
index dd13aa7dc..2c647206b 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
@@ -33,7 +33,6 @@ import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.operations.IWorkbenchOperationSupport;
import org.eclipse.ui.views.properties.PropertySheet;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.name.BotanicalName;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
@@ -60,6 +59,7 @@ public class UiUtil {
private static Set preferredFeatureSet;
private static Set preferredRankSet;
+ private static IViewPart treeView;
public static IViewPart getPropertySheet() {
for (IViewReference reference : getActivePage().getViewReferences()) {
@@ -205,11 +205,13 @@ public class UiUtil {
* @return
*/
public static TaxonomicTreeView getTreeView() {
- IViewPart view = getViewById(TaxonomicTreeView.ID);
- if (view == null || !(view instanceof TaxonomicTreeView)) {
- return null;
+ if (treeView == null) {
+ treeView = getViewById(TaxonomicTreeView.ID);
+ if (!(treeView instanceof TaxonomicTreeView)) {
+ treeView = null;
+ }
}
- return (TaxonomicTreeView) view;
+ return (TaxonomicTreeView) treeView;
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java
index 4da2bd6b9..9aecf8e55 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java
@@ -79,7 +79,6 @@ public class DeleteElementCompositeAction extends Action {
throw new IllegalArgumentException(
"This action requires that the element composite's \"grandparent\" has a Description in its data field.");
}
-
operation = new DeleteElementOperation();
}
@@ -106,19 +105,10 @@ public class DeleteElementCompositeAction extends Action {
throws ExecutionException {
// Delete element from description
+ description.removeElement(descriptionElement);
-
-// Action action = new DeleteMisappliedNameFromTaxonAction(misappliedName, taxon);
-// action.addPropertyChangeListener(new IPropertyChangeListener() {
-// @Override
-// public void propertyChange(PropertyChangeEvent event) {
-// if (event.getProperty().equals(
-// ITaxEditorConstants.MISAPPLIED_NAME)) {
-// elementComposite.dispose();
-// }
-// }
-// });
-// action.run();
+ // Dipose element composite
+ elementComposite.dispose();
return Status.OK_STATUS;
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupComposite.java
index 41f9d8140..34e41f7f1 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupComposite.java
@@ -35,6 +35,12 @@ public class GroupComposite extends Composite {
private DropTarget target;
private DropTargetListener dropListener;
+ /**
+ * Sets whether or not to dispose of this Composite
+ * when all its children have been disposed.
+ */
+ private boolean isDisposeEmpty;
+
public GroupComposite(Composite parent) {
super(parent, SWT.NONE);
@@ -81,4 +87,12 @@ public class GroupComposite extends Composite {
}
}
}
+
+ public boolean isDisposeEmpty() {
+ return isDisposeEmpty;
+ }
+
+ public void setDisposeEmpty(boolean isDisposeEmpty) {
+ this.isDisposeEmpty = isDisposeEmpty;
+ }
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
index d09ecf641..41785aed1 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
@@ -119,7 +119,7 @@ abstract public class GroupedComposite extends Composite {
grandParent = parent.getParent();
}
super.dispose();
- if (parent instanceof EditorGroupComposite
+ if (parent instanceof Composite
&& parent.getChildren().length == 0) {
parent.dispose();
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
index d014c1082..2b4491f79 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
@@ -24,7 +24,6 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.TextData;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.ITaxEditorConstants;
import eu.etaxonomy.taxeditor.TaxEditorPlugin;
import eu.etaxonomy.taxeditor.actions.ui.description.DeleteElementCompositeAction;
@@ -174,10 +173,34 @@ public class DescriptionElementComposite extends EditorGroupedComposite {
ContextMenu contextMenu = new ContextMenu(getDraggableLabel());
// Delete this description element
-// Action deleteElementAction = new DeleteElementCompositeAction(
-// this, getTaxon());
-// contextMenu.addAction(deleteElementAction);
+ Action deleteElementAction = new DeleteElementCompositeAction(
+ this, getTaxon());
+ contextMenu.addAction(deleteElementAction);
// Add new text
- }
+ }
+
+ @Override
+ public void dispose() {
+
+ Composite featureComponent = this.getParent();
+
+ super.dispose();
+
+ // If feature only has 1 child that is not DescriptionElementComposite,
+ // composite is empty
+ if (!(featureComponent instanceof FeatureGroupComposite)) {
+ return;
+ }
+
+ if (featureComponent.getChildren().length == 1 &&
+ !(featureComponent.getChildren()[0] instanceof
+ DescriptionElementComposite)) {
+ Composite grandParent = featureComponent.getParent();
+ featureComponent.dispose();
+ grandParent.layout();
+ }
+
+ managedForm.getForm().getBody().layout();
+ }
}
\ No newline at end of file