Project

General

Profile

Download (2.29 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
import eu.etaxonomy.taxeditor.preference.CdmPreferences;
10
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
11

    
12
/**
13
 * <p>NavigatorStateManager class.</p>
14
 *
15
 * @author n.hoffmann
16
 * @created Apr 1, 2010
17
 * @version 1.0
18
 */
19
public class NavigatorStateManager extends ContextListenerAdapter {
20
	
21
	/**
22
	 * {@inheritDoc}
23
	 *
24
	 * Tries to restore the state of the taxon editor and the navigator when a context starts.
25
	 */
26
	@Override
27
	public void contextStart(IMemento memento, IProgressMonitor monitor) {
28
		TaxonNavigator navigator = NavigationUtil.getNavigator(true);
29
		if(navigator != null){
30
			navigator.init();
31
			if (PreferencesUtil.isStoreNavigatorState()){
32
				navigator.restore(memento, monitor);
33
			} else {
34
				navigator.restore(null, monitor);
35
			}
36
			
37
		}
38
	}
39
	
40
	/* (non-Javadoc)
41
	 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
42
	 */
43
	@Override
44
	public void contextRefresh(IProgressMonitor monitor) {
45
		TaxonNavigator navigator = NavigationUtil.getNavigator(true);
46
		if(navigator != null){
47
			navigator.refresh();
48
		}
49
	}
50
	
51
	/**
52
	 * {@inheritDoc}
53
	 *
54
	 * If the context
55
	 */
56
	@Override
57
	public void contextStop(IMemento memento, IProgressMonitor monitor) {
58
		saveNavigatorState(memento, monitor);
59
		clearNavigator();
60
	}
61

    
62
	/* (non-Javadoc)
63
	 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
64
	 */
65
	/** {@inheritDoc} */
66
	@Override
67
	public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
68
		saveNavigatorState(memento, monitor);
69
	
70
	}
71
	
72
	/**
73
	 * @param memento
74
	 */
75
	private void saveNavigatorState(IMemento memento, IProgressMonitor monitor) {
76
		TaxonNavigator navigator = NavigationUtil.getNavigator(false);
77
		if(navigator != null){
78
			navigator.save(memento, monitor);
79
		}
80
	}
81
	
82
	/**
83
	 * Removes all content form the TaxonNavigator
84
	 */
85
	private void clearNavigator() {
86
		TaxonNavigator navigator = NavigationUtil.getNavigator(false);
87
		if(navigator != null){
88
			navigator.clear();
89
		}
90
	}
91

    
92
}
(2-2/4)