From 5a4afeddb6c363474395a970fb8d28726409a05e Mon Sep 17 00:00:00 2001
From: Patric Plitzner
Date: Tue, 8 Oct 2013 06:40:16 +0000
Subject: [PATCH 1/1] - added DerivateView to workbench - implemented dummy
content - fixed warnings
---
.gitattributes | 1 +
.../icons/leaf_detail.png | Bin 0 -> 633 bytes
eu.etaxonomy.taxeditor.editor/plugin.xml | 30 +++++--
.../derivate/DerivateContentProvider.java | 8 +-
.../editor/view/derivate/DerivateView.java | 14 ++-
.../DescriptiveContentProvider.java | 61 +++++++------
.../view/descriptive/DescriptiveViewPart.java | 83 +++++++++---------
7 files changed, 115 insertions(+), 82 deletions(-)
create mode 100644 eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png
diff --git a/.gitattributes b/.gitattributes
index 3590d6201..3288a9212 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -335,6 +335,7 @@ eu.etaxonomy.taxeditor.editor/icons/address-book-new.png -text
eu.etaxonomy.taxeditor.editor/icons/camera-photo.png -text
eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.editor/icons/emblem-photos.png -text
+eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png -text
eu.etaxonomy.taxeditor.editor/icons/xper64.png -text
eu.etaxonomy.taxeditor.editor/p2.inf -text
eu.etaxonomy.taxeditor.editor/plugin.properties -text
diff --git a/eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png b/eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png
new file mode 100644
index 0000000000000000000000000000000000000000..217c601348aa88e5238f9cbd32b5dc217d5327d8
GIT binary patch
literal 633
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b
zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87#J6Mx;TbdoL)L0>xX&u=5N33|82eT!MSt2)T8O{^Jaa`V>FPS{aYfzMmpxjbD6YnZ%+L>oIUNE
znP|h$XR3kmxi%he7Mo~%d-RTJv9fc^uG44dJ~Uup&S0>SV(VHI5H4H(yX3UpM!uPI
zB-EFz()+PEafjb^KA_Rx@~Ya8rOmHd!xo~IKkE;dZnstXy|a&boBlB@S~2CMYwMoO
zN#>j+nKlhBuX-Zx&v^dPcrlBG{L9^L?*ADW
zWS8)-OYFD~j5^g4*NBpo#FA92
+ allowMultiple="false"
+ category="eu.etaxonomy.taxeditor.editor.category"
+ class="eu.etaxonomy.taxeditor.editor.view.uses.UsesViewPart"
+ icon="icons/leaf.png"
+ id="eu.etaxonomy.taxeditor.editor.view.uses"
+ name="Uses"
+ restorable="true">
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java
index 74df44b23..47c5d234a 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java
@@ -1,5 +1,7 @@
package eu.etaxonomy.taxeditor.editor.view.derivate;
+import java.util.Collections;
+
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
@@ -13,19 +15,15 @@ public class DerivateContentProvider implements ITreeContentProvider {
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // TODO Auto-generated method stub
-
}
@Override
public Object[] getElements(Object inputElement) {
- // TODO Auto-generated method stub
- return null;
+ return Collections.singleton(inputElement).toArray();
}
@Override
public Object[] getChildren(Object parentElement) {
- // TODO Auto-generated method stub
return null;
}
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 2a0426a1c..da6c9c079 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
@@ -1,6 +1,7 @@
package eu.etaxonomy.taxeditor.editor.view.derivate;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
@@ -9,6 +10,7 @@ import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
@@ -30,12 +32,20 @@ public class DerivateView extends AbstractCdmEditorViewPart implements IPartCont
viewer.setContentProvider(new DerivateContentProvider());
viewer.setLabelProvider(new DerivateLabelProvider());
viewer.setAutoExpandLevel(2);
+ // Propagate selection from viewer
+ getSite().setSelectionProvider(viewer);
}
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- // TODO Auto-generated method stub
-
+ if(part instanceof BulkEditor && selection instanceof IStructuredSelection){
+ showViewer(part, (IStructuredSelection)selection);
+ return;
+ }
+ else {
+ showEmptyPage();
+ return;
+ }
}
@Override
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java
index fce0faf8e..cee881704 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.view.descriptive;
@@ -35,10 +35,10 @@ import eu.etaxonomy.taxeditor.store.TermStore;
* @version $Id: $
*/
public class DescriptiveContentProvider implements ITreeContentProvider {
-
+
protected static final Object[] NO_CHILDREN = new Object[0];
protected Map featureNodeContainerCache;
-
+
/**
* Constructor for DescriptiveContentProvider.
*
@@ -47,21 +47,22 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
public DescriptiveContentProvider(Map featureNodeContainerCache) {
this.featureNodeContainerCache = featureNodeContainerCache;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
/** {@inheritDoc} */
- public Object[] getChildren(Object parentElement) {
+ @Override
+ public Object[] getChildren(Object parentElement) {
if (parentElement instanceof TaxonEditorInput) {
- return getDescriptions((TaxonEditorInput) parentElement).toArray();
+ return getDescriptions((TaxonEditorInput) parentElement).toArray();
}
else if (parentElement instanceof TaxonDescription) {
if ( ! ((TaxonDescription) parentElement).isImageGallery()) {
TaxonDescription description = (TaxonDescription) parentElement;
-
+
FeatureNodeContainerTree containerTree = getContainerTreeForDesription(description);
-
+
return containerTree.getRoot().getChildren().toArray();
}
}
@@ -73,10 +74,10 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
return container.getChildren().toArray();
}
}
-
+
return NO_CHILDREN;
}
-
+
private FeatureNodeContainerTree getContainerTreeForDesription(TaxonDescription description){
if(! featureNodeContainerCache.containsKey(description)){
FeatureNodeContainerTree containerTree = new FeatureNodeContainerTree(description, getFeatureTree(description));
@@ -94,40 +95,40 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
if(containerTree != null && containerTree.getRoot() != null){
return containerTree.getRoot().getChildren().size() != 0;
}
- }
+ }
return getChildren(element).length != 0;
}
-
+
/**
* Retrieves the feature tree associated with the given description
- *
- * TODO as of now this is always the same thing because feature trees may not be associated
+ *
+ * TODO as of now this is always the same thing because feature trees may not be associated
* to descriptions yet.
- *
+ *
* @param description
* @return
*/
private FeatureTree getFeatureTree(DescriptionBase description){
FeatureTree featureTree = null;
-
+
// TODO change this to the feature tree associated with this taxon description
- if (description.hasStructuredData()){
+ if (description.hasStructuredData()){
featureTree = PreferencesUtil.getDefaultFeatureTreeForStructuredDescription();
}else{
featureTree = PreferencesUtil.getDefaultFeatureTreeForTextualDescription();
}
-
+
// create a transient tree with all features if none was selected
if(featureTree == null){
featureTree = FeatureTree.NewInstance(TermStore.getTerms(Feature.class));
}
-
+
return featureTree;
}
/**
* Get all descriptions associated with the given TaxonEditorInput
- *
+ *
* @param parentElement
* @return
*/
@@ -149,8 +150,8 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
descriptions.add(description);
}
}
-
- }
+
+ }
return descriptions;
}
@@ -158,7 +159,8 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
*/
/** {@inheritDoc} */
- public Object getParent(Object element) {
+ @Override
+ public Object getParent(Object element) {
return null;
}
@@ -166,17 +168,19 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
/** {@inheritDoc} */
- public Object[] getElements(Object inputElement) {
+ @Override
+ public Object[] getElements(Object inputElement) {
return getChildren(inputElement);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
/**
* dispose
*/
- public void dispose() {
+ @Override
+ public void dispose() {
featureNodeContainerCache.clear();
}
@@ -184,6 +188,7 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
/** {@inheritDoc} */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
+
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
index 8a9b9296e..1ed443152 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
@@ -1,9 +1,9 @@
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
@@ -15,6 +15,7 @@ import java.util.Map;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -41,16 +42,15 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;
import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailElement;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
/**
@@ -64,9 +64,9 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
/** Constant ID="eu.etaxonomy.taxeditor.editor.view.desc"{trunked}
*/
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.descriptive";
-
+
protected TreeViewer viewer;
-
+
/**
* Maps {@link FeatureNodeContainerTree} to their corresponding {@link TaxonDescritpion}.
* This serves as input for the {@link ITreeContentProvider} of the {@link TreeViewer}
@@ -78,13 +78,13 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
protected ToggleDescriptionAction hideAllElementsAction;
protected int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
-
+
/** {@inheritDoc} */
@Override
public void createViewer(Composite parent) {
viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION));
- viewer.setContentProvider(new DescriptiveContentProvider(featureNodeContainerCache));
+ viewer.setContentProvider(new DescriptiveContentProvider(featureNodeContainerCache));
viewer.setLabelProvider(new DescriptiveLabelProvider());
viewer.setSorter(new DescriptiveViewerSorter());
viewer.setAutoExpandLevel(2);
@@ -93,24 +93,24 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
this));
viewer.addDropSupport(dndOperations, transfers,
new DescriptionElementDropAdapter(viewer));
-
+
// Propagate selection from viewer
getSite().setSelectionProvider(viewer);
-
- showAllElementsAction = new ToggleDescriptionAction(false);
+
+ showAllElementsAction = new ToggleDescriptionAction(false);
hideAllElementsAction = new ToggleDescriptionAction(true);
-
+
// Add context menu to tree
createMenu();
-
+
createToolbar();
-
+
// set initial input
// if(getEditor() != null){
// viewer.setInput(getEditor().getEditorInput());
// }
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#getInitialSelection()
*/
@@ -119,8 +119,8 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
protected ISelection getInitialSelection() {
if(getEditor() != null){
return new StructuredSelection(getEditor().getEditorInput());
- }
-
+ }
+
return super.getInitialSelection();
}
@@ -129,73 +129,73 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
toolBarManager.add(showAllElementsAction);
toolBarManager.add(hideAllElementsAction);
}
-
+
/*
* TODO add to the views menu
*/
protected void createMenu(){
MenuManager menuManager = new MenuManager();
menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-
+
getSite().registerContextMenu(menuManager, viewer);
// FIXME for some reason this is not working
menuManager.add(showAllElementsAction);
menuManager.add(hideAllElementsAction);
-
+
Control control = viewer.getControl();
Menu menu = menuManager.createContextMenu(control);
-
- control.setMenu(menu);
+
+ control.setMenu(menu);
}
/** {@inheritDoc} */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if(EditorUtil.getActiveEditor() == null){
+ @Override
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ if(AbstractUtility.getActiveEditor() == null){
showEmptyPage();
return;
}
-
+
if(part instanceof BulkEditor){
showEmptyPage();
return;
}
-
+
if(part instanceof AbstractGraphKeyEditor){
showEmptyPage();
return;
}
-
+
if(part instanceof DefinedTermEditor){
showEmptyPage();
return;
}
-
+
if(part instanceof MultiPageTaxonEditor){
if(! part.equals(this.part)){
IEditorInput input = ((IEditorPart) part).getEditorInput();
featureNodeContainerCache.clear();
showViewer(part, new StructuredSelection(input));
}
- showViewer();
}
}
-
+
/**
- *
+ *
* @author n.hoffmann
* @created May 28, 2010
* @version 1.0
*/
protected class ToggleDescriptionAction extends Action{
- private boolean expanded;
-
+ private final boolean expanded;
+
public ToggleDescriptionAction(boolean expand){
- super(null, Action.AS_PUSH_BUTTON);
+ super(null, IAction.AS_PUSH_BUTTON);
expanded = expand;
setImageAndTooltip();
}
-
+
private void setImageAndTooltip(){
setImageDescriptor(new ImageDescriptor() {
@Override
@@ -205,11 +205,11 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
return ImageResources.getImage(resource).getImageData();
}
});
-
+
String toolTipText = expanded ? "Collapse all" : "Show all descriptive data";
setToolTipText(toolTipText);
}
-
+
@Override
public void run() {
if(expanded){
@@ -234,15 +234,15 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
containerTree.buildTree();
}
viewer.refresh();
-
+
if(object instanceof DescriptionElementBase){
DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
DescriptionBase description = descriptionElement.getInDescription();
FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
-
+
FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
viewer.expandToLevel(featureNodeContainer, 1);
-
+
}
if(object != null){
@@ -264,7 +264,8 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
return false;
}
}
--
2.34.1