Project

General

Profile

« Previous | Next » 

Revision ec94a2ec

Added by Katja Luther about 3 years ago

add new class openDistributionPerAreaStatusAdminWizardHandler - continue

View differences:

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