Project

General

Profile

Download (7.94 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.taxeditor.preference;
12

    
13
import java.util.ArrayList;
14
import java.util.List;
15
import java.util.Map;
16
import java.util.UUID;
17

    
18
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.jface.preference.IPreferenceStore;
20
import org.eclipse.ui.IMemento;
21

    
22
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
25
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
26

    
27
/**
28
 * <p>TermPreferenceUtil class.</p>
29
 *
30
 * @author n.hoffmann
31
 * @created Oct 11, 2010
32
 * @version 1.0
33
 */
34
public class TermPreferenceUtil implements IPreferenceKeys{
35
		
36
	/** Constant <code>DISABLED_TERMS="disabledTerms"</code> */
37
	protected static String DISABLED_TERMS = "disabledTerms";
38
	
39
	private class ContextListener extends ContextListenerAdapter{
40
		/* (non-Javadoc)
41
		 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
42
		 */
43
		@Override
44
		public void contextStart(IMemento memento, IProgressMonitor monitor) {
45
			TermPreferenceUtil.this.disabledTermsMemento = memento.getChild(DISABLED_TERMS);
46
		}
47
		
48
		/* (non-Javadoc)
49
		 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
50
		 */
51
		@Override
52
		public void contextStop(IMemento memento, IProgressMonitor monitor) {
53
			// TODO Auto-generated method stub
54
			super.contextStop(memento, monitor);
55
		}
56
	}
57
	
58
	public IMemento disabledTermsMemento;
59
	
60
	private Map<Class<? extends DefinedTermBase>, List<DefinedTermBase>> preferredTermCache;
61

    
62
	private static TermPreferenceUtil instance = new TermPreferenceUtil();
63
	
64
	private TermPreferenceUtil(){
65
		ContextListener contextListener = new ContextListener();
66
		CdmStore.getContextManager().addContextListener(contextListener);
67
	}
68
	
69
	/**
70
	 * <p>Getter for the field <code>instance</code>.</p>
71
	 *
72
	 * @return a {@link eu.etaxonomy.taxeditor.preference.TermPreferenceUtil} object.
73
	 */
74
	public static synchronized TermPreferenceUtil getInstance(){
75
		return instance;
76
	}
77
	
78
	private  <T extends DefinedTermBase> List<T> getPreferredTerms(T termClass){
79
		
80
		if(preferredTermCache.containsKey(termClass)){
81
			return (List<T>) preferredTermCache.get(termClass);
82
		}else{
83
			return getPreferredTermsFromMemento(termClass);
84
		}
85
	}
86
	
87
	private <T extends DefinedTermBase> List<T> getPreferredTermsFromMemento(T termClass){
88
		String className = termClass.getClass().getName();
89
		
90
		IMemento disabledTerms = disabledTermsMemento.getChild(className);
91
		
92
		List<T> preferredTerms = new ArrayList<T>();
93
		
94
//		List<T> terms = TermStore.getTerms(termClass);
95
		
96
		for(IMemento disabledTerm : disabledTerms.getChildren("String")){
97
			String termUuidString = disabledTerm.getTextData();
98
			UUID termUuid = UUID.fromString(termUuidString);
99
		}
100
		
101
		
102
		return null;
103
		
104
	}
105
	
106
	/**
107
	 * <p>getPreferenceStore</p>
108
	 *
109
	 * @return a {@link org.eclipse.jface.preference.IPreferenceStore} object.
110
	 */
111
	public static IPreferenceStore getPreferenceStore() {
112
		return TaxeditorStorePlugin.getDefault().getPreferenceStore();
113
	}
114
	
115
//	/** @return a {@link List} containing user preferred {@link SpecimenTypeDesignationStatus} terms */
116
//	public static List<SpecimenTypeDesignationStatus> getPreferredSpecimenTypeDesignationStatus() { return getPreferredTerms(TermStore.getSpecimenTypeDesignationStatus());}
117
//
118
//	/** @return a {@link List} containing user preferred {@link NameTypeDesignationStatus} terms */
119
//	public static List<NameTypeDesignationStatus> getPreferredNameTypeDesignationStatus() { return getPreferredTerms(TermStore.getNameTypeDesignationStatus()); }
120
//	
121
//	/** @return a {@link List} containing user preferred {@link TaxonRelationshipTypes} terms */
122
//	public static List<TaxonRelationshipType> getPreferredTaxonRelationshipTypes() { return getPreferredTerms(TermStore.getTaxonRelationshipTypes());}
123
//	
124
//	/** @return a {@link List} containing user preferred {@link Feature} terms */
125
//	public static List<Feature> getPreferredFeatures() { return getPreferredTerms(TermStore.getFeatures());}
126
//
127
//	/** @return a {@link List} containing user preferred {@link Rank} terms */
128
//	public static List<Rank> getPreferredRanks() { return getPreferredTerms(TermStore.getRanks());}
129
//	
130
//	/** @return a {@link List} containing user preferred  {@link PresenceAbsenceTermBase} terms */
131
//	public static List<PresenceAbsenceTermBase> getPreferredPresenceAbsenceTerms(){ return getPreferredTerms(TermStore.getPresenceAbsenceTerms());}
132
//	
133
//	/** @return a {@link List} containing user preferred  {@link NomenclaturalStatusType} terms */
134
//	public static List<NomenclaturalStatusType> getPreferredNomenclaturalStatusTypes(){	return getPreferredTerms(TermStore.getNomenclaturalStatusTypes());}
135
//	
136
//	/** @return a {@link List} containing user preferred  {@link NameRelationshipType} terms */
137
//	public static List<NameRelationshipType> getPreferredNameRelationshipTypes(){ return getPreferredTerms(TermStore.getNameRelationshipTypes());}
138
//	
139
//	/** @return a {@link List} containing user preferred  {@link Language} terms */
140
//	public static List<Language> getPreferredLanguages() { return getPreferredTerms(TermStore.getLanguages()); }
141
//	
142
//	/** @return a {@link List} containing user preferred  {@link MarkerType} terms */
143
//	public static List<MarkerType> getPreferredMarkerTypes() { return getPreferredTerms(TermStore.getNonTechnicalMarkerTypes()); }
144
//	
145
//	/** @return a {@link List} containing user preferred  {@link ExtensionType} terms */
146
//	public static List<ExtensionType> getPreferredExtensionTypes() { return getPreferredTerms(TermStore.getExtensionTypes()); }
147
//	
148
//	/** @return	a {@link List} containing user preferred  {@link RightsType} terms  */
149
//	public static List<RightsTerm> getPreferredRightsTypes() { 	return getPreferredTerms(TermStore.getRightsTypes());}
150
//	
151
//	/** @return	a {@link List} containing user preferred  {@link NamedAreaType} terms  */
152
//	public static List<NamedAreaType> getPreferredNamedAreaTypes() { return getPreferredTerms(TermStore.getNamedAreaTypes()); } 
153
//	
154
//	/** @return	a {@link List} containing user preferred  {@link AnnotationType} terms  */
155
//	public static List<AnnotationType> getPreferredAnnotationTypes() { return getPreferredTerms(TermStore.getAnnotationTypes()); } 
156
//
157
//	/** @return	a {@link List} containing user preferred  {@link Stage} terms  */
158
//	public static List<Stage> getPreferredStages() { return getPreferredTerms(TermStore.getStages()); }
159
//	
160
//	/** @return	a {@link List} containing user preferred  {@link PreservationMethod} terms  */
161
//	public static List<PreservationMethod> getPreferredPreservationMethods() { return getPreferredTerms(TermStore.getPreservationMethods()); }
162
//	
163
//	/** @return	a {@link List} containing user preferred  {@link MeasurementUnit} terms  */
164
//	public static List<MeasurementUnit> getPreferredMeasurementUnits() { return getPreferredTerms(TermStore.getMeasurementUnits()); }
165
//	
166
//	/** @return	a {@link List} containing user preferred  {@link State} terms  */
167
//	public static List<State> getPreferredStates() { return getPreferredTerms(TermStore.getStates()); }
168
//	
169
//	/** @return	a {@link List} containing user preferred  {@link Modifier} terms  */
170
//	public static List<Modifier> getPreferredModifiers() { return getPreferredTerms(TermStore.getModifiers()); }
171
//	
172
//	/** @return	a {@link List} containing user preferred  {@link StatisticalMeasure} terms  */
173
//	public static List<StatisticalMeasure> getPreferredStatisticalMeasures() { return getPreferredTerms(TermStore.getStatisticalMeasures()); }
174
//	
175
//	/** @return	a {@link List} containing user preferred  {@link Scope} terms  */
176
//	public static List<Scope> getPreferredScopes() { return getPreferredTerms(TermStore.getScopes()); }
177
}
(13-13/13)