ref #8385: fixes for preferences
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / wizard / AvailableDistributionPerAreaStatusWizard.java
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 cache.getAllTaxEditorDBPreferences();
43 List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
44 if (distrPrefs != null){
45 prefs.addAll(distrPrefs);
46 }
47 if (prefs == null || prefs.isEmpty()) {
48 prefs = new ArrayList();
49 prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null));
50 }
51 aPage = new AvailableDistributionPerAreaStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, prefs, false);
52
53 }
54
55 @Override
56 public void addPages() {
57 addPage(aPage);
58 }
59
60 @Override
61 public IWizardPage getPage(String pageName) {
62
63 return aPage;
64 }
65
66 @Override
67 public int getPageCount() {
68 return 1;
69 }
70
71 @Override
72 public IWizardPage[] getPages() {
73 IWizardPage[] pages = new IWizardPage[1];
74 pages [0] = aPage;
75 return pages;
76 }
77
78 @Override
79 public String getWindowTitle() {
80
81 return Messages.AvailableDistributionStatusWizard_WINDOW_TITLE;
82 }
83
84 @Override
85 public boolean performCancel() {
86 // TODO Auto-generated method stub
87 return true;
88 }
89
90 @Override
91 public boolean performFinish() {
92 aPage.refreshActualPrefernce();
93 PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences);
94 PreferencesUtil.setPreferenceToDB(aPage.pref);
95
96 // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
97 PreferencesUtil.firePreferencesChanged(this.getClass());
98 //EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DISTRIBUTION_PREFERENCES, true);
99 return true;
100 }
101
102 @Override
103 public void update(CdmDataChangeMap changeEvents) {
104
105 }
106
107 @Override
108 public ConversationHolder getConversationHolder() {
109 if (conversation == null) {
110 conversation = CdmStore.createConversation();
111 }
112 return conversation;
113 }
114
115 }