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