Merge branch 'release/5.0.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / PublishFlagPreference.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.databaseAdmin.preferencePage;
10
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.custom.CLabel;
13 import org.eclipse.swt.events.SelectionAdapter;
14 import org.eclipse.swt.events.SelectionEvent;
15 import org.eclipse.swt.layout.GridLayout;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Control;
19
20 import eu.etaxonomy.cdm.api.application.ICdmRepository;
21 import eu.etaxonomy.cdm.api.service.IPreferenceService;
22 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
23 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
24 import eu.etaxonomy.taxeditor.l10n.Messages;
25 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
26 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
27 import eu.etaxonomy.taxeditor.store.CdmStore;
28
29 /**
30 * @author k.luther
31 * @since 23.03.2018
32 *
33 */
34 public class PublishFlagPreference extends CdmPreferencePage implements IE4AdminPreferencePage{
35
36 boolean setPublish;
37 boolean setNotPublish;
38 boolean inheritFromParent;
39
40 @Override
41 public void init() {
42 super.init();
43 CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
44 if (pref != null){
45 if (pref.getValue().equals(Messages.PublishFlagPreference_do_not_set)){
46 setNotPublish = true;
47 setPublish = false;
48 inheritFromParent = false;
49 }
50
51 if (pref.getValue().equals(Messages.PublishFlagPreference_inherit)){
52 setNotPublish = false;
53 setPublish = false;
54 inheritFromParent = true;
55 }
56
57 if (pref.getValue().equals(Messages.PublishFlagPreference_set)){
58 setNotPublish = false;
59 setPublish = true;
60 inheritFromParent = false;
61 }
62 }else{
63 setNotPublish = false;
64 setPublish = true;
65 inheritFromParent = false;
66 }
67
68 }
69 /**
70 * {@inheritDoc}
71 */
72 @Override
73 protected Control createContents(Composite parent) {
74 final Composite composite = new Composite(parent, SWT.NULL);
75
76 GridLayout gridLayout = new GridLayout();
77 composite.setLayout(gridLayout);
78 final CLabel description = new CLabel(composite, SWT.NULL);
79 description.setText(Messages.PublishFlagPreference_description);
80 gridLayout.numColumns = 1;
81 gridLayout.horizontalSpacing= 10;
82 gridLayout.makeColumnsEqualWidth = true;
83
84 Button setPublishFlagAsDefault = new Button(composite, SWT.RADIO);
85 setPublishFlagAsDefault.setText(Messages.PublishFlagPreference_set);
86 setPublishFlagAsDefault.setSelection(setPublish);
87 setPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
88 @Override
89 public void widgetSelected(SelectionEvent e) {
90 setPublish = !setPublish;
91 }
92 });
93 Button setNotPublishFlagAsDefault = new Button(composite, SWT.RADIO);
94 setNotPublishFlagAsDefault.setText(Messages.PublishFlagPreference_do_not_set);
95 setNotPublishFlagAsDefault.setSelection(setNotPublish);
96 setNotPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
97 @Override
98 public void widgetSelected(SelectionEvent e) {
99 setNotPublish = !setNotPublish;
100 }
101 });
102
103 Button setInheritFromParent = new Button(composite, SWT.RADIO);
104 setInheritFromParent.setText(Messages.PublishFlagPreference_inherit);
105 setInheritFromParent.setSelection(inheritFromParent);
106 setInheritFromParent.addSelectionListener(new SelectionAdapter() {
107 @Override
108 public void widgetSelected(SelectionEvent e) {
109 inheritFromParent = !inheritFromParent;
110 }
111 });
112
113 return composite;
114
115 }
116
117
118 @Override
119 public boolean performOk() {
120 String preferenceValue = null;
121 if (setPublish){
122 preferenceValue = Messages.PublishFlagPreference_set;
123 }else if (setNotPublish){
124 preferenceValue = Messages.PublishFlagPreference_do_not_set;
125 } else{
126 preferenceValue = Messages.PublishFlagPreference_inherit;
127 }
128 CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.DefaultBehaviourForPublishFlag, preferenceValue);
129 pref.setAllowOverride(true);
130
131 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
132 if (controller == null){
133 return false;
134 }
135 IPreferenceService service = controller.getPreferenceService();
136 service.set(pref);
137
138 return true;
139 }
140
141
142
143
144 }