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
.event
.EventUtility
;
18 import eu
.etaxonomy
.taxeditor
.event
.WorkbenchEventConstants
;
19 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
20 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
22 public class OrderPreferences
extends CdmPreferencePage
implements SelectionListener
{
25 protected NavigatorOrderEnum orderActivated
;
26 private Combo orderSelectionCombo
;
27 boolean isRestoreTaxonNavigator
;
30 Button activateRestoreNavigatorButton
;
31 protected Button allowOverrideButton
;
32 protected CdmPreference orderPref
;
33 protected CdmPreference nodePref
;
34 boolean override
= false;
35 protected boolean allowOverride
;
37 protected Combo showTaxonNodeWizardButton
;
38 protected Button allowOverrideShowTaxonNodeWizardButton
;
39 protected boolean isOverrideShowTaxonNodeWizard
;
40 protected boolean isAllowOverrideShowTaxonNodeWizard
;
41 protected Boolean isShowTaxonNodeWizard
;
46 protected Control
createContents(Composite parent
) {
48 isRestoreTaxonNavigator
= PreferencesUtil
.isStoreNavigatorState();
50 Composite secondComposite
= createComposite(parent
);
52 if(!isAdminPreference
) {
53 activateRestoreNavigatorButton
= new Button(secondComposite
, SWT
.CHECK
| SWT
.LEFT
);
54 activateRestoreNavigatorButton
.setText(Messages
.OrderPreferences_Restore
);
55 activateRestoreNavigatorButton
.setSelection(isRestoreTaxonNavigator
);
56 activateRestoreNavigatorButton
.addSelectionListener(new SelectionAdapter(){
58 public void widgetSelected(SelectionEvent e
) {
60 if(isRestoreTaxonNavigator
!= activateRestoreNavigatorButton
.getSelection()) {
61 isRestoreTaxonNavigator
= activateRestoreNavigatorButton
.getSelection();
69 orderSelectionCombo
= createCombo(secondComposite
, NavigatorOrderEnum
.values(), PreferencePredicate
.TaxonNodeOrder
, Messages
.OrderPreferences_Sorting
, isAdminPreference
);
73 if (orderActivated
== null){
74 orderSelectionCombo
.select(index
);
76 for (String itemLabel
: orderSelectionCombo
.getItems()){
77 if (itemLabel
.equalsIgnoreCase(orderActivated
.getLabel())){
78 orderSelectionCombo
.select(index
);
86 orderSelectionCombo
.addSelectionListener(this);
87 if (isAdminPreference
){
88 allowOverrideButton
= createAllowOverrideButton(secondComposite
);
89 allowOverrideButton
.setSelection(allowOverride
);
90 allowOverrideButton
.addSelectionListener(new SelectionAdapter(){
92 public void widgetSelected(SelectionEvent e
) {
93 allowOverride
= !allowOverride
;
99 if (orderPref
!= null && !isAdminPreference
){
100 if (!orderPref
.isAllowOverride()){
101 orderSelectionCombo
.setEnabled(false);
102 final CLabel description
= new CLabel(secondComposite
, SWT
.NULL
);
103 description
.setText(Messages
.OrderPreferencePage_NotAllowed
);
104 GridData textGrid
= createTextGridData();
105 textGrid
.verticalSpan
= 2;
106 description
.setLayoutData(textGrid
);
110 showTaxonNodeWizardButton
= createBooleanCombo(secondComposite
, SHOW
, DO_NOT_SHOW
, PreferencePredicate
.ShowTaxonNodeWizard
, "Show Taxonnode Wizard",
112 showTaxonNodeWizardButton
.setText(Messages
.DatabasePreferncesPage_Show_TaxonNodeWizard
);
113 showTaxonNodeWizardButton
.addSelectionListener(this);
116 if (isAdminPreference
){
117 allowOverrideShowTaxonNodeWizardButton
= createAllowOverrideButton(secondComposite
);
118 allowOverrideShowTaxonNodeWizardButton
.addSelectionListener(new SelectionAdapter(){
120 public void widgetSelected(SelectionEvent e
) {
121 isAllowOverrideShowTaxonNodeWizard
= allowOverrideShowTaxonNodeWizardButton
.getSelection();
125 allowOverrideShowTaxonNodeWizardButton
.setSelection(isAllowOverrideShowTaxonNodeWizard
);
127 if (!isAllowOverrideShowTaxonNodeWizard
){
128 showTaxonNodeWizardButton
.setEnabled(false);
133 if (isShowTaxonNodeWizard
== null || (!isOverrideShowTaxonNodeWizard
&& !isAdminPreference
)){
134 showTaxonNodeWizardButton
.select(0);
136 if (isShowTaxonNodeWizard
){
137 showTaxonNodeWizardButton
.select(1);
139 showTaxonNodeWizardButton
.select(2);
143 return secondComposite
;
148 public boolean performOk() {
150 PreferencesUtil
.setSortNodes(this.orderActivated
);
151 if (orderActivated
!= null){
152 PreferencesUtil
.setBooleanValue(PreferencesUtil
.createOverridePreferenceString(PreferencePredicate
.TaxonNodeOrder
.getKey()), true);
154 PreferencesUtil
.setBooleanValue(PreferencesUtil
.createOverridePreferenceString(PreferencePredicate
.TaxonNodeOrder
.getKey()), false);
156 PreferencesUtil
.setStoreNavigatorState(isRestoreTaxonNavigator
);
159 if (isAllowOverrideShowTaxonNodeWizard
){
160 if (isShowTaxonNodeWizard
!= null){
161 PreferencesUtil
.setBooleanValue(PreferencePredicate
.ShowTaxonNodeWizard
.getKey(), isShowTaxonNodeWizard
);
163 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), isOverrideShowTaxonNodeWizard
);
165 EventUtility
.postEvent(WorkbenchEventConstants
.REFRESH_NAVIGATOR
, true);
177 public void widgetSelected(SelectionEvent e
) {
179 if (e
.getSource().equals(orderSelectionCombo
)){
180 for (NavigatorOrderEnum item
: NavigatorOrderEnum
.values()){
181 if (!orderSelectionCombo
.getText().startsWith(Messages
.Preference_Use_Default
)){
182 orderActivated
= (NavigatorOrderEnum
)orderSelectionCombo
.getData(orderSelectionCombo
.getText());
184 orderActivated
= null;
188 MessageDialog
.openInformation(getShell(), null, Messages
.OrderPreferencePage_PleaseReopenNavigator
);
190 if (e
.getSource().equals(this.showTaxonNodeWizardButton
)) {
191 String text
= showTaxonNodeWizardButton
.getText();
192 if (text
.startsWith(Messages
.Preference_Use_Default
)){
193 isOverrideShowTaxonNodeWizard
= false;
194 isShowTaxonNodeWizard
= null;
196 }else if (text
.equals(SHOW
)){
197 isShowTaxonNodeWizard
= true;
198 isOverrideShowTaxonNodeWizard
= true;
200 isShowTaxonNodeWizard
= false;
201 isOverrideShowTaxonNodeWizard
= true;
212 public void widgetDefaultSelected(SelectionEvent e
) {
213 // TODO Auto-generated method stub
218 protected void performDefaults() {
219 if (!isAdminPreference
) {
220 activateRestoreNavigatorButton
.setSelection(false);
223 isRestoreTaxonNavigator
= false;
224 orderActivated
= null;
226 orderSelectionCombo
.select(0);
227 isOverrideShowTaxonNodeWizard
= false;
228 isShowTaxonNodeWizard
= null;
229 showTaxonNodeWizardButton
.select(0);
231 super.performDefaults();
235 protected void getValues(){
236 orderPref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.TaxonNodeOrder
);
237 override
= PreferencesUtil
.getOverrideForPreference(PreferencePredicate
.TaxonNodeOrder
.getKey());
238 allowOverride
= orderPref
!= null? orderPref
.isAllowOverride():true;
239 if (orderPref
== null || allowOverride
){
241 orderActivated
= NavigatorOrderEnum
.valueOf(PreferencesUtil
.getStringValue(PreferencePredicate
.TaxonNodeOrder
.getKey()));
244 orderActivated
= orderPref
.getValue()!= null? NavigatorOrderEnum
.valueOf(orderPref
.getValue()):null;
247 isOverrideShowTaxonNodeWizard
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), true) != null? PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowTaxonNodeWizard
.getKey()), true): false;
248 if (isOverrideShowTaxonNodeWizard
){
249 isShowTaxonNodeWizard
= PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowTaxonNodeWizard
.getKey(), true);
253 nodePref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.ShowTaxonNodeWizard
);
254 if (nodePref
!= null){
255 isAllowOverrideShowTaxonNodeWizard
= nodePref
.isAllowOverride();
257 isAllowOverrideShowTaxonNodeWizard
= true;