Project

General

Profile

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

    
11
import java.util.ArrayList;
12
import java.util.List;
13

    
14
import org.eclipse.jface.wizard.IWizardPage;
15
import org.eclipse.jface.wizard.Wizard;
16

    
17
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
18
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
19
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
20
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
21
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
22
import eu.etaxonomy.taxeditor.l10n.Messages;
23
import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
24
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26

    
27
/**
28
 * @author k.luther
29
 * @since 05.10.2018
30
 *
31
 */
32
public class AvailableDistributionPerAreaStatusWizard extends Wizard implements IConversationEnabled{
33
    private ConversationHolder conversation;
34
    private final AvailableDistributionPerAreaStatusPage aPage;
35
    List<CdmPreference> prefs;
36

    
37
    public AvailableDistributionPerAreaStatusWizard() {
38
        setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
39
        // TODO if preferenceStore has elements checked load elements in wizard
40
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
41
        prefs = new ArrayList<>();
42
        List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
43
        if (distrPrefs != null){
44
            prefs.addAll(distrPrefs);
45
        }
46
        if (prefs == null || prefs.isEmpty()) {
47
            prefs = new ArrayList();
48
            prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null));
49
        }
50
        aPage = new AvailableDistributionPerAreaStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, prefs, false);
51

    
52
    }
53

    
54
    @Override
55
    public void addPages() {
56
        addPage(aPage);
57
    }
58

    
59
    @Override
60
    public IWizardPage getPage(String pageName) {
61

    
62
        return aPage;
63
    }
64

    
65
    @Override
66
    public int getPageCount() {
67
       return 1;
68
    }
69

    
70
    @Override
71
    public IWizardPage[] getPages() {
72
        IWizardPage[] pages = new IWizardPage[1];
73
        pages [0] = aPage;
74
        return pages;
75
    }
76

    
77
    @Override
78
    public String getWindowTitle() {
79

    
80
        return Messages.AvailableDistributionStatusWizard_WINDOW_TITLE;
81
    }
82

    
83
    @Override
84
    public boolean performCancel() {
85
        // TODO Auto-generated method stub
86
        return true;
87
    }
88

    
89
    @Override
90
    public boolean performFinish() {
91
        aPage.refreshActualPrefernce();
92
        PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences);
93
        PreferencesUtil.setPreferenceToDB(aPage.pref);
94
       // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
95
        PreferencesUtil.firePreferencesChanged(this.getClass());
96
        return true;
97
    }
98

    
99
    @Override
100
    public void update(CdmDataChangeMap changeEvents) {
101

    
102
    }
103

    
104
    @Override
105
    public ConversationHolder getConversationHolder() {
106
        if (conversation == null) {
107
            conversation = CdmStore.createConversation();
108
        }
109
        return conversation;
110
    }
111

    
112
}
(7-7/16)