use same saving strategie for local name details pref as for db name details pref
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / NameDetailsViewConfiguration.java
1 package eu.etaxonomy.taxeditor.preference;
2
3
4 import org.eclipse.swt.SWT;
5 import org.eclipse.swt.custom.CLabel;
6 import org.eclipse.swt.events.SelectionAdapter;
7 import org.eclipse.swt.events.SelectionEvent;
8 import org.eclipse.swt.layout.GridData;
9 import org.eclipse.swt.layout.GridLayout;
10 import org.eclipse.swt.widgets.Button;
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13 import org.eclipse.swt.widgets.Label;
14
15 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
16 import eu.etaxonomy.taxeditor.l10n.Messages;
17 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
18
19
20 public class NameDetailsViewConfiguration extends CdmPreferencePage {
21
22 protected boolean isSimpleDetailsViewActivated;
23 boolean isUseLocalSettings;
24 protected NameDetailsConfigurator nameDetailsConfig;
25 Composite localSettings ;
26
27
28 protected boolean isShowTaxon;
29 protected boolean isShowNameApprobiation ;
30 protected boolean isShowHybrid;
31 protected boolean isShowNameRelationship;
32 protected boolean isShowTypeDesignation;
33 protected boolean isShowProtologue;
34 protected boolean isShowNomenclaturalStatus;
35 protected boolean isShowNomenclaturalRef;
36 protected boolean isShowAuthorship;
37 protected boolean isShowAuthorCache;
38 protected boolean isShowEpithets;
39 protected boolean isShowRank;
40 protected boolean isShowAppendedPhrase;
41 protected boolean isShowNameCache;
42 protected boolean isShowNomenclaturalCode;
43 protected boolean isShowLSID;
44 protected boolean isSecEnabled;
45 protected boolean isSecDetailsActivated;
46
47 protected boolean isAllowOverride;
48 private boolean isOverride;
49 private Button showSecDetail;
50 private Button secEnabled;
51
52 @Override
53 protected Control createContents(Composite parent) {
54
55 if (isAllowOverride || isAdminPreference ){
56
57 final CLabel description = new CLabel(parent, SWT.NULL);
58 description.setText(Messages.NameDetailsViewConfiguration_description);
59
60 Composite title = createComposite(parent);
61 nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(!isAdminPreference);
62 if (nameDetailsConfig == null){
63 nameDetailsConfig = new NameDetailsConfigurator(false);
64 }
65
66 final Button activateCheckButton = new Button(title, SWT.CHECK);
67 final Button allowLocalPreference = createAllowOverrideButton(title);
68 Composite dbSettings = new Composite(parent, SWT.NONE);
69
70 activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
71 activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
72 isSimpleDetailsViewActivated = nameDetailsConfig.isSimpleDetailsViewActivated();
73 activateCheckButton.setSelection(isSimpleDetailsViewActivated);
74 activateCheckButton.addSelectionListener(new SelectionAdapter(){
75 @Override
76 public void widgetSelected(SelectionEvent e) {
77 setApply(true);
78 isSimpleDetailsViewActivated = activateCheckButton.getSelection();
79 nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
80 dbSettings.setEnabled(isSimpleDetailsViewActivated);
81 PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
82 showSecDetail.setEnabled(isShowTaxon);
83 secEnabled.setEnabled(isShowTaxon);
84 }
85 });
86
87 if (isAdminPreference){
88 allowLocalPreference.setSelection(isAllowOverride);
89 }else{
90 allowLocalPreference.setSelection(isOverride);
91 }
92 allowLocalPreference.addSelectionListener(new SelectionAdapter(){
93 @Override
94 public void widgetSelected(SelectionEvent e) {
95 setApply(true);
96 if (isAdminPreference){
97 isAllowOverride = allowLocalPreference.getSelection();
98 }else{
99 isOverride = allowLocalPreference.getSelection();
100 }
101
102 }
103 });
104
105 dbSettings.setLayout(new GridLayout());
106 dbSettings.setEnabled(isSimpleDetailsViewActivated);
107
108
109 Label separator= new Label(dbSettings, SWT.HORIZONTAL | SWT.SEPARATOR);
110 separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
111 final Button showTaxon = new Button(dbSettings, SWT.CHECK);
112 showTaxon.setText(Messages.NameDetailsViewComposite_Show_Taxon);
113 isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
114 showTaxon.setSelection(isShowTaxon);
115 showTaxon.addSelectionListener(new SelectionAdapter(){
116 @Override
117 public void widgetSelected(SelectionEvent e) {
118 setApply(true);
119 isShowTaxon = showTaxon.getSelection();
120 nameDetailsConfig.setTaxonSectionActivated(isShowTaxon);
121 showSecDetail.setEnabled(isShowTaxon);
122 secEnabled.setEnabled(isShowTaxon);
123 }
124 });
125
126 showSecDetail = new Button(dbSettings, SWT.CHECK);
127 showSecDetail.setText(Messages.NameDetailsViewComposite_Show_SecDetail);
128
129 isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
130 showSecDetail.setSelection(isSecDetailsActivated);
131 showSecDetail.addSelectionListener(new SelectionAdapter(){
132 @Override
133 public void widgetSelected(SelectionEvent e) {
134 setApply(true);
135 isSecDetailsActivated = showSecDetail.getSelection();
136 nameDetailsConfig.setSecDetailsActivated(isSecDetailsActivated);
137 }
138 });
139
140 secEnabled = new Button(dbSettings, SWT.CHECK);
141 secEnabled.setText(Messages.NameDetailsViewComposite_SecEnabled);
142
143 isSecEnabled = nameDetailsConfig.isSecEnabled();
144 secEnabled.setSelection(isSecEnabled);
145 secEnabled.addSelectionListener(new SelectionAdapter(){
146 @Override
147 public void widgetSelected(SelectionEvent e) {
148 setApply(true);
149 isSecEnabled = secEnabled.getSelection();
150 nameDetailsConfig.setSecEnabled(isSecEnabled);
151 }
152 });
153
154
155 final Button showLsid = new Button(dbSettings, SWT.CHECK);
156 showLsid.setText(Messages.NameDetailsViewComposite_Show_LSID);
157 isShowLSID = nameDetailsConfig.isLSIDActivated();
158 showLsid.setSelection(isShowLSID);
159 showLsid.addSelectionListener(new SelectionAdapter(){
160 @Override
161 public void widgetSelected(SelectionEvent e) {
162 setApply(true);
163 isShowLSID = showLsid.getSelection();
164 nameDetailsConfig.setLSIDActivated(isShowLSID);
165 }
166 });
167
168 final Button showNomenclaturalCode = new Button(dbSettings, SWT.CHECK);
169 showNomenclaturalCode.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalCode);
170 isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
171 showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
172 showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
173 @Override
174 public void widgetSelected(SelectionEvent e) {
175 setApply(true);
176 isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
177 nameDetailsConfig.setNomenclaturalCodeActived(isShowNomenclaturalCode);
178 }
179 });
180
181 final Button showNameCache = new Button(dbSettings, SWT.CHECK);
182 showNameCache.setText(Messages.NameDetailsViewComposite_Show_NameCache);
183 isShowNameCache = nameDetailsConfig.isNameCacheActivated();
184 showNameCache.setSelection(isShowNameCache);
185 showNameCache.addSelectionListener(new SelectionAdapter(){
186 @Override
187 public void widgetSelected(SelectionEvent e) {
188 setApply(true);
189 isShowNameCache = showNameCache.getSelection();
190 nameDetailsConfig.setNameCacheActivated(isShowNameCache);
191 }
192 });
193 final Button showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
194 isShowAppendedPhrase= nameDetailsConfig.isAppendedPhraseActivated();
195 showAppendedPhrase.setText(Messages.NameDetailsViewComposite_Show_AppendedPhrase);
196 showAppendedPhrase.setSelection(isShowAppendedPhrase);
197 showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
198 @Override
199 public void widgetSelected(SelectionEvent e) {
200 setApply(true);
201 isShowAppendedPhrase = showAppendedPhrase.getSelection();
202 nameDetailsConfig.setAppendedPhraseActivated(isShowAppendedPhrase);
203 }
204 });
205
206 final Button showRank = new Button(dbSettings, SWT.CHECK);
207 isShowRank = nameDetailsConfig.isRankActivated();
208 showRank.setText(Messages.NameDetailsViewComposite_Show_Rank);
209 showRank.setSelection(isShowRank);
210 showRank.addSelectionListener(new SelectionAdapter(){
211 @Override
212 public void widgetSelected(SelectionEvent e) {
213 setApply(true);
214 isShowRank = showRank.getSelection();
215 nameDetailsConfig.setRankActivated(isShowRank);
216 }
217 });
218 final Button showEpithets = new Button(dbSettings, SWT.CHECK);
219 isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
220 showEpithets.setText(Messages.NameDetailsViewComposite_Show_AtomisedEpithets);
221 showEpithets.setSelection(isShowEpithets);
222 showEpithets.addSelectionListener(new SelectionAdapter(){
223 @Override
224 public void widgetSelected(SelectionEvent e) {
225 setApply(true);
226 isShowEpithets = showEpithets.getSelection();
227 nameDetailsConfig.setAtomisedEpithetsActivated(isShowEpithets);
228 }
229 });
230
231 final Button showAuthorCache = new Button(dbSettings, SWT.CHECK);
232 isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
233 showAuthorCache.setText(Messages.NameDetailsViewComposite_Show_AuthorCache);
234 showAuthorCache.setSelection(isShowAuthorCache);
235 showAuthorCache.addSelectionListener(new SelectionAdapter(){
236 @Override
237 public void widgetSelected(SelectionEvent e) {
238 setApply(true);
239 isShowAuthorCache = showAuthorCache.getSelection();
240 nameDetailsConfig.setAuthorCacheActivated(isShowAuthorCache);
241 }
242 });
243
244 final Button showAuthorship = new Button(dbSettings, SWT.CHECK);
245 isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
246 showAuthorship.setText(Messages.NameDetailsViewComposite_Show_Author);
247 showAuthorship.setSelection(isShowAuthorship);
248 showAuthorship.addSelectionListener(new SelectionAdapter(){
249 @Override
250 public void widgetSelected(SelectionEvent e) {
251 setApply(true);
252 isShowAuthorship = showAuthorship.getSelection();
253 nameDetailsConfig.setAuthorshipSectionActivated(isShowAuthorship);
254 }
255 });
256
257 final Button showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
258 isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
259 showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
260 showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
261 showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
262 @Override
263 public void widgetSelected(SelectionEvent e) {
264 setApply(true);
265 isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
266 nameDetailsConfig.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
267 }
268 });
269
270 final Button showNomenclaturalStatus = new Button(dbSettings, SWT.CHECK);
271 isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
272 showNomenclaturalStatus.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus);
273 showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
274 showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
275 @Override
276 public void widgetSelected(SelectionEvent e) {
277 setApply(true);
278 isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
279 nameDetailsConfig.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
280 }
281 });
282
283 final Button showProtologue = new Button(dbSettings, SWT.CHECK);
284 isShowProtologue = nameDetailsConfig.isProtologueActivated();
285 showProtologue.setText(Messages.NameDetailsViewComposite_Show_Protologue);
286 showProtologue.setSelection(isShowProtologue);
287 showProtologue.addSelectionListener(new SelectionAdapter(){
288 @Override
289 public void widgetSelected(SelectionEvent e) {
290 setApply(true);
291 isShowProtologue = showProtologue.getSelection();
292 nameDetailsConfig.setProtologueActivated(isShowProtologue);
293 }
294 });
295
296 final Button showTypeDesignation = new Button(dbSettings, SWT.CHECK);
297 isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
298 showTypeDesignation.setText(Messages.NameDetailsViewComposite_Show_TypeDesignation);
299 showTypeDesignation.setSelection(isShowTypeDesignation);
300 showTypeDesignation.addSelectionListener(new SelectionAdapter(){
301 @Override
302 public void widgetSelected(SelectionEvent e) {
303 setApply(true);
304 isShowTypeDesignation = showTypeDesignation.getSelection();
305 nameDetailsConfig.setTypeDesignationSectionActivated(isShowTypeDesignation);
306 }
307 });
308
309
310 final Button showNameRelationship = new Button(dbSettings, SWT.CHECK);
311 isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
312 showNameRelationship.setText(Messages.NameDetailsViewComposite_Show_Namerelationships);
313 showNameRelationship.setSelection(isShowNameRelationship);
314 showNameRelationship.addSelectionListener(new SelectionAdapter(){
315 @Override
316 public void widgetSelected(SelectionEvent e) {
317 setApply(true);
318 isShowNameRelationship = showNameRelationship.getSelection();
319 nameDetailsConfig.setNameRelationsSectionActivated(isShowNameRelationship);
320 }
321 });
322
323 final Button showHybrid = new Button(dbSettings, SWT.CHECK);
324 isShowHybrid = nameDetailsConfig.isHybridActivated();
325 showHybrid.setText(Messages.NameDetailsViewComposite_Show_Hybrid);
326 showHybrid.setSelection(isShowHybrid);
327 showHybrid.addSelectionListener(new SelectionAdapter(){
328 @Override
329 public void widgetSelected(SelectionEvent e) {
330 setApply(true);
331 isShowHybrid = showHybrid.getSelection();
332 nameDetailsConfig.setHybridActivated(isShowHybrid);
333 }
334 });
335 final Button showNameApprobiation = new Button(dbSettings, SWT.CHECK);
336 isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
337 showNameApprobiation.setText(Messages.NameDetailsViewComposite_Show_NameApprobiation);
338 showNameApprobiation.setSelection(isShowNameApprobiation);
339 showNameApprobiation.addSelectionListener(new SelectionAdapter(){
340 @Override
341 public void widgetSelected(SelectionEvent e) {
342 setApply(true);
343 isShowNameApprobiation = showNameApprobiation.getSelection();
344 nameDetailsConfig.setNameApprobiationActivated(isShowNameApprobiation);
345 }
346 });
347 PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
348 showSecDetail.setEnabled(isShowTaxon);
349 secEnabled.setEnabled(isShowTaxon);
350 }else{
351 final CLabel description = new CLabel(parent, SWT.NULL);
352 description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
353 }
354
355
356
357
358 return parent;
359 }
360
361 @Override
362 public boolean performOk() {
363 if (nameDetailsConfig != null){
364 PreferencesUtil.setStringValue(EditorPreferencePredicate.NameDetailsView.getKey(), nameDetailsConfig.toString());
365 }
366
367
368 PreferencesUtil.setBooleanValue(IPreferenceKeys.OVERRIDE_NAME_DETAILS, isOverride);
369 return true;
370
371 }
372
373 @Override
374 public void init(){
375 CdmPreference nameDetailsPref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.NameDetailsView);
376 isAdminPreference = false;
377 isAllowOverride = true;
378 if (nameDetailsPref != null){
379 isAllowOverride = nameDetailsPref.isAllowOverride();
380 }
381 isOverride = PreferencesUtil.getBooleanValue(IPreferenceKeys.OVERRIDE_NAME_DETAILS);
382 }
383
384 }