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;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.cdm.model.common.CdmBase;
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.cdm.model.description.IDescribable;
+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.IPartContentHasFactualData;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
+import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
+import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
/**
* <p>DescriptiveViewPart class.</p>
protected TreeViewer viewer;
- protected Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainerTree>();
+ /**
+ * Maps {@link FeatureNodeContainerTree} to their corresponding {@link TaxonDescritpion}.<br>
+ * This serves as input for the {@link ITreeContentProvider} of the {@link TreeViewer}
+ */
+ protected Map<DescriptionBase<?>, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<DescriptionBase<?>, FeatureNodeContainerTree>();
protected ToggleDescriptionAction showAllElementsAction;
/** {@inheritDoc} */
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if(EditorUtil.getActiveEditor() == null){
+ if(AbstractUtility.getActiveEditor() == null){
showEmptyPage();
return;
}
- if(part instanceof BulkEditor){
- showEmptyPage();
- return;
+ if(part == this){
+ return;
}
-
- if(part instanceof AbstractGraphKeyEditor){
- showEmptyPage();
- return;
+ if(part instanceof DetailsViewPart || part instanceof SupplementalDataViewPart){
+ // do not show empty page as these views are also used to edit the description selected in this view
+ return;
}
- if(part instanceof DefinedTermEditor){
- showEmptyPage();
- return;
+ if(selection instanceof IStructuredSelection
+ && ((IStructuredSelection) selection).getFirstElement() instanceof IDescribable<?>
+ && part instanceof IPartContentHasFactualData){
+ featureNodeContainerCache.clear();
+ showViewer(part, (IStructuredSelection) selection);
+ return;
}
-
- if(part instanceof MultiPageTaxonEditor){
- if(! part.equals(this.part)){
- IEditorInput input = ((IEditorPart) part).getEditorInput();
- featureNodeContainerCache.clear();
- showViewer(part, new StructuredSelection(input));
- }
- showViewer();
+ else{
+ showEmptyPage();
}
}
private final boolean expanded;
public ToggleDescriptionAction(boolean expand){
- super(null, Action.AS_PUSH_BUTTON);
+ super(null, IAction.AS_PUSH_BUTTON);
expanded = expand;
setImageAndTooltip();
}