*/
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;
}
allowOverride = pref.isAllowOverride();
Composite composite = createComposite(parent);
- final CLabel description = new CLabel(composite, SWT.NULL);
+
if (!allowOverride && !isAdminPreference){
+ final CLabel description = new CLabel(composite, SWT.NULL);
description.setText(Messages.PublishFlagPreference_description_not_allowed);
description.setLayoutData(createTextGridData());
return composite;
}
- description.setText(Messages.PublishFlagPreference_description);
- description.setLayoutData(createTextGridData());
- publishFlagBehaviour = new Combo(composite, SWT.READ_ONLY);
+// description.setText(Messages.PublishFlagPreference_description);
+// description.setLayoutData(createTextGridData());
+// publishFlagBehaviour = new Combo(composite, SWT.READ_ONLY);
+ List<String> enumValues = new ArrayList();
- publishFlagBehaviour.setFont(parent.getFont());
- for(PublishEnum display: PublishEnum.values()){
- publishFlagBehaviour.add(display.getLabel());
- }
+ 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() {
}
});
- allowOverrideButton = createAllowOverrideButton(composite);
- allowOverrideButton.setText(Messages.GeneralPreference_override);
- allowOverrideButton.setSelection(allowOverride);
- allowOverrideButton.addSelectionListener(new SelectionAdapter(){
- @Override
- public void widgetSelected(SelectionEvent e) {
- allowOverride = !allowOverride;
- setApply(true);
- }
- });
-
+ if (this.isAdminPreference){
+ allowOverrideButton = createAllowOverrideButton(composite);
+ allowOverrideButton.setText(Messages.GeneralPreference_override);
+ allowOverrideButton.setSelection(allowOverride);
+ allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ allowOverride = !allowOverride;
+ setApply(true);
+ }
+ });
+ }
int index = 0;
-
- for (String itemLabel : publishFlagBehaviour.getItems()){
- if (itemLabel.equalsIgnoreCase(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;
if (publishFlagBehaviour != null){
String text = publishFlagBehaviour.getText();
for (PublishEnum display: PublishEnum.values()){
- if (display.getLabel().equals(text)){
+ if (text.startsWith(display.getLabel())){
text = display.getKey();
break;
}
}
PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
- PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), allowOverride);
+ if (pref == null || !pref.getValue().equals(text)){
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), true);
+ }else{
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), false);
+ }
}
return true;
}
@Override
protected void performDefaults() {
- publishBehaviour = (PublishEnum)PreferencePredicate.DefaultBehaviourForPublishFlag.getDefaultValue();
+ publishBehaviour = PublishEnum.valueOf(pref.getValue());
allowOverride = true;
int index = 0;
for (String itemLabel : publishFlagBehaviour.getItems()){
- if (itemLabel.equalsIgnoreCase(publishBehaviour.getLabel())){
+ if (itemLabel.startsWith(publishBehaviour.getLabel())){
publishFlagBehaviour.select(index);
break;
}