From 0c3f2f4fa0352a836e5510162f7bdbfc0420e2dc Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Mon, 7 Jul 2014 12:22:55 +0000 Subject: [PATCH] - expand branch in DerivateView where a new derivate created and select the derivate --- .../editor/view/derivate/DerivateView.java | 78 ++++--------------- .../CreateDerivateContextMenu.java | 12 ++- 2 files changed, 25 insertions(+), 65 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java index bab27cfed..527859a4c 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java @@ -11,6 +11,7 @@ import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.AbstractTreeViewer; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TreeNode; +import org.eclipse.jface.viewers.TreeSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; @@ -22,7 +23,6 @@ import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.IMemento; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; @@ -34,7 +34,6 @@ import eu.etaxonomy.cdm.model.molecular.SingleRead; import eu.etaxonomy.cdm.model.occurrence.FieldUnit; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; -import eu.etaxonomy.taxeditor.model.IContextListener; import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider; import eu.etaxonomy.taxeditor.model.IPartContentHasDetails; import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData; @@ -47,7 +46,7 @@ import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider; * */ public class DerivateView extends EditorPart implements IPartContentHasFactualData, IDirtyMarkableSelectionProvider, - IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener { + IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData { /** * Key used for storing a single DerivateView in a memento @@ -77,7 +76,6 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa * Default constructor */ public DerivateView() { - CdmStore.getContextManager().addContextListener(this); } /* (non-Javadoc) @@ -233,6 +231,19 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa viewer.refresh(); } + /** + * Refreshes the derivate hierarchy tree and expands the tree + * to show and select the given object. + * + * @param expandTo the object to which the tree should be expanded + */ + public void refreshTree(Object expandTo){ + refreshTree(); + TreeSelection selection = (TreeSelection) viewer.getSelection(); + viewer.expandToLevel(selection.getFirstElement(), 1); + viewer.setSelection(new StructuredSelection(new TreeNode(expandTo))); + } + /** * Refreshes the derivate hierarchy tree */ @@ -242,6 +253,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa viewer.refresh(); } + private void generateMultiLinkSingleReads() { Set multiLinkSingleReads = new HashSet(); for(Entry> entry:CdmStore.getService(ISequenceService.class).getSingleReadSequencesMap().entrySet()){ @@ -259,62 +271,4 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa return this.multiLinkSingleReads; } - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) { - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void contextStop(IMemento memento, IProgressMonitor monitor) { - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void contextStart(IMemento memento, IProgressMonitor monitor) { -// if(memento == null){ -// return; -// } -// IMemento editorMementos = memento.getChild(DERIVATE_VIEW_MEMENTO_KEY); -// DerivateViewEditorInput input = new DerivateViewEditorInput(UUID.fromString(editorInput.getString(DerivateViewEditorInput.UUID_MEMENTO_KEY))); -// try { -// EditorUtil.open(input); -// } catch (PartInitException e) { -// AbstractUtility.error(getClass(), "Error opening an editor window", e); -// } - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void contextRefresh(IProgressMonitor monitor) { - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) { -// if (!conversation.isBound()) { -// conversation.bind(); -// } -// conversation.close(); -// if(memento == null){ -// return; -// } -// -// IEditorInput input = getEditorInput(); -// if(input instanceof IPersistable){ -// memento.createChild(DERIVATE_VIEW_MEMENTO_KEY); -// ((IPersistable) input).saveState(memento); -// } - } - } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java index b956e86c7..2470481be 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java @@ -123,15 +123,20 @@ public class CreateDerivateContextMenu extends CompoundContributionItem { */ @Override public void widgetSelected(SelectionEvent e) { + Object createdElement = null; Object selectedDerivate = selectedNode.getValue(); if(selectedDerivate instanceof DnaSample){ DnaSample dnaSample = (DnaSample)selectedDerivate; if(childClass.equals(Sequence.class)){ - dnaSample.addSequence(Sequence.NewInstance(""));//why does this not have DnaSample as constructor parameter? + Sequence newInstance = Sequence.NewInstance(""); + dnaSample.addSequence(newInstance);//why does this not have DnaSample as constructor parameter? + createdElement = newInstance; } } else if(selectedDerivate instanceof Sequence){ - ((Sequence) selectedDerivate).addSingleRead(SingleRead.NewInstance()); + SingleRead newInstance = SingleRead.NewInstance(); + ((Sequence) selectedDerivate).addSingleRead(newInstance); + createdElement = newInstance; } else if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){ SpecimenOrObservationBase specimenOrObservationBase = (SpecimenOrObservationBase)selectedDerivate; @@ -150,6 +155,7 @@ public class CreateDerivateContextMenu extends CompoundContributionItem { specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, DerivationEventType.GATHERING_IN_SITU())); derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy()); derivedUnit.getTitleCache(); //update title cache + createdElement = derivedUnit; } //refresh view @@ -157,7 +163,7 @@ public class CreateDerivateContextMenu extends CompoundContributionItem { if(activePart instanceof DerivateView){ DerivateView derivateView = (DerivateView)activePart; derivateView.changed(null); - derivateView.refreshTree(); + derivateView.refreshTree(createdElement); } } } -- 2.34.1