*/
package eu.etaxonomy.taxeditor.preference;
-import java.util.ArrayList;
-import java.util.List;
-
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.SelectionAdapter;
Button allowOverrideButton;
protected boolean allowOverride;
+ private boolean override = true;
@Override
return composite;
}
-
-// description.setText(Messages.PublishFlagPreference_description);
-// description.setLayoutData(createTextGridData());
-// publishFlagBehaviour = new Combo(composite, SWT.READ_ONLY);
- List<String> enumValues = new ArrayList();
-
publishFlagBehaviour = createCombo(composite, PublishEnum.values(), PreferencePredicate.DefaultBehaviourForPublishFlag, Messages.PublishFlagPreference_description, isAdminPreference);
-
-// publishFlagBehaviour.setFont(parent.getFont());
-// for(PublishEnum display: PublishEnum.values()){
-// if (pref.getValue().equals(display.getKey())){
-// publishFlagBehaviour.add(display.getLabel() + " (Default)");
-// }
-// else
-// }
-
publishFlagBehaviour.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
setApply(true);
+ if (!publishFlagBehaviour.getText().startsWith(Messages.Preference_Use_Default)){
+ publishBehaviour = (PublishEnum)publishFlagBehaviour.getData(publishFlagBehaviour.getText());
+ }else{
+ publishBehaviour = null;
+ }
+
}
@Override
});
if (this.isAdminPreference){
allowOverrideButton = createAllowOverrideButton(composite);
- allowOverrideButton.setText(Messages.GeneralPreference_override);
allowOverrideButton.setSelection(allowOverride);
allowOverrideButton.addSelectionListener(new SelectionAdapter(){
@Override
}
int index = 0;
-
- for (String itemLabel : publishFlagBehaviour.getItems()){
- if (itemLabel.startsWith(publishBehaviour.getLabel())){
- publishFlagBehaviour.select(index);
- break;
+ if(publishBehaviour==null){
+ publishFlagBehaviour.select(0);
+ }
+ else{
+ for (String itemLabel : publishFlagBehaviour.getItems()){
+ if (itemLabel.startsWith(publishBehaviour.getLabel())){
+ publishFlagBehaviour.select(index);
+ break;
+ }
+ index++;
}
- index++;
}
return composite;
@Override
public boolean performOk() {
- if (publishFlagBehaviour != null){
- String text = publishFlagBehaviour.getText();
- for (PublishEnum display: PublishEnum.values()){
- if (text.startsWith(display.getLabel())){
- text = display.getKey();
- break;
+ if (isApply()){
+ if (publishBehaviour != null){
+ String text = publishFlagBehaviour.getText();
+ for (PublishEnum display: PublishEnum.values()){
+ if (text.startsWith(display.getLabel())){
+ text = display.getKey();
+ break;
+ }
+ }
+ PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
+ if (pref == null || !pref.getValue().equals(text)){
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), true);
}
- }
- PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
- if (pref == null || !pref.getValue().equals(text)){
- PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), true);
}else{
PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), false);
}
@Override
public void getValues(){
-
+ publishBehaviour = null;
try{
- publishBehaviour = PublishEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), true));
+ String publishString = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), true);
+
+ if (publishString != null){
+ publishBehaviour = PublishEnum.valueOf(publishString);
+ }
}catch (IllegalArgumentException e){
publishBehaviour = PublishEnum.InheritFromParent;
}
+
+ override = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()));
+ if (!override){
+ publishBehaviour = null;
+ }
}
@Override
protected void performDefaults() {
- publishBehaviour = PublishEnum.valueOf(pref.getValue());
+ publishBehaviour = null;
allowOverride = true;
int index = 0;
+
for (String itemLabel : publishFlagBehaviour.getItems()){
- if (itemLabel.startsWith(publishBehaviour.getLabel())){
+ if (itemLabel.startsWith(Messages.Preference_Use_Default)){
publishFlagBehaviour.select(index);
break;
}
index++;
}
-
+ if (isAdminPreference){
+ allowOverrideButton.setSelection(allowOverride);
+ }
+ setApply(true);
super.performDefaults();
}
+
}