From: n.hoffmann Date: Tue, 8 Feb 2011 11:01:46 +0000 (+0000) Subject: Some refactoring and started on implementing images for specimen. X-Git-Tag: rcp.ss-first-working-version~202 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/4c2013f09e6fa17252c657a770b31ce9a7e223b0 Some refactoring and started on implementing images for specimen. --- diff --git a/.gitattributes b/.gitattributes index 895763d8e..75499b917 100644 --- a/.gitattributes +++ b/.gitattributes @@ -82,12 +82,15 @@ taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorU taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorViewerConfiguration.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorConstants.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java -text +taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorInputTypeValues.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DeleteObjectContributionItem.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java -text +taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddDerivedUnitMediaHandler.java -text +taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitMediaOperation.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/OpenBulkEditorHandler.java -text taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/RemoveMergeCandidateHandler.java -text diff --git a/taxeditor-bulkeditor/plugin.xml b/taxeditor-bulkeditor/plugin.xml index 8131754df..905baaa9a 100644 --- a/taxeditor-bulkeditor/plugin.xml +++ b/taxeditor-bulkeditor/plugin.xml @@ -332,6 +332,45 @@ id="eu.etaxonomy.taxeditor.preferences.bulkeditor.general" name="Bulk Editor"> + + + + + + + + + + + + + + + + + + + + diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java new file mode 100644 index 000000000..fe5333c19 --- /dev/null +++ b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java @@ -0,0 +1,23 @@ + +package eu.etaxonomy.taxeditor.bulkeditor; + +import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput; + +public class PropertyTester extends org.eclipse.core.expressions.PropertyTester { + + public static final String IS_DERIVED_UNIT_EDITOR = "isDerivedUnitEditor"; + + @Override + public boolean test(Object receiver, String property, Object[] args, + Object expectedValue) { + + BulkEditor editor = (BulkEditor) receiver; + + if(IS_DERIVED_UNIT_EDITOR.equals(property)){ + return editor.getEditorInput() instanceof OccurrenceEditorInput; + } + + return false; + } + +} diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddDerivedUnitMediaHandler.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddDerivedUnitMediaHandler.java new file mode 100644 index 000000000..9b02d73e3 --- /dev/null +++ b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddDerivedUnitMediaHandler.java @@ -0,0 +1,76 @@ +// $Id$ +/** +* Copyright (C) 2007 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.bulkeditor.derivedunit.handler; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.common.NotDefinedException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.handlers.HandlerUtil; + +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.SpecimenDescription; +import eu.etaxonomy.cdm.model.description.TextData; +import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; +import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor; +import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil; +import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitMediaOperation; +import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput; +import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; +import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; + +/** + * @author n.hoffmann + * @created Feb 7, 2011 + * @version 1.0 + */ +public class AddDerivedUnitMediaHandler extends AbstractHandler { + + /* (non-Javadoc) + * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IWorkbenchPart part = HandlerUtil.getActivePart(event); + IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null; + + + IEditorPart editor = HandlerUtil.getActiveEditor(event); + IEditorInput input = editor.getEditorInput(); + + if(input instanceof OccurrenceEditorInput){ + BulkEditor bulkEditor = (BulkEditor) editor; + ISelection selection = bulkEditor.getSelectionProvider().getSelection(); + + if(selection instanceof IStructuredSelection){ + Object element = ((IStructuredSelection) selection).getFirstElement(); + if(element instanceof DerivedUnitBase){ + + try{ + AbstractPostOperation operation = new AddDerivedUnitMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnitBase) element, postOperationEnabled); + BulkEditorUtil.executeOperation(operation); + } catch (NotDefinedException e) { + BulkEditorUtil.warn(getClass(), "Command name not set."); + } + } + } + } + return null; + } + +} diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitMediaOperation.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitMediaOperation.java new file mode 100644 index 000000000..9369b16f6 --- /dev/null +++ b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitMediaOperation.java @@ -0,0 +1,100 @@ +// $Id$ +/** +* Copyright (C) 2007 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.bulkeditor.derivedunit.operation; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.operations.IUndoContext; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; + +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.SpecimenDescription; +import eu.etaxonomy.cdm.model.description.TextData; +import eu.etaxonomy.cdm.model.media.Media; +import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; +import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil; +import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; +import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; + +/** + * @author n.hoffmann + * @created Feb 7, 2011 + * @version 1.0 + */ +public class AddDerivedUnitMediaOperation extends AbstractPostOperation { + + private DerivedUnitBase derivedUnit; + + /** + * @param label + * @param undoContext + * @param postOperationEnabled + */ + public AddDerivedUnitMediaOperation(String label, IUndoContext undoContext, DerivedUnitBase derivedUnit, + IPostOperationEnabled postOperationEnabled) { + super(label, undoContext, postOperationEnabled); + + this.derivedUnit = derivedUnit; + + } + + /* (non-Javadoc) + * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) + */ + @Override + public IStatus execute(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + + DerivedUnitFacade facade; + try { + facade = DerivedUnitFacade.NewInstance(derivedUnit); + + SpecimenDescription imageGallery = facade.getDerivedUnitImageGallery(true); + + TextData element = TextData.NewInstance(Feature.IMAGE()); + + Media media = Media.NewInstance(); + + element.addMedia(media); + + imageGallery.addElement(element); + + } catch (DerivedUnitFacadeNotSupportedException e) { + BulkEditorUtil.error(getClass(), e); + } + + return postExecute(derivedUnit); + } + + /* (non-Javadoc) + * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) + */ + @Override + public IStatus redo(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) + */ + @Override + public IStatus undo(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java index 8f48fb32a..312ac49e6 100644 --- a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java +++ b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java @@ -211,12 +211,10 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements ISele */ /** {@inheritDoc} */ @Override - public void showViewer(IWorkbenchPart part, ISelection selection) { + public void showViewer(IWorkbenchPart part, IStructuredSelection selection) { this.part = part; - IStructuredSelection structuredSelection = (IStructuredSelection) selection; - - updateReferencingObjects((IdentifiableEntity) structuredSelection.getFirstElement()); + updateReferencingObjects((IdentifiableEntity) selection.getFirstElement()); } /** {@inheritDoc} */ diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java index ea55d9c77..ed249d942 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java @@ -31,7 +31,6 @@ import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditor; import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput; import eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer; import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewPart; -import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewer; import eu.etaxonomy.taxeditor.editor.view.supplementaldata.SupplementalDataViewPart; import eu.etaxonomy.taxeditor.model.AbstractUtility; @@ -197,7 +196,7 @@ public class EditorUtil extends AbstractUtility{ public static IEditorPart getActiveEditorPage(Page page){ MultiPageTaxonEditor editor = getActiveMultiPageTaxonEditor(); - return editor.getPage(page); + return editor != null ? editor.getPage(page) : null; } /** @@ -267,14 +266,18 @@ public class EditorUtil extends AbstractUtility{ *

