Revision ec94a2ec
Added by Katja Luther about 3 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusWizard.java | ||
---|---|---|
13 | 13 |
|
14 | 14 |
import org.eclipse.jface.wizard.IWizardPage; |
15 | 15 |
import org.eclipse.jface.wizard.Wizard; |
16 |
import org.osgi.service.prefs.BackingStoreException; |
|
17 |
import org.osgi.service.prefs.Preferences; |
|
16 | 18 |
|
17 | 19 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
18 | 20 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
19 | 21 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
20 | 22 |
import eu.etaxonomy.cdm.model.metadata.CdmPreference; |
23 |
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey; |
|
21 | 24 |
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate; |
25 |
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject; |
|
22 | 26 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; |
23 | 27 |
import eu.etaxonomy.taxeditor.l10n.Messages; |
24 | 28 |
import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache; |
... | ... | |
34 | 38 |
private ConversationHolder conversation; |
35 | 39 |
private final AvailableDistributionPerAreaStatusPage aPage; |
36 | 40 |
List<CdmPreference> prefs; |
41 |
private boolean isAdmin; |
|
37 | 42 |
|
38 |
public AvailableDistributionPerAreaStatusWizard() { |
|
43 |
|
|
44 |
public AvailableDistributionPerAreaStatusWizard(boolean isAdmin) { |
|
45 |
this.isAdmin = isAdmin; |
|
39 | 46 |
setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE); |
40 | 47 |
// TODO if preferenceStore has elements checked load elements in wizard |
41 |
CdmPreferenceCache cache = CdmPreferenceCache.instance(); |
|
42 |
prefs = new ArrayList<>(); |
|
43 |
cache.getAllTaxEditorDBPreferences(); |
|
44 |
List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey()); |
|
45 |
if (distrPrefs != null){ |
|
46 |
prefs.addAll(distrPrefs); |
|
47 |
} |
|
48 |
if (prefs == null || prefs.isEmpty()) { |
|
49 |
prefs = new ArrayList(); |
|
50 |
prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null)); |
|
48 |
if (isAdmin){ |
|
49 |
CdmPreferenceCache cache = CdmPreferenceCache.instance(); |
|
50 |
prefs = new ArrayList<>(); |
|
51 |
cache.getAllTaxEditorDBPreferences(); |
|
52 |
List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey()); |
|
53 |
if (distrPrefs != null){ |
|
54 |
prefs.addAll(distrPrefs); |
|
55 |
} |
|
56 |
if (prefs == null || prefs.isEmpty()) { |
|
57 |
prefs = new ArrayList(); |
|
58 |
prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null)); |
|
59 |
} |
|
60 |
}else{ |
|
61 |
Preferences predicateNode = PreferencesUtil.getEditorPreferences().node(PreferencePredicate.AvailableDistributionStatus.getKey()); |
|
62 |
try { |
|
63 |
if (prefs == null){ |
|
64 |
prefs = new ArrayList(); |
|
65 |
} |
|
66 |
for (String childName: predicateNode.childrenNames()){ |
|
67 |
PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(childName), PreferencePredicate.AvailableDistributionStatus); |
|
68 |
prefs.add(CdmPreference.NewInstance(key, predicateNode.get(childName, null))); |
|
69 |
} |
|
70 |
} catch (BackingStoreException e) { |
|
71 |
// TODO Auto-generated catch block |
|
72 |
e.printStackTrace(); |
|
73 |
} |
|
51 | 74 |
} |
52 | 75 |
aPage = new AvailableDistributionPerAreaStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, prefs, false); |
53 | 76 |
|
77 |
|
|
54 | 78 |
} |
55 | 79 |
|
56 | 80 |
public void setActualPref(CdmPreference pref){ |
... | ... | |
100 | 124 |
@Override |
101 | 125 |
public boolean performFinish() { |
102 | 126 |
aPage.refreshActualPrefernce(); |
103 |
PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences); |
|
104 |
PreferencesUtil.setPreferenceToDB(aPage.pref); |
|
127 |
if (isAdmin){ |
|
128 |
PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences); |
|
129 |
PreferencesUtil.setPreferenceToDB(aPage.pref); |
|
130 |
}else{ |
|
131 |
|
|
132 |
//how to create a new preference(s) or save to a list???? |
|
133 |
// PreferencesUtil.getEditorPreferences().put(PreferencesUtil.createSubjectStringForChildNodes("", aPage.pref), aPage.getPreference().getValue()); |
|
134 |
} |
|
135 |
|
|
105 | 136 |
|
106 | 137 |
// PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override); |
107 | 138 |
PreferencesUtil.firePreferencesChanged(this.getClass()); |
Also available in: Unified diff
add new class openDistributionPerAreaStatusAdminWizardHandler - continue