*/
package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
import eu.etaxonomy.cdm.api.application.ICdmRepository;
import eu.etaxonomy.cdm.api.service.IPreferenceService;
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.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.preference.PublishFlagLocalPreference;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @since 23.03.2018
*
*/
-public class PublishFlagPreference extends CdmPreferencePage implements IE4AdminPreferencePage{
-
- boolean setPublish;
- boolean setNotPublish;
- boolean inheritFromParent;
+public class PublishFlagPreference extends PublishFlagLocalPreference implements IE4AdminPreferencePage{
- String do_not_publish = "DO NOT PUBLISH";
- String inherit_from_parent = "PARENT";
- String publish = "PUBLISH";
- CdmPreference pref = null;
@Override
public void init() {
super.init();
- pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
- if (pref != null){
- if (pref.getValue().equals(IPreferenceKeys.DO_NOT_PUBLISH)){
- setNotPublish = true;
- setPublish = false;
- inheritFromParent = false;
- }
-
- if (pref.getValue().equals(IPreferenceKeys.INHERIT_FROM_PARENT)){
- setNotPublish = false;
- setPublish = false;
- inheritFromParent = true;
- }
-
- if (pref.getValue().equals(IPreferenceKeys.PUBLISH)){
- setNotPublish = false;
- setPublish = true;
- inheritFromParent = false;
- }
- }else{
- setNotPublish = false;
- setPublish = true;
- inheritFromParent = false;
- }
- }
- /**
- * {@inheritDoc}
- */
- @Override
- protected Control createContents(Composite parent) {
- final Composite composite = new Composite(parent, SWT.NULL);
-
- GridLayout gridLayout = new GridLayout();
- composite.setLayout(gridLayout);
- final CLabel description = new CLabel(composite, SWT.NULL);
- description.setText(Messages.PublishFlagPreference_description);
- gridLayout.numColumns = 1;
- gridLayout.horizontalSpacing= 10;
- gridLayout.makeColumnsEqualWidth = true;
-
- Button setPublishFlagAsDefault = new Button(composite, SWT.RADIO);
- setPublishFlagAsDefault.setText(Messages.PublishFlagPreference_set);
- setPublishFlagAsDefault.setSelection(setPublish);
- setPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- setPublish = !setPublish;
- }
- });
- Button setNotPublishFlagAsDefault = new Button(composite, SWT.RADIO);
- setNotPublishFlagAsDefault.setText(Messages.PublishFlagPreference_do_not_set);
- setNotPublishFlagAsDefault.setSelection(setNotPublish);
- setNotPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- setNotPublish = !setNotPublish;
- }
- });
-
- Button setInheritFromParent = new Button(composite, SWT.RADIO);
- setInheritFromParent.setText(Messages.PublishFlagPreference_inherit);
- setInheritFromParent.setSelection(inheritFromParent);
- setInheritFromParent.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- inheritFromParent = !inheritFromParent;
- }
- });
- return composite;
+ }
- }
@Override
public boolean performOk() {
- if (pref == null){
+ if (!isApply()){
return true;
}
- String preferenceValue = null;
- if (setPublish){
- preferenceValue = publish;
- }else if (setNotPublish){
- preferenceValue = do_not_publish;
- } else{
- preferenceValue = inherit_from_parent;
- }
- CdmPreference pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DefaultBehaviourForPublishFlag, preferenceValue);
- pref.setAllowOverride(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();
+ break;
+ }
+ }
+ CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, text);
+ pref.setAllowOverride(allowOverride);
+
service.set(pref);
+ PreferencesUtil.updateDBPreferences();
return true;
}
+ @Override
+ public void getValues() {
+ isAdminPreference = true;
+ 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());
+ }
+ }
+
+
+
+
}