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