1 package eu
.etaxonomy
.taxeditor
.preference
;
3 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
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
.events
.SelectionListener
;
9 import org
.eclipse
.swt
.layout
.GridData
;
10 import org
.eclipse
.swt
.widgets
.Button
;
11 import org
.eclipse
.swt
.widgets
.Combo
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.swt
.widgets
.Control
;
15 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
16 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
17 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
18 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
20 public class OrderPreferences
extends CdmPreferencePage
implements SelectionListener
{
23 protected NavigatorOrderEnum orderActivated
;
24 private Combo orderSelectionCombo
;
25 boolean isRestoreTaxonNavigator
;
28 Button activateRestoreNavigatorButton
;
29 protected Button allowOverrideButton
;
30 protected CdmPreference orderPref
;
31 protected CdmPreference nodePref
;
32 boolean override
= false;
33 protected boolean allowOverride
;
35 protected Combo showTaxonNodeWizardButton
;
36 protected Button allowOverrideShowTaxonNodeWizardButton
;
37 protected boolean isOverrideShowTaxonNodeWizard
;
38 protected boolean isAllowOverrideShowTaxonNodeWizard
;
39 protected Boolean isShowTaxonNodeWizard
;
44 protected Control
createContents(Composite parent
) {
46 isRestoreTaxonNavigator
= PreferencesUtil
.isStoreNavigatorState();
48 Composite secondComposite
= createComposite(parent
);
50 if(!isAdminPreference
) {
51 activateRestoreNavigatorButton
= new Button(secondComposite
, SWT
.CHECK
| SWT
.LEFT
);
52 activateRestoreNavigatorButton
.setText(Messages
.OrderPreferences_Restore
);
53 activateRestoreNavigatorButton
.setSelection(isRestoreTaxonNavigator
);
54 activateRestoreNavigatorButton
.addSelectionListener(new SelectionAdapter(){
56 public void widgetSelected(SelectionEvent e
) {
58 if(isRestoreTaxonNavigator
!= activateRestoreNavigatorButton
.getSelection()) {
59 isRestoreTaxonNavigator
= activateRestoreNavigatorButton
.getSelection();
67 orderSelectionCombo
= createCombo(secondComposite
, NavigatorOrderEnum
.values(), PreferencePredicate
.TaxonNodeOrder
, Messages
.OrderPreferences_Sorting
, isAdminPreference
);
71 if (orderActivated
== null){
72 orderSelectionCombo
.select(index
);
74 for (String itemLabel
: orderSelectionCombo
.getItems()){
75 if (itemLabel
.equalsIgnoreCase(orderActivated
.getLabel())){
76 orderSelectionCombo
.select(index
);
84 orderSelectionCombo
.addSelectionListener(this);
85 if (isAdminPreference
){
86 allowOverrideButton
= createAllowOverrideButton(secondComposite
);
87 allowOverrideButton
.setSelection(allowOverride
);
88 allowOverrideButton
.addSelectionListener(new SelectionAdapter(){
90 public void widgetSelected(SelectionEvent e
) {
91 allowOverride
= !allowOverride
;
97 if (orderPref
!= null && !isAdminPreference
){
98 if (!orderPref
.isAllowOverride()){
99 orderSelectionCombo
.setEnabled(false);
100 final CLabel description
= new CLabel(secondComposite
, SWT
.NULL
);
101 description
.setText(Messages
.OrderPreferencePage_NotAllowed
);
102 GridData textGrid
= createTextGridData();
103 textGrid
.verticalSpan
= 2;
104 description
.setLayoutData(textGrid
);
108 showTaxonNodeWizardButton
= createBooleanCombo(secondComposite
, SHOW
, DO_NOT_SHOW
, PreferencePredicate
.ShowTaxonNodeWizard
, "Show Taxonnode Wizard",
110 showTaxonNodeWizardButton
.setText(Messages
.DatabasePreferncesPage_Show_TaxonNodeWizard
);
111 showTaxonNodeWizardButton
.addSelectionListener(this);
114 if (isAdminPreference
){
115 allowOverrideShowTaxonNodeWizardButton
= createAllowOverrideButton(secondComposite
);
116 allowOverrideShowTaxonNodeWizardButton
.addSelectionListener(new SelectionAdapter(){
118 public void widgetSelected(SelectionEvent e
) {
119 isAllowOverrideShowTaxonNodeWizard
= allowOverrideShowTaxonNodeWizardButton
.getSelection();
123 allowOverrideShowTaxonNodeWizardButton
.setSelection(isAllowOverrideShowTaxonNodeWizard
);
125 if (!isAllowOverrideShowTaxonNodeWizard
){
126 showTaxonNodeWizardButton
.setEnabled(false);
131 if (isShowTaxonNodeWizard
== null || (!isOverrideShowTaxonNodeWizard
&& !isAdminPreference
)){
132 showTaxonNodeWizardButton
.select(0);
134 if (isShowTaxonNodeWizard
){
135 showTaxonNodeWizardButton
.select(1);
137 showTaxonNodeWizardButton
.select(2);
141 return secondComposite
;
146 public boolean performOk() {
148 PreferencesUtil
.setSortNodes(this.orderActivated
);
149 if (orderActivated
!= null){
150 PreferencesUtil
.setBooleanValue(PreferencesUtil
.createOverridePreferenceString(PreferencePredicate
.TaxonNodeOrder
.getKey()), true);
152 PreferencesUtil
.setBooleanValue(PreferencesUtil
.createOverridePreferenceString(PreferencePredicate
.TaxonNodeOrder
.getKey()), false);
154 PreferencesUtil
.setStoreNavigatorState(isRestoreTaxonNavigator
);
157 if (isAllowOverrideShowTaxonNodeWizard
){
158 if (isShowTaxonNodeWizard
!= null){
159 PreferencesUtil
.setBooleanValue(PreferencePredicate
.ShowTaxonNodeWizard
.getKey(), isShowTaxonNodeWizard
);
161 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), isOverrideShowTaxonNodeWizard
);
174 public void widgetSelected(SelectionEvent e
) {
176 if (e
.getSource().equals(orderSelectionCombo
)){
177 for (NavigatorOrderEnum item
: NavigatorOrderEnum
.values()){
178 if (!orderSelectionCombo
.getText().startsWith(Messages
.Preference_Use_Default
)){
179 orderActivated
= (NavigatorOrderEnum
)orderSelectionCombo
.getData(orderSelectionCombo
.getText());
181 orderActivated
= null;
185 MessageDialog
.openInformation(getShell(), null, Messages
.OrderPreferencePage_PleaseReopenNavigator
);
187 if (e
.getSource().equals(this.showTaxonNodeWizardButton
)) {
188 String text
= showTaxonNodeWizardButton
.getText();
189 if (text
.startsWith(Messages
.Preference_Use_Default
)){
190 isOverrideShowTaxonNodeWizard
= false;
191 isShowTaxonNodeWizard
= null;
193 }else if (text
.equals(SHOW
)){
194 isShowTaxonNodeWizard
= true;
195 isOverrideShowTaxonNodeWizard
= true;
197 isShowTaxonNodeWizard
= false;
198 isOverrideShowTaxonNodeWizard
= true;
209 public void widgetDefaultSelected(SelectionEvent e
) {
210 // TODO Auto-generated method stub
215 protected void performDefaults() {
216 if (!isAdminPreference
) {
217 activateRestoreNavigatorButton
.setSelection(false);
220 isRestoreTaxonNavigator
= false;
221 orderActivated
= null;
223 orderSelectionCombo
.select(0);
224 isOverrideShowTaxonNodeWizard
= false;
225 isShowTaxonNodeWizard
= null;
226 showTaxonNodeWizardButton
.select(0);
228 super.performDefaults();
232 protected void getValues(){
233 orderPref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.TaxonNodeOrder
);
234 override
= PreferencesUtil
.getOverrideForPreference(PreferencePredicate
.TaxonNodeOrder
.getKey());
235 allowOverride
= orderPref
!= null? orderPref
.isAllowOverride():true;
236 if (orderPref
== null || allowOverride
){
238 orderActivated
= NavigatorOrderEnum
.valueOf(PreferencesUtil
.getStringValue(PreferencePredicate
.TaxonNodeOrder
.getKey()));
241 orderActivated
= orderPref
.getValue()!= null? NavigatorOrderEnum
.valueOf(orderPref
.getValue()):null;
244 isOverrideShowTaxonNodeWizard
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), true) != null? PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), true): false;
245 if (isOverrideShowTaxonNodeWizard
){
246 isShowTaxonNodeWizard
= PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowTaxonNodeWizard
.getKey(), true);
250 nodePref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.ShowTaxonNodeWizard
);
251 if (nodePref
!= null){
252 isAllowOverrideShowTaxonNodeWizard
= nodePref
.isAllowOverride();
254 isAllowOverrideShowTaxonNodeWizard
= true;