Project

General

Profile

Download (2.06 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(2-2/4)