3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.taxeditor
.preference
;
13 import java
.util
.ArrayList
;
14 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
19 import org
.eclipse
.jface
.preference
.IPreferenceStore
;
20 import org
.eclipse
.ui
.IMemento
;
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
;
28 * <p>TermPreferenceUtil class.</p>
31 * @created Oct 11, 2010
34 public class TermPreferenceUtil
implements IPreferenceKeys
{
36 /** Constant <code>DISABLED_TERMS="disabledTerms"</code> */
37 protected static String DISABLED_TERMS
= "disabledTerms";
39 private class ContextListener
extends ContextListenerAdapter
{
41 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
44 public void contextStart(IMemento memento
, IProgressMonitor monitor
) {
45 TermPreferenceUtil
.this.disabledTermsMemento
= memento
.getChild(DISABLED_TERMS
);
49 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
52 public void contextStop(IMemento memento
, IProgressMonitor monitor
) {
53 // TODO Auto-generated method stub
54 super.contextStop(memento
, monitor
);
58 public IMemento disabledTermsMemento
;
60 private Map
<Class
<?
extends DefinedTermBase
>, List
<DefinedTermBase
>> preferredTermCache
;
62 private static TermPreferenceUtil instance
= new TermPreferenceUtil();
64 private TermPreferenceUtil(){
65 ContextListener contextListener
= new ContextListener();
66 CdmStore
.getContextManager().addContextListener(contextListener
);
70 * <p>Getter for the field <code>instance</code>.</p>
72 * @return a {@link eu.etaxonomy.taxeditor.preference.TermPreferenceUtil} object.
74 public static synchronized TermPreferenceUtil
getInstance(){
78 private <T
extends DefinedTermBase
> List
<T
> getPreferredTerms(T termClass
){
80 if(preferredTermCache
.containsKey(termClass
)){
81 return (List
<T
>) preferredTermCache
.get(termClass
);
83 return getPreferredTermsFromMemento(termClass
);
87 private <T
extends DefinedTermBase
> List
<T
> getPreferredTermsFromMemento(T termClass
){
88 String className
= termClass
.getClass().getName();
90 IMemento disabledTerms
= disabledTermsMemento
.getChild(className
);
92 List
<T
> preferredTerms
= new ArrayList
<T
>();
94 // List<T> terms = TermStore.getTerms(termClass);
96 for(IMemento disabledTerm
: disabledTerms
.getChildren("String")){
97 String termUuidString
= disabledTerm
.getTextData();
98 UUID termUuid
= UUID
.fromString(termUuidString
);
107 * <p>getPreferenceStore</p>
109 * @return a {@link org.eclipse.jface.preference.IPreferenceStore} object.
111 public static IPreferenceStore
getPreferenceStore() {
112 return TaxeditorStorePlugin
.getDefault().getPreferenceStore();
115 // /** @return a {@link List} containing user preferred {@link SpecimenTypeDesignationStatus} terms */
116 // public static List<SpecimenTypeDesignationStatus> getPreferredSpecimenTypeDesignationStatus() { return getPreferredTerms(TermStore.getSpecimenTypeDesignationStatus());}
118 // /** @return a {@link List} containing user preferred {@link NameTypeDesignationStatus} terms */
119 // public static List<NameTypeDesignationStatus> getPreferredNameTypeDesignationStatus() { return getPreferredTerms(TermStore.getNameTypeDesignationStatus()); }
121 // /** @return a {@link List} containing user preferred {@link TaxonRelationshipTypes} terms */
122 // public static List<TaxonRelationshipType> getPreferredTaxonRelationshipTypes() { return getPreferredTerms(TermStore.getTaxonRelationshipTypes());}
124 // /** @return a {@link List} containing user preferred {@link Feature} terms */
125 // public static List<Feature> getPreferredFeatures() { return getPreferredTerms(TermStore.getFeatures());}
127 // /** @return a {@link List} containing user preferred {@link Rank} terms */
128 // public static List<Rank> getPreferredRanks() { return getPreferredTerms(TermStore.getRanks());}
130 // /** @return a {@link List} containing user preferred {@link PresenceAbsenceTermBase} terms */
131 // public static List<PresenceAbsenceTermBase> getPreferredPresenceAbsenceTerms(){ return getPreferredTerms(TermStore.getPresenceAbsenceTerms());}
133 // /** @return a {@link List} containing user preferred {@link NomenclaturalStatusType} terms */
134 // public static List<NomenclaturalStatusType> getPreferredNomenclaturalStatusTypes(){ return getPreferredTerms(TermStore.getNomenclaturalStatusTypes());}
136 // /** @return a {@link List} containing user preferred {@link NameRelationshipType} terms */
137 // public static List<NameRelationshipType> getPreferredNameRelationshipTypes(){ return getPreferredTerms(TermStore.getNameRelationshipTypes());}
139 // /** @return a {@link List} containing user preferred {@link Language} terms */
140 // public static List<Language> getPreferredLanguages() { return getPreferredTerms(TermStore.getLanguages()); }
142 // /** @return a {@link List} containing user preferred {@link MarkerType} terms */
143 // public static List<MarkerType> getPreferredMarkerTypes() { return getPreferredTerms(TermStore.getNonTechnicalMarkerTypes()); }
145 // /** @return a {@link List} containing user preferred {@link ExtensionType} terms */
146 // public static List<ExtensionType> getPreferredExtensionTypes() { return getPreferredTerms(TermStore.getExtensionTypes()); }
148 // /** @return a {@link List} containing user preferred {@link RightsType} terms */
149 // public static List<RightsTerm> getPreferredRightsTypes() { return getPreferredTerms(TermStore.getRightsTypes());}
151 // /** @return a {@link List} containing user preferred {@link NamedAreaType} terms */
152 // public static List<NamedAreaType> getPreferredNamedAreaTypes() { return getPreferredTerms(TermStore.getNamedAreaTypes()); }
154 // /** @return a {@link List} containing user preferred {@link AnnotationType} terms */
155 // public static List<AnnotationType> getPreferredAnnotationTypes() { return getPreferredTerms(TermStore.getAnnotationTypes()); }
157 // /** @return a {@link List} containing user preferred {@link Stage} terms */
158 // public static List<Stage> getPreferredStages() { return getPreferredTerms(TermStore.getStages()); }
160 // /** @return a {@link List} containing user preferred {@link PreservationMethod} terms */
161 // public static List<PreservationMethod> getPreferredPreservationMethods() { return getPreferredTerms(TermStore.getPreservationMethods()); }
163 // /** @return a {@link List} containing user preferred {@link MeasurementUnit} terms */
164 // public static List<MeasurementUnit> getPreferredMeasurementUnits() { return getPreferredTerms(TermStore.getMeasurementUnits()); }
166 // /** @return a {@link List} containing user preferred {@link State} terms */
167 // public static List<State> getPreferredStates() { return getPreferredTerms(TermStore.getStates()); }
169 // /** @return a {@link List} containing user preferred {@link Modifier} terms */
170 // public static List<Modifier> getPreferredModifiers() { return getPreferredTerms(TermStore.getModifiers()); }
172 // /** @return a {@link List} containing user preferred {@link StatisticalMeasure} terms */
173 // public static List<StatisticalMeasure> getPreferredStatisticalMeasures() { return getPreferredTerms(TermStore.getStatisticalMeasures()); }
175 // /** @return a {@link List} containing user preferred {@link Scope} terms */
176 // public static List<Scope> getPreferredScopes() { return getPreferredTerms(TermStore.getScopes()); }