bug fixxing in bulk editor and referencing objects view
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / referencingobjects / ReferencingObjectsView.java
index e031272ddb76842fe8e90bbc9e1f10384018b8ab..fbd5000f4e715fd77206fe1a8a5dddeb2c0c8cd5 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.INullSelectionListener;
+import org.eclipse.ui.ISelectionListener;
 
 import org.eclipse.ui.IWorkbenchPart;
 
@@ -71,7 +72,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
  * @created 08.07.2009
  * @version 1.0
  */
-public class ReferencingObjectsView extends AbstractCdmViewPart implements INullSelectionListener{
+public class ReferencingObjectsView extends AbstractCdmViewPart{
        private static final Logger logger = Logger
                        .getLogger(ReferencingObjectsView.class);
 
@@ -81,6 +82,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        private TableViewer viewer;
 
        private String referencedObjectTitleCache;
+       private ConversationHolder conversation; 
        
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
@@ -89,7 +91,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        @Override
        public void createViewer(Composite parent) {
                selectionService.addSelectionListener(this);
-               
+               conversation = CdmStore.createConversation();
                viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
                                | SWT.V_SCROLL | SWT.FULL_SELECTION);
                createColumns(viewer);
@@ -140,10 +142,12 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
                                        @Override
                                        public void run() {
                                                if (entityUUID != null){
-                                                       ConversationHolder conversation = CdmStore.createConversation();
+                                                       
                                                        List<CdmBase> referencingObjects = getReferencingObjects(entityUUID, objectClass);
-                                                       conversation.close();
+                                                       
                                                        updateView(referencingObjects);
+                                                       
+                                                       
                                                }
                                        }
                                });
@@ -168,7 +172,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
                        referencedObject = CdmStore.getService(INameService.class).load(entity);
                } else if (objectClass.getSuperclass().equals(TaxonBase.class)){
                        referencedObject = CdmStore.getService(ITaxonService.class).load(entity);
-               } else if (objectClass.getSuperclass().equals(Reference.class)){
+               } else if (objectClass.equals(Reference.class)){
                        referencedObject = CdmStore.getService(IReferenceService.class).load(entity);
                } else if (objectClass.getSuperclass().equals(SpecimenOrObservationBase.class)){
                        referencedObject = CdmStore.getService(IOccurrenceService.class).load(entity);
@@ -223,11 +227,11 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        private void updateView(List<CdmBase> referencingObjects) {
                if (viewer != null && !viewer.getControl().isDisposed()){
                        viewer.setInput(referencingObjects);
-                       /*if (referencedObjectTitleCache != null){
+                       if (referencedObjectTitleCache != null){
                                setContentDescription("'" + referencedObjectTitleCache + "' is referenced by:");
                        } else {
                                setContentDescription("");
-                       }*/
+                       }
                        showViewer();
                }
        }
@@ -262,7 +266,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        /** {@inheritDoc} */
        @Override
        public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
-               this.part = part;
+       //      this.part = part;
                
                updateReferencingObjects(((IdentifiableEntity) selection.getFirstElement()).getUuid(),selection.getFirstElement().getClass() );
        }
@@ -270,6 +274,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        /** {@inheritDoc} */
        @Override
        public void dispose() {
+               conversation.close();
                selectionService.removePostSelectionListener(this);
                selectionService.removeSelectionListener(this);
                super.dispose();
@@ -304,6 +309,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements INull
        }
        
        public void refresh(){
+               
                selectionService.removePostSelectionListener(this);
                selectionService.removeSelectionListener(this);
                selectionService.addPostSelectionListener(this);