refreshDetailsViewer

*/ public static void refreshDetailsViewer(){ - ((AbstractCdmDataViewer) getDetailsView().getViewer()).refresh(); + if(getDetailsView() != null){ + ((AbstractCdmDataViewer) getDetailsView().getViewer()).refresh(); + } } /** *

reflowDetailsViewer

*/ public static void reflowDetailsViewer(){ - ((DetailsViewer) getDetailsView().getViewer()).reflow(); + if(getDetailsView() != null){ + ((AbstractCdmDataViewer) getDetailsView().getViewer()).reflow(); + } } public static SupplementalDataViewPart getSupplementalDataView(){ @@ -282,7 +285,9 @@ public class EditorUtil extends AbstractUtility{ } public static void reflowSupplementalViewer(){ - ((AbstractCdmDataViewer) getSupplementalDataView().getViewer()).reflow(); + if(getSupplementalDataView() != null){ + ((AbstractCdmDataViewer) getSupplementalDataView().getViewer()).reflow(); + } } diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java index 59ae7296b..b2950fcea 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java @@ -85,7 +85,8 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P * @return */ private boolean hasEmptyNames(Object receiver) { - return ((TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME)).checkForEmptyNames(); + TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME); + return editor == null ? false : editor.checkForEmptyNames(); } private boolean isRelatedConcept(Object selectedElement) { diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java index 3cbdc5f0d..c34407292 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java @@ -73,7 +73,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { - newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon); + newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon, true, true, null, null); monitor.worked(20); // synonym.setSec(null); diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java index aa1640eb8..1199efb50 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java @@ -63,14 +63,16 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC return; } + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + if((part instanceof IEditorPart) || (part instanceof AbstractCdmViewPart)) { - if(((IStructuredSelection) selection).size() != 1){ + if(structuredSelection.size() != 1){ showEmptyPage(); return; } // do not show details for feature nodes TODO really? - if(((IStructuredSelection) selection).getFirstElement() instanceof FeatureNodeContainer){ + if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){ // do show the map for distributions Feature feature = ((FeatureNodeContainer) ((IStructuredSelection) selection).getFirstElement()).getFeature(); if(!feature.equals(Feature.DISTRIBUTION())){ @@ -79,7 +81,7 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC } } - showViewer(part, selection); + showViewer(part, structuredSelection); }else{ showEmptyPage(); } diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java index 4a3004b02..47051e5b7 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java @@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.editor.view.media; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; @@ -100,8 +101,8 @@ public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartCon showViewer(part, new StructuredSelection(input)); } - if(part instanceof BulkEditor){ - showViewer(part, selection); + if(part instanceof BulkEditor && selection instanceof IStructuredSelection){ + showViewer(part, (IStructuredSelection) selection); } } diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java index ba294b8ae..234dfb238 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java @@ -7,13 +7,22 @@ import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.common.NotDefinedException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.handlers.HandlerUtil; +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.SpecimenDescription; +import eu.etaxonomy.cdm.model.description.TextData; +import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; import eu.etaxonomy.cdm.model.taxon.Taxon; +import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor; +import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput; import eu.etaxonomy.taxeditor.editor.EditorUtil; import eu.etaxonomy.taxeditor.editor.TaxonEditorInput; import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation; @@ -33,14 +42,12 @@ public class AddImageGalleryHandler extends AbstractHandler { */ /** {@inheritDoc} */ public Object execute(ExecutionEvent event) throws ExecutionException { + IWorkbenchPart part = HandlerUtil.getActivePart(event); IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null; IEditorPart editor = HandlerUtil.getActiveEditor(event); - if (editor instanceof FormEditor) { - editor = ((FormEditor) editor).getActiveEditor(); - } IEditorInput input = editor.getEditorInput(); if (input instanceof TaxonEditorInput) { Taxon taxon = ((TaxonEditorInput) input).getTaxon(); diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java index 867e7bcf2..b2a16bb85 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java @@ -56,21 +56,22 @@ public class SupplementalDataViewPart extends AbstractCdmEditorViewPart { } if(((part instanceof EditorPart) || (part instanceof AbstractCdmViewPart)) && selection instanceof IStructuredSelection) { - if(((IStructuredSelection) selection).size() != 1){ + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + if(structuredSelection.size() != 1){ showEmptyPage(); return; } // do not show supplemental data for feature nodes - if(((IStructuredSelection) selection).getFirstElement() instanceof FeatureNodeContainer){ + if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){ showEmptyPage(); return; } - if(((IStructuredSelection) selection).getFirstElement() instanceof DerivedUnitFacade){ + if(structuredSelection.getFirstElement() instanceof DerivedUnitFacade){ return; } - showViewer(part, selection); + showViewer(part, structuredSelection); }else{ showEmptyPage(); } diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractCdmViewPart.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractCdmViewPart.java index 360a2f61e..4fd1f574c 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractCdmViewPart.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractCdmViewPart.java @@ -98,12 +98,12 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection * @param part a {@link org.eclipse.ui.IWorkbenchPart} object. * @param selection a {@link org.eclipse.jface.viewers.ISelection} object. */ - public void showViewer(IWorkbenchPart part, ISelection selection){ + public void showViewer(IWorkbenchPart part, IStructuredSelection selection){ this.part = part; - - IStructuredSelection structuredSelection = (IStructuredSelection) selection; + + Object element = selection.getFirstElement(); - getViewer().setInput(structuredSelection.getFirstElement()); + getViewer().setInput(element); showViewer(); }