From: Patrick Plitzner Date: Mon, 2 Nov 2015 13:42:54 +0000 (+0100) Subject: Fix exception when using DerivativeEditor when no "real" RCP editor is X-Git-Tag: 3.12.0^2~62^2~7^2~15 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/af0c658734dd2506b889524e9b68724e1361b17c?ds=sidebyside Fix exception when using DerivativeEditor when no "real" RCP editor is avtice --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java index a50561e50..ed5059677 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java @@ -569,16 +569,19 @@ public abstract class AbstractFormSection extends Section implements ISe */ @Override public ConversationHolder getConversationHolder() { - if(getParentElement() instanceof RootElement || getParentElement() == null){ - - IEditorPart activeEditor = AbstractUtility.getActiveEditor(); - if(activeEditor instanceof IConversationEnabled){ - ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder(); - return conversation; - } - }else if(getParentElement() instanceof IConversationEnabled){ - return ((IConversationEnabled) getParentElement()).getConversationHolder(); - } + if(AbstractUtility.getActivePart() instanceof IConversationEnabled){ + return ((IConversationEnabled) AbstractUtility.getActivePart()).getConversationHolder(); + } + if(getParentElement() instanceof RootElement || getParentElement() == null){ + + IEditorPart activeEditor = AbstractUtility.getActiveEditor(); + if(activeEditor instanceof IConversationEnabled){ + ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder(); + return conversation; + } + }else if(getParentElement() instanceof IConversationEnabled){ + return ((IConversationEnabled) getParentElement()).getConversationHolder(); + } MessagingUtils.messageDialog("Could not get conversation for AbstractFormSection", getClass(), "There is an error in the implementation. There should have been an active editor but it wasn't", new IllegalArgumentException()); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java index d3f200924..0f0df4522 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java @@ -18,6 +18,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPart; +import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.description.Feature; @@ -52,7 +53,7 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC @Override protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection){ - if(AbstractUtility.getActiveEditor() == null){ + if(AbstractUtility.getActiveEditor() == null && !(AbstractUtility.getActivePart() instanceof IConversationEnabled)){ showEmptyPage(); return; }