avoid widgetIsDisposed exceptions by check of control is disposed
authorKatja Luther <k.luther@bgbm.org>
Wed, 22 Nov 2017 08:49:29 +0000 (09:49 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 22 Nov 2017 09:05:39 +0000 (10:05 +0100)
# Conflicts:
# eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPartE4.java

12 files changed:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/ConceptViewPartE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/e4/ConceptGraphViewE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/FactualDataPartE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/e4/SearchResultViewE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractAccountViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/CdmDataSourceViewPartE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPartE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsPartE4.java

index ff51281c98a33ebdf37e7eb52d174aa47a269f87..9cf7d0756ff759eeb158e362cf12c76531190748 100644 (file)
@@ -271,7 +271,7 @@ public class PolytomousKeyListEditorE4 implements
 
        @Focus
        public void setFocus() {
-           if(viewer!=null && viewer.getControl()!=null){
+           if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()) {
                viewer.getControl().setFocus();
            }
            if(input!=null){
index 7c4ad3d6a1a183bedf4b8033dd7dc0d3689cdb37..cdebc23b6201bfc6b32124cddcb9024c1680f206 100644 (file)
@@ -54,7 +54,9 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
         if(activePart==thisPart){
             return;
         }
-        viewer.getControl().setEnabled(true);
+        if (!viewer.getControl().isDisposed()){
+            viewer.getControl().setEnabled(true);
+        }
         Object partObject = createPartObject(activePart);
 
         if (partObject instanceof DetailsPartE4 || partObject instanceof SupplementalDataPartE4
index d7ccb26924b83e8e223ac2bf4c80d2818916d82f..a860d103ab1d067d24d21ccdf8817d08d1e6f1ac 100644 (file)
@@ -71,7 +71,9 @@ public class ConceptGraphViewE4 extends AbstractCdmEditorPartE4 {
 
 
                if(partObject instanceof TaxonNameEditorE4){
-                   viewer.getControl().setEnabled(true);
+                   if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+                viewer.getControl().setEnabled(true);
+            }
                    TaxonEditorInputE4 input = ((TaxonNameEditorE4) partObject).getEditorInput();
                    showViewer(new StructuredSelection(input), activePart, viewer);
                }
index db527053ec2d308f629ffd0094ce0cab9736cc18..b4c3f79c5eed2ea04a2f244c4f267a996062dc4a 100644 (file)
@@ -368,7 +368,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
-        if(viewer!=null) {
+        if(viewer!=null && !viewer.getControl().isDisposed()) {
             viewer.getControl().setFocus();
             selService.setSelection(viewer.getSelection());
         }
index 1860147b4a1451b75e3b46e2055873fb3121a478..4433309e00234359c3cd2ba8b529e2ee3e1c818b 100644 (file)
@@ -130,7 +130,9 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
         }
 
         if(partObject instanceof IPartContentHasFactualData){
-            viewer.getControl().setEnabled(true);
+            if (!viewer.getControl().isDisposed()){
+                viewer.getControl().setEnabled(true);
+            }
             IStructuredSelection structuredSelection = createSelection(selection);
             if(structuredSelection==null || structuredSelection.isEmpty()){
                 showEmptyPage();
index bc87860eab91a40fac24b611abd05220ecf04442..a11b2f683c7a9e0757952e72880950e2de623082 100644 (file)
@@ -88,7 +88,9 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
            }
 
            if(partObject instanceof IPartContentHasMedia && ((IPartContentHasMedia) partObject).canAttachMedia()){
-               viewer.getControl().setEnabled(true);
+               if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+                viewer.getControl().setEnabled(true);
+            }
                IStructuredSelection structuredSelection = createSelection(selection);
                if(structuredSelection==null || structuredSelection.isEmpty()){
                    showEmptyPage();
index d5de5d9c24c6f34ae73b71c510af9fd3db1b0176..720cf5bdd5a099ce920ce37581fe8fe698a50641 100644 (file)
@@ -263,7 +263,7 @@ public class SearchResultViewE4 implements IConversationEnabled{
                    conversation_internal.bind();
                }
                // pass focus to resultViewer
-               if(resultViewer!=null && resultViewer.getControl()!=null){
+               if(resultViewer!=null && resultViewer.getControl()!=null && !resultViewer.getControl().isDisposed()){
                    resultViewer.getControl().setFocus();
                }
        }
index 8ca9525f8975755b05e16b2b0b0e01489c36d955..93ec9110c06278062084c27ba50d9989cb80aa08 100644 (file)
@@ -162,7 +162,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
 
        @Focus
        public void setFocus() {
-           if(viewer!=null){
+           if(viewer!=null && viewer.getControl() != null && !viewer.getControl().isDisposed()){
                viewer.getControl().setFocus();
            }
            if(conversation!=null){
index 682f3bc291b9fd468826e9695c5fb9a5773ff0b1..5695c0363fb487e871715fea896fe5b0d96c5588 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * 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.
 */
@@ -63,11 +63,11 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
                        viewer.setInput(getInput());
                }
        }
-       
+
        protected TableViewer viewer;
-       
+
        private IContextListener contextListener;
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
         */
@@ -76,36 +76,36 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
        public void createPartControl(Composite parent) {
                contextListener = new ContextListener();
                CdmStore.getContextManager().addContextListener(contextListener);
-               
+
                FillLayout fillLayout = new FillLayout();
                fillLayout.marginWidth = 0;
                fillLayout.marginHeight = 0;
-               fillLayout.type = SWT.VERTICAL; 
+               fillLayout.type = SWT.VERTICAL;
                parent.setLayout(fillLayout);
-               
+
                viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
                                | SWT.V_SCROLL | SWT.FULL_SELECTION);
-               
+
                getSite().setSelectionProvider(viewer);
-               
+
                createColumns(viewer);
-               
+
                MenuManager menuMgr = new MenuManager();
                menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
                getSite().registerContextMenu(menuMgr, viewer);
 
                Control control = viewer.getControl();
                Menu menu = menuMgr.createContextMenu(control);
-               control.setMenu(menu);  
-               
+               control.setMenu(menu);
+
                viewer.setContentProvider(new ArrayContentProvider());
                viewer.setLabelProvider(getLabelProvider());
-                               
+
                if(CdmStore.isActive()){
                        viewer.setInput(getInput());
                }
-               
-               
+
+
                this.addListenerObject(new FocusAdapter() {
                        /* (non-Javadoc)
                         * @see org.eclipse.swt.events.FocusAdapter#focusGained(org.eclipse.swt.events.FocusEvent)
@@ -114,11 +114,13 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
                        public void focusGained(FocusEvent e) {
                                super.focusGained(e);
                                getConversationHolder().bind();
-                               viewer.getControl().setFocus();
+                               if (!viewer.getControl().isDisposed()){
+                                   viewer.getControl().setFocus();
+                               }
                        }
                });
        }
-       
+
        /**
         * @return
         */
@@ -128,7 +130,7 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
         * @param viewer2
         */
        protected abstract void createColumns(TableViewer viewer);
-       
+
        /**
         * @return the contextListener
         */
@@ -138,7 +140,7 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
                }
                return contextListener;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
         */
@@ -156,7 +158,7 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
                        viewer.setInput(getInput());
                        viewer.refresh();
                }
-               
+
                return true;
        }
 
@@ -164,7 +166,7 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
         * @return
         */
        public abstract Collection getInput();
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.part.WorkbenchPart#dispose()
         */
@@ -174,11 +176,11 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
                super.dispose();
        }
 
-       
+
        @Override
        public void selectionChanged(IWorkbenchPart part, ISelection selection) {
                // TODO Auto-generated method stub
-               
+
        }
 
        @Override
@@ -189,14 +191,14 @@ public abstract class AbstractAccountViewPart<T> extends AbstractCdmViewPart {
        @Override
        public void createViewer(Composite parent) {
                // TODO Auto-generated method stub
-               
+
        }
 
        @Override
        public void changed(Object object) {
                // do nothing
        }
-       
+
 
        @Override
        public boolean onComplete() {
index 97c7dbd8988c98a3db2727142888cca40493d5eb..f5ee7d03195ed8ff6ac67cb31b75d04ecf3f678a 100644 (file)
@@ -241,7 +241,9 @@ public class CdmDataSourceViewPartE4 {
        /** {@inheritDoc} */
        @Focus
        public void setFocus() {
-               viewer.getControl().setFocus();
+           if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+            viewer.getControl().setFocus();
+        }
        }
 
        //FIXME E4 migrate
index 3340ed5748cfbd57b1232286a5c5cf2cfd93fb5b..3ae9096cc59b6297255b9564837b2be3fa887bf4 100644 (file)
@@ -128,8 +128,8 @@ public abstract class AbstractCdmEditorPartE4
             showEmptyPage();
             return;
         }
-        if (viewer != null && viewer.getControl()!= null && viewer.getInput() != null){
-               viewer.getControl().setEnabled(true);
+        if (viewer != null && viewer.getControl()!= null && viewer.getInput() != null && !viewer.getControl().isDisposed()){
+            viewer.getControl().setEnabled(true);
         }
         if(previousSelection==null ||
                 previousSelection!=selection){//skip redundant rendering of details view
index f3230e6dec22bd34ff4b20d9919c0edbd4c12776..6565c00f5f444e2a076158ba5f3425d4168f0f33 100644 (file)
@@ -99,7 +99,7 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
     @Override
     protected void showEmptyPage() {
         super.showEmptyPage();
-        if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()){
+        if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed() ){
             ((DetailsViewerE4)viewer).destroySections();
         }
     }