import eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.metadata.PublishEnum;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.PublishFlagLocalPreference;
import eu.etaxonomy.taxeditor.store.CdmStore;
@Override
public boolean performOk() {
- if (pref == null){
+ if (!isApply()){
return true;
}
+ ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+ if (controller == null){
+ return false;
+ }
+ IPreferenceService service = controller.getPreferenceService();
String text = publishFlagBehaviour.getText();
+ // default -> delete preference
+ if(text.equals(Messages.Preference_Use_Default)){
+ service.remove(pref.getKey());
+ PreferencesUtil.updateDBPreferences();
+ return true;
+ }
+
for (PublishEnum display: PublishEnum.values()){
if (display.getLabel().equals(text)){
text = display.getKey();
CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, text);
pref.setAllowOverride(allowOverride);
- ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
- if (controller == null){
- return false;
- }
- IPreferenceService service = controller.getPreferenceService();
service.set(pref);
PreferencesUtil.updateDBPreferences();
pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
if (pref == null){
pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, ((PublishEnum)PreferencePredicate.DefaultBehaviourForPublishFlag.getDefaultValue()).getKey());
+ publishBehaviour = null;
+ allowOverride = pref.isAllowOverride();
+ }
+ else {
+ allowOverride = pref.isAllowOverride();
+ publishBehaviour = PublishEnum.valueOf(pref.getValue());
}
- allowOverride = pref.isAllowOverride();
- publishBehaviour = PublishEnum.valueOf(pref.getValue());
}