ref #6909 Add navigator context listening
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 5 Sep 2017 16:20:21 +0000 (18:20 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 5 Sep 2017 16:20:21 +0000 (18:20 +0200)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorE4.java

index 5d563134ea7e042172b50576d5e7362ee9233ad5..274ab6ee3a000905dda379069df53aa023569304 100644 (file)
@@ -54,6 +54,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
+import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
@@ -78,7 +79,7 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  */
 public class TaxonNavigatorE4 implements
                IPostOperationEnabled, IConversationEnabled, Observer,
-               ICdmEntitySessionEnabled, ICdmChangeListener {
+               ICdmEntitySessionEnabled, ICdmChangeListener, IContextListener {
 
     private static final String RESTORING_TAXON_NAVIGATOR = Messages.TaxonNavigator_RESTORE;
 
@@ -105,6 +106,7 @@ public class TaxonNavigatorE4 implements
 
        @Inject
     public TaxonNavigatorE4() {
+           CdmStore.getContextManager().addContextListener(this);
     }
 
        @PostConstruct
@@ -120,7 +122,6 @@ public class TaxonNavigatorE4 implements
 
            viewer.setContentProvider(new TaxonNavigatorContentProviderE4());
         viewer.setLabelProvider(new TaxonNavigatorLabelProviderE4());
-        viewer.setInput(getInitialInput());
 
         //propagate selection
         selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event)));
@@ -170,6 +171,7 @@ public class TaxonNavigatorE4 implements
                    CdmApplicationState.getCurrentDataChangeService().register(this);
                }
                CdmStore.getLoginManager().addObserver(this);
+        viewer.setInput(getInitialInput());
        }
 
        /**
@@ -400,4 +402,44 @@ public class TaxonNavigatorE4 implements
          propertyPathsMap.put("childNodes", taxonNodePropertyPaths); //$NON-NLS-1$
         return propertyPathsMap;
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void contextStop(IMemento memento, IProgressMonitor monitor) {
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void contextStart(IMemento memento, IProgressMonitor monitor) {
+        if(viewer!=null){
+            init();
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void contextRefresh(IProgressMonitor monitor) {
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+    }
 }