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