Merge branch 'develop' of https://dev.e-taxonomy.eu/git/taxeditor into develop
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / NavigatorStateManager.java
1
2 package eu.etaxonomy.taxeditor.navigation;
3
4 import org.eclipse.core.runtime.IProgressMonitor;
5 import org.eclipse.ui.IMemento;
6
7 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
8 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
9
10 /**
11 * <p>NavigatorStateManager class.</p>
12 *
13 * @author n.hoffmann
14 * @created Apr 1, 2010
15 * @version 1.0
16 */
17 public class NavigatorStateManager extends ContextListenerAdapter {
18
19 /**
20 * {@inheritDoc}
21 *
22 * Tries to restore the state of the taxon editor and the navigator when a context starts.
23 */
24 @Override
25 public void contextStart(IMemento memento, IProgressMonitor monitor) {
26 TaxonNavigator navigator = NavigationUtil.getNavigator(true);
27 if(navigator != null){
28 navigator.init();
29 navigator.restore(memento, monitor);
30 }
31 }
32
33 /* (non-Javadoc)
34 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
35 */
36 @Override
37 public void contextRefresh(IProgressMonitor monitor) {
38 TaxonNavigator navigator = NavigationUtil.getNavigator(true);
39 if(navigator != null){
40 navigator.refresh();
41 }
42 }
43
44 /**
45 * {@inheritDoc}
46 *
47 * If the context
48 */
49 @Override
50 public void contextStop(IMemento memento, IProgressMonitor monitor) {
51 saveNavigatorState(memento, monitor);
52 clearNavigator();
53 }
54
55 /* (non-Javadoc)
56 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
57 */
58 /** {@inheritDoc} */
59 @Override
60 public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
61 saveNavigatorState(memento, monitor);
62 }
63
64 /**
65 * @param memento
66 */
67 private void saveNavigatorState(IMemento memento, IProgressMonitor monitor) {
68 TaxonNavigator navigator = NavigationUtil.getNavigator(false);
69 if(navigator != null){
70 navigator.save(memento, monitor);
71 }
72 }
73
74 /**
75 * Removes all content form the TaxonNavigator
76 */
77 private void clearNavigator() {
78 TaxonNavigator navigator = NavigationUtil.getNavigator(false);
79 if(navigator != null){
80 navigator.clear();
81 }
82 }
83
84 }