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;
}