1 package eu
.etaxonomy
.taxeditor
.preference
;
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
;
15 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
16 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
17 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
20 public class NameDetailsViewConfiguration
extends CdmPreferencePage
{
22 protected boolean isSimpleDetailsViewActivated
;
23 boolean isUseLocalSettings
;
24 protected NameDetailsConfigurator nameDetailsConfig
;
25 Composite localSettings
;
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
;
47 protected boolean isAllowOverride
;
48 private boolean isOverride
;
49 private Button showSecDetail
;
50 private Button secEnabled
;
53 protected Control
createContents(Composite parent
) {
55 if (isAllowOverride
|| isAdminPreference
){
57 final CLabel description
= new CLabel(parent
, SWT
.NULL
);
58 description
.setText(Messages
.NameDetailsViewConfiguration_description
);
60 Composite title
= createComposite(parent
);
61 nameDetailsConfig
= PreferencesUtil
.getPreferredNameDetailsConfiguration(!isAdminPreference
);
62 if (nameDetailsConfig
== null){
63 nameDetailsConfig
= new NameDetailsConfigurator(false);
66 final Button activateCheckButton
= new Button(title
, SWT
.CHECK
);
67 final Button allowLocalPreference
= createAllowOverrideButton(title
);
68 Composite dbSettings
= new Composite(parent
, SWT
.NONE
);
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(){
76 public void widgetSelected(SelectionEvent e
) {
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
);
87 if (isAdminPreference
){
88 allowLocalPreference
.setSelection(isAllowOverride
);
90 allowLocalPreference
.setSelection(isOverride
);
92 allowLocalPreference
.addSelectionListener(new SelectionAdapter(){
94 public void widgetSelected(SelectionEvent e
) {
96 if (isAdminPreference
){
97 isAllowOverride
= allowLocalPreference
.getSelection();
99 isOverride
= allowLocalPreference
.getSelection();
105 dbSettings
.setLayout(new GridLayout());
106 dbSettings
.setEnabled(isSimpleDetailsViewActivated
);
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(){
117 public void widgetSelected(SelectionEvent e
) {
119 isShowTaxon
= showTaxon
.getSelection();
120 nameDetailsConfig
.setTaxonSectionActivated(isShowTaxon
);
121 showSecDetail
.setEnabled(isShowTaxon
);
122 secEnabled
.setEnabled(isShowTaxon
);
126 showSecDetail
= new Button(dbSettings
, SWT
.CHECK
);
127 showSecDetail
.setText(Messages
.NameDetailsViewComposite_Show_SecDetail
);
129 isSecDetailsActivated
= nameDetailsConfig
.isSecDetailsActivated();
130 showSecDetail
.setSelection(isSecDetailsActivated
);
131 showSecDetail
.addSelectionListener(new SelectionAdapter(){
133 public void widgetSelected(SelectionEvent e
) {
135 isSecDetailsActivated
= showSecDetail
.getSelection();
136 nameDetailsConfig
.setSecDetailsActivated(isSecDetailsActivated
);
140 secEnabled
= new Button(dbSettings
, SWT
.CHECK
);
141 secEnabled
.setText(Messages
.NameDetailsViewComposite_SecEnabled
);
143 isSecEnabled
= nameDetailsConfig
.isSecEnabled();
144 secEnabled
.setSelection(isSecEnabled
);
145 secEnabled
.addSelectionListener(new SelectionAdapter(){
147 public void widgetSelected(SelectionEvent e
) {
149 isSecEnabled
= secEnabled
.getSelection();
150 nameDetailsConfig
.setSecEnabled(isSecEnabled
);
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(){
161 public void widgetSelected(SelectionEvent e
) {
163 isShowLSID
= showLsid
.getSelection();
164 nameDetailsConfig
.setLSIDActivated(isShowLSID
);
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(){
174 public void widgetSelected(SelectionEvent e
) {
176 isShowNomenclaturalCode
= showNomenclaturalCode
.getSelection();
177 nameDetailsConfig
.setNomenclaturalCodeActived(isShowNomenclaturalCode
);
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(){
187 public void widgetSelected(SelectionEvent e
) {
189 isShowNameCache
= showNameCache
.getSelection();
190 nameDetailsConfig
.setNameCacheActivated(isShowNameCache
);
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(){
199 public void widgetSelected(SelectionEvent e
) {
201 isShowAppendedPhrase
= showAppendedPhrase
.getSelection();
202 nameDetailsConfig
.setAppendedPhraseActivated(isShowAppendedPhrase
);
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(){
212 public void widgetSelected(SelectionEvent e
) {
214 isShowRank
= showRank
.getSelection();
215 nameDetailsConfig
.setRankActivated(isShowRank
);
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(){
224 public void widgetSelected(SelectionEvent e
) {
226 isShowEpithets
= showEpithets
.getSelection();
227 nameDetailsConfig
.setAtomisedEpithetsActivated(isShowEpithets
);
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(){
237 public void widgetSelected(SelectionEvent e
) {
239 isShowAuthorCache
= showAuthorCache
.getSelection();
240 nameDetailsConfig
.setAuthorCacheActivated(isShowAuthorCache
);
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(){
250 public void widgetSelected(SelectionEvent e
) {
252 isShowAuthorship
= showAuthorship
.getSelection();
253 nameDetailsConfig
.setAuthorshipSectionActivated(isShowAuthorship
);
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(){
263 public void widgetSelected(SelectionEvent e
) {
265 isShowNomenclaturalRef
= showNomenclaturalRef
.getSelection();
266 nameDetailsConfig
.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef
);
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(){
276 public void widgetSelected(SelectionEvent e
) {
278 isShowNomenclaturalStatus
= showNomenclaturalStatus
.getSelection();
279 nameDetailsConfig
.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus
);
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(){
289 public void widgetSelected(SelectionEvent e
) {
291 isShowProtologue
= showProtologue
.getSelection();
292 nameDetailsConfig
.setProtologueActivated(isShowProtologue
);
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(){
302 public void widgetSelected(SelectionEvent e
) {
304 isShowTypeDesignation
= showTypeDesignation
.getSelection();
305 nameDetailsConfig
.setTypeDesignationSectionActivated(isShowTypeDesignation
);
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(){
316 public void widgetSelected(SelectionEvent e
) {
318 isShowNameRelationship
= showNameRelationship
.getSelection();
319 nameDetailsConfig
.setNameRelationsSectionActivated(isShowNameRelationship
);
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(){
329 public void widgetSelected(SelectionEvent e
) {
331 isShowHybrid
= showHybrid
.getSelection();
332 nameDetailsConfig
.setHybridActivated(isShowHybrid
);
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(){
341 public void widgetSelected(SelectionEvent e
) {
343 isShowNameApprobiation
= showNameApprobiation
.getSelection();
344 nameDetailsConfig
.setNameApprobiationActivated(isShowNameApprobiation
);
347 PreferencesUtil
.recursiveSetEnabled(dbSettings
, isSimpleDetailsViewActivated
);
348 showSecDetail
.setEnabled(isShowTaxon
);
349 secEnabled
.setEnabled(isShowTaxon
);
351 final CLabel description
= new CLabel(parent
, SWT
.NULL
);
352 description
.setText(Messages
.NameDetailsViewConfiguration_description_not_available
);
362 public boolean performOk() {
363 if (nameDetailsConfig
!= null){
364 PreferencesUtil
.setStringValue(EditorPreferencePredicate
.NameDetailsView
.getKey(), nameDetailsConfig
.toString());
368 PreferencesUtil
.setBooleanValue(IPreferenceKeys
.OVERRIDE_NAME_DETAILS
, isOverride
);
375 CdmPreference nameDetailsPref
= PreferencesUtil
.getPreferenceFromDB(EditorPreferencePredicate
.NameDetailsView
);
376 isAdminPreference
= false;
377 isAllowOverride
= true;
378 if (nameDetailsPref
!= null){
379 isAllowOverride
= nameDetailsPref
.isAllowOverride();
381 isOverride
= PreferencesUtil
.getBooleanValue(IPreferenceKeys
.OVERRIDE_NAME_DETAILS
);