latest changes from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / derivateSearch / DerivateSearchView.java
index c3e973ef0b0024613450489f2a34dd6ff14111f6..9f950fa3fbffe21c7aedfb871b02b86ab3cd00b1 100644 (file)
 package eu.etaxonomy.taxeditor.view.derivateSearch;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.part.ViewPart;
 
@@ -44,6 +47,13 @@ public class DerivateSearchView extends ViewPart implements IContextListener {
         derivateSearchCompositeController = new DerivateSearchCompositeController(parent, this);
         getSite().setSelectionProvider(derivateSearchCompositeController.getResultViewer());
         derivateSearchCompositeController.setEnabled(CdmStore.isActive());
+
+        //create context menu
+        MenuManager menuManager = new MenuManager();
+        getSite().registerContextMenu(menuManager, derivateSearchCompositeController.getResultViewer());
+        Control control = derivateSearchCompositeController.getResultViewer().getControl();
+        Menu menu = menuManager.createContextMenu(control);
+        control.setMenu(menu);
     }
 
     /* (non-Javadoc)
@@ -53,7 +63,7 @@ public class DerivateSearchView extends ViewPart implements IContextListener {
     public void setFocus() {
         derivateSearchCompositeController.setFocus();
         //make sure to bind again if maybe in another view the conversation was unbound
-        if(getConversationHolder()!=null && !getConversationHolder().isBound()){
+        if(getConversationHolder()!=null && !getConversationHolder().isClosed() && !getConversationHolder().isBound()){
             getConversationHolder().bind();
         }
     }
@@ -93,6 +103,7 @@ public class DerivateSearchView extends ViewPart implements IContextListener {
     private void initConversation(){
         if(conversationHolder==null){
             conversationHolder = CdmStore.createConversation();
+            derivateSearchCompositeController.setConversation(conversationHolder);
         }
     }
 
@@ -101,9 +112,6 @@ public class DerivateSearchView extends ViewPart implements IContextListener {
      */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
-        if(getConversationHolder()!=null && getConversationHolder().isBound() && !getConversationHolder().isClosed()) {
-            getConversationHolder().close();
-        }
     }
 
     /**