From: Patrick Plitzner
Date: Wed, 11 Nov 2015 16:03:41 +0000 (+0100)
Subject: Convert DerivateView to an EditorPart
X-Git-Tag: 3.12.0^2~62^2~7^2~1
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/d2ea9779b2788125d3b4fc41c8102a75406595c7
Convert DerivateView to an EditorPart
---
diff --git a/eu.etaxonomy.taxeditor.editor/plugin.xml b/eu.etaxonomy.taxeditor.editor/plugin.xml
index c4e90a5f6..b7ca0b2d2 100644
--- a/eu.etaxonomy.taxeditor.editor/plugin.xml
+++ b/eu.etaxonomy.taxeditor.editor/plugin.xml
@@ -76,6 +76,13 @@
id="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
name="%editor.name.8">
+
+
@@ -145,13 +152,6 @@
id="eu.etaxonomy.taxeditor.editor.view.validation.problems"
name="%view.name.6">
-
-
@@ -720,29 +720,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1461,11 +1426,6 @@
defaultHandler="eu.etaxonomy.taxeditor.editor.group.authority.handler.EditCdmAuthoritiesHandler"
id="eu.etaxonomy.taxeditor.group.cdmauthorities.edit"
name="%command.name.34">
-
-
, SpecimenOrObservationBase>>();
this.rootElements = new HashSet>();
@@ -314,14 +329,6 @@ public class DerivateView extends AbstractCdmViewPart implements IPartContentHas
return conversation;
}
- /**
- * @return the viewer
- */
- @Override
- public TreeViewer getViewer() {
- return viewer;
- }
-
@Override
public void changed(Object element) {
setDirty(true);
@@ -452,10 +459,18 @@ public class DerivateView extends AbstractCdmViewPart implements IPartContentHas
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ if(viewer.getTree().isDisposed()){
+ return;
+ }
if(listenToSelectionChange && selection instanceof IStructuredSelection){
Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
- if(selectedElement instanceof CdmBase && ((CdmBase) selectedElement).isInstanceOf(Taxon.class)){
- selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, Taxon.class);
+ if(selectedElement instanceof CdmBase){
+ if(((CdmBase) selectedElement).isInstanceOf(TaxonNode.class)){
+ selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, TaxonNode.class).getTaxon();
+ }
+ else if(((CdmBase) selectedElement).isInstanceOf(Taxon.class)){
+ selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, Taxon.class);
+ }
Collection fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon(selectedTaxon, null, null);
Collection uuids = new HashSet();
for (SpecimenOrObservationBase specimenOrObservationBase : fieldUnits) {
@@ -467,6 +482,10 @@ public class DerivateView extends AbstractCdmViewPart implements IPartContentHas
}
}
+ public TreeViewer getViewer() {
+ return viewer;
+ }
+
/**
* {@inheritDoc}
*/
@@ -475,22 +494,6 @@ public class DerivateView extends AbstractCdmViewPart implements IPartContentHas
return new ArrayList>(rootElements);
}
- @Override
- public void createViewer(Composite parent) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public boolean isSaveOnCloseNeeded() {
- return isDirty();
- }
-
- @Override
- public int promptToSaveOnClose() {
- return ISaveablePart2.DEFAULT;
- }
-
public void toggleListenToSelectionChange() {
listenToSelectionChange = !listenToSelectionChange;
derivateSearchCompositeController.setEnabled(!listenToSelectionChange);
@@ -529,7 +532,6 @@ public class DerivateView extends AbstractCdmViewPart implements IPartContentHas
*/
@Override
public void contextStart(IMemento memento, IProgressMonitor monitor) {
- init();
derivateSearchCompositeController.setEnabled(!listenToSelectionChange);
viewer.getTree().setEnabled(true);
refreshTree();
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
index 950533d11..6f7b3be60 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
@@ -9,130 +9,54 @@
*/
package eu.etaxonomy.taxeditor.editor.view.derivate;
-import java.util.Set;
-import java.util.UUID;
-
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-
/**
- * Editor input for the {@link DerivateView} which holds the currently selected derivate for which
- * the derivate hierarchy should be shown in the DerivateView.
- * It also holds a {@link SpecimenOrObservationBase} which is the root of the hierarchy. (both may be the same object)
+ * Editor input for the {@link DerivateView}
+ *
* @author pplitzner
- * @date 25.11.2013
+ * @date Nov 11, 2015
*
*/
public class DerivateViewEditorInput implements IEditorInput {
- /**
- * The {@link UUID}s of the derivative entities
- */
- private Set derivativeUUIDs;
-
- /**
- * Creates an editor input for the {@link DerivateView} with the currently selected derivates and the
- * corresponding {@link FieldUnit}s (both may be the same object).
- * @param derivateUuids the {@link UUID}s of the derivates for which the derivate hierarchy should be shown
- * @param derivativeUUIDs the root of the hierarchy
- */
- public DerivateViewEditorInput(Set derivateUuids) {
- this.derivativeUUIDs = derivateUuids;
+ public DerivateViewEditorInput() {
}
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
@Override
public Object getAdapter(Class adapter) {
- // TODO Auto-generated method stub
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#exists()
- */
@Override
public boolean exists() {
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
- */
@Override
public ImageDescriptor getImageDescriptor() {
- // TODO Auto-generated method stub
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getName()
- */
@Override
public String getName() {
return getEditorName();
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getPersistable()
- */
@Override
public IPersistableElement getPersistable() {
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getToolTipText()
- */
@Override
public String getToolTipText() {
return getEditorName();
}
private String getEditorName() {
- return "Derivative Editor";
- }
-
- /**
- * @return the derivativeUUIDs
- */
- public Set getDerivativeUUIDs() {
- return derivativeUUIDs;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((derivativeUUIDs == null) ? 0 : derivativeUUIDs.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- DerivateViewEditorInput other = (DerivateViewEditorInput) obj;
- if (derivativeUUIDs == null) {
- if (other.derivativeUUIDs != null) {
- return false;
- }
- } else if (!derivativeUUIDs.equals(other.derivativeUUIDs)) {
- return false;
- }
- return true;
+ return "Derivative Editor";
}
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java
deleted file mode 100644
index 7b30737f9..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Messages;
-import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @date Nov 25, 2014
- *
- */
-public class OpenDerivateEditorForTaxonHandler extends AbstractHandler {
-
- private static final String COULD_NOT_OPEN_DERIVATIVE_EDITOR = Messages.OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR;
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
- if(currentSelection instanceof IStructuredSelection){
- Iterator> selectionIterator = ((IStructuredSelection) currentSelection).iterator();
- Set derivateUuids = new HashSet();
- while(selectionIterator.hasNext()){
- Object object = selectionIterator.next();
- if(object instanceof TaxonNode){
- TaxonNode node = (TaxonNode)object;
- Taxon taxon = node.getTaxon();
- List listByAssociatedTaxon = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(null, null, taxon, null, null, null, null, null);
- for (SpecimenOrObservationBase specimenOrObservationBase : listByAssociatedTaxon) {
- derivateUuids.add(specimenOrObservationBase.getUuid());
- }
- }
- }
- if(derivateUuids.isEmpty()){
- MessagingUtils.warningDialog(COULD_NOT_OPEN_DERIVATIVE_EDITOR, this, Messages.OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND);
- return null;
- }
- DerivateViewEditorInput input = new DerivateViewEditorInput(derivateUuids);
- try {
- EditorUtil.open(input);
- } catch (PartInitException e) {
- MessagingUtils.error(OpenDerivateViewHandler.class, COULD_NOT_OPEN_DERIVATIVE_EDITOR, e);
- } catch (NullPointerException npe){
- MessagingUtils.messageDialog(Messages.OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN, OpenDerivateViewHandler.class, Messages.OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED, npe);
- }
- }
- return null;
- }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchComposite.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchComposite.java
index b34b7ab19..02f3e5d05 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchComposite.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchComposite.java
@@ -43,6 +43,7 @@ public class DerivateSearchComposite extends Composite {
private Label lbltaxonAssignment;
private Combo comboTaxonAssignment;
private Label lblTitleCache;
+ private Button buttonToggleLink;
/**
* Create the composite.
@@ -81,7 +82,11 @@ public class DerivateSearchComposite extends Composite {
formToolkit.adapt(comboTaxonAssignment);
formToolkit.paintBordersFor(comboTaxonAssignment);
comboTaxonAssignment.select(ALL_SPECIMENS);
- new Label(this, SWT.NONE);
+
+ buttonToggleLink = new Button(this, SWT.NONE);
+ buttonToggleLink.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ buttonToggleLink.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.editor", "icons/synced.gif"));
+ formToolkit.adapt(buttonToggleLink, true, true);
lblTitleCache = new Label(this, SWT.NONE);
lblTitleCache.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
@@ -156,4 +161,7 @@ public class DerivateSearchComposite extends Composite {
public Label getLbltaxonAssignment() {
return lbltaxonAssignment;
}
+ public Button getButtonToggleLink() {
+ return buttonToggleLink;
+ }
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java
index e87fcc5aa..50d91e66a 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java
@@ -65,6 +65,7 @@ public class DerivateSearchCompositeController implements Listener{
derivateSearchComposite.getButtonSearch().addListener(SWT.Selection, this);
derivateSearchComposite.getBtnBrowseTaxa().addListener(SWT.Selection, this);
derivateSearchComposite.getBtnClearTaxon().addListener(SWT.Selection, this);
+ derivateSearchComposite.getButtonToggleLink().addListener(SWT.Selection, this);
}
@@ -145,6 +146,9 @@ public class DerivateSearchCompositeController implements Listener{
derivateSearchComposite.getComboTaxonAssignment().setEnabled(true);
derivateSearchComposite.getLbltaxonAssignment().setEnabled(true);
}
+ else if(eventSource==derivateSearchComposite.getButtonToggleLink()){
+ derivativeEditor.toggleListenToSelectionChange();
+ }
}
/**