--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.FactualDataPreference;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author k.luther
+ * @since 25.09.2019
+ */
+public class FactualDataAdminPreferencePage extends FactualDataPreference {
+
+
+ @Override
+ public void getValues(){
+ isAdminPreference = true;
+ pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifier);
+
+ allowOverride = getPrefAllowOverride(pref);
+
+ isShowModifier = getBooleanPrefValue(pref);
+
+ //get modifier freetext values
+ prefFreeText = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifierFreeText);
+
+ allowOverrideFreeText = getPrefAllowOverride(prefFreeText);
+ isShowModifierFreeText = getBooleanPrefValue(prefFreeText);
+ }
+
+
+
+ @Override
+ public boolean performOk() {
+ if (isApply()){
+ pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifier, isShowModifier != null? Boolean.toString(this.isShowModifier): null);
+ pref.setAllowOverride(allowOverride);
+ PreferencesUtil.setPreferenceToDB(pref);
+
+ prefFreeText = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifierFreeText, isShowModifierFreeText != null? Boolean.toString(this.isShowModifierFreeText): null);
+ prefFreeText.setAllowOverride(allowOverrideFreeText);
+ PreferencesUtil.setPreferenceToDB(prefFreeText);
+
+ setApply(false);
+ }
+ return true;
+ }
+
+
+
+}
*/
package eu.etaxonomy.taxeditor.preference;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
/**
* @since 28 Jan 2019
*
*/
-public class FactualDataPreference extends CdmPreferencePage {
+public class FactualDataPreference extends CdmPreferencePage implements SelectionListener{
+
+ protected Boolean isShowModifier;
+
+ protected Combo comboShowModifier;
+ protected CdmPreference pref = null;
+ Button allowOverrideButton;
+
+ protected boolean allowOverride;
+ private boolean isOverride = true;
+
+ protected Boolean isShowModifierFreeText;
+
+ protected Combo comboShowModifierFreeText;
+ protected CdmPreference prefFreeText = null;
+ Button allowOverrideFreeTextButton;
+
+ protected boolean allowOverrideFreeText;
+ private boolean isOverrideFreeText = true;
+
+
+ @Override
+ public void init() {
+ super.init();
+
+
+ }
/**
* {@inheritDoc}
*/
@Override
protected Control createContents(Composite parent) {
- noDefaultAndApplyButton();
- return null;
+ getValues();
+
+ Composite composite = createComposite(parent);
+ Label description = new Label(composite, SWT.NULL);
+ description.setText(Messages.FactualData_description);
+
+ comboShowModifier = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifier, Messages.FactualData_showModifier, isAdminPreference);
+ comboShowModifier.addSelectionListener(this);
+ if (this.isAdminPreference){
+ allowOverrideButton = createAllowOverrideButton(composite);
+ allowOverrideButton.setSelection(allowOverride);
+ allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ allowOverride = !allowOverride;
+ setApply(true);
+ }
+ });
+ }
+ int index = 0;
+ if(isShowModifier==null){
+ comboShowModifier.select(0);
+ } else{
+ for (String itemLabel : comboShowModifier.getItems()){
+ if (itemLabel.startsWith(this.SHOW) && isShowModifier){
+ comboShowModifier.select(index);
+ break;
+ }
+ if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifier){
+ comboShowModifier.select(index);
+ break;
+ }
+ index++;
+ }
+ }
+ if (!isAdminPreference){
+ comboShowModifier.setEnabled(allowOverride);
+ }
+
+ comboShowModifierFreeText = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifierFreeText, Messages.FactualData_showModifier_FreeText, isAdminPreference);
+ comboShowModifierFreeText.addSelectionListener(this);
+ if (this.isAdminPreference){
+ allowOverrideFreeTextButton = createAllowOverrideButton(composite);
+ allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
+ allowOverrideFreeTextButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ allowOverrideFreeText = !allowOverrideFreeText;
+ setApply(true);
+ }
+ });
+ }
+ index = 0;
+ if(isShowModifierFreeText==null){
+ comboShowModifierFreeText.select(0);
+ } else{
+ for (String itemLabel : comboShowModifierFreeText.getItems()){
+ if (itemLabel.startsWith(this.SHOW) && isShowModifierFreeText){
+ comboShowModifierFreeText.select(index);
+ break;
+ }
+ if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifierFreeText){
+ comboShowModifierFreeText.select(index);
+ break;
+ }
+ index++;
+ }
+ }
+ if (!isAdminPreference){
+ comboShowModifierFreeText.setEnabled(allowOverrideFreeText);
+ }
+ return composite;
+
+ }
+
+
+ @Override
+ public boolean performOk() {
+ if (isApply()){
+ if (isShowModifier != null){
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowModifier.getKey(), Boolean.toString(isShowModifier));
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), true);
+
+ }else{
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), false);
+ }
+ if (isShowModifierFreeText != null){
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), Boolean.toString(isShowModifierFreeText));
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), true);
+
+ }else{
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), false);
+ }
+
+ }
+ return true;
+ }
+
+ @Override
+ public void getValues(){
+ // get modifier values
+ pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifier);
+ if (pref == null){
+ pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifier, PreferencePredicate.ShowModifier.getDefaultValue().toString());
+ }
+ allowOverride = pref.isAllowOverride();
+ isShowModifier = null;
+ String showModifierString = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifier.getKey(), true);
+ if (showModifierString != null){
+ isShowModifier = Boolean.valueOf(showModifierString);
+ }
+
+ isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()));
+ if (!isOverride){
+ isShowModifier = null;
+ }
+
+ //get modifier freetext values
+ prefFreeText = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifierFreeText);
+ if (prefFreeText == null){
+ prefFreeText = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifierFreeText, PreferencePredicate.ShowModifierFreeText.getDefaultValue().toString());
+ }
+ allowOverrideFreeText = prefFreeText.isAllowOverride();
+ isShowModifierFreeText = null;
+ String showModifierStringFreeText = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), true);
+ if (showModifierStringFreeText != null){
+ isShowModifierFreeText = Boolean.valueOf(showModifierStringFreeText);
+ }
+
+ isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()));
+ if (!isOverrideFreeText){
+ isShowModifierFreeText = null;
+ }
+
}
+ @Override
+ protected void performDefaults() {
+ isShowModifier = null;
+ allowOverride = true;
+
+ comboShowModifier.select(0);
+ if (isAdminPreference){
+ allowOverrideButton.setSelection(allowOverride);
+ }
+
+ isShowModifierFreeText = null;
+ allowOverrideFreeText = true;
+
+ comboShowModifierFreeText.select(0);
+ if (isAdminPreference){
+ allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
+ }
+
+ setApply(true);
+ super.performDefaults();
+ }
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if (e.getSource().equals(this.comboShowModifier)) {
+ String text = comboShowModifier.getText();
+ if (text.startsWith(Messages.Preference_Use_Default)){
+ isOverride = false;
+ isShowModifier = null;
+
+ }else if (text.equals(SHOW)){
+ isShowModifier = true;
+ isOverride = true;
+ }else{
+ isShowModifier = false;
+ isOverride = true;
+ }
+
+ }
+
+ if (e.getSource().equals(this.comboShowModifierFreeText)) {
+ String text = comboShowModifierFreeText.getText();
+ if (text.startsWith(Messages.Preference_Use_Default)){
+ isOverrideFreeText = false;
+ isShowModifierFreeText = null;
+
+ }else if (text.equals(SHOW)){
+ isShowModifierFreeText = true;
+ isOverrideFreeText = true;
+ }else{
+ isShowModifierFreeText = false;
+ isOverrideFreeText = true;
+ }
+
+ }
+ setApply(true);
+
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+
+
+ }
+
+
}
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.description.State;
import eu.etaxonomy.cdm.model.description.StateData;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
}
combo_state.setTerms(stateTerms);
combo_state.setSelection(entity.getState());
- section_modifiers.setEntity(entity);
- section_modifiers.setExpanded(!entity.getModifiers().isEmpty());
- if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+ if (section_modifiers != null){
+ section_modifiers.setEntity(entity);
+ section_modifiers.setExpanded(!entity.getModifiers().isEmpty());
+ }
+ if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null && text_modifyingText != null) {
text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
}
if(getEntity().getId()>0){
@Override
public void createControls(ICdmFormElement element, int style) {
combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, style);
- section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, StoreUtil.getSectionStyle(ModifierSection.class, StateData.class.getCanonicalName(), true));
- section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style);
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
+ section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, StoreUtil.getSectionStyle(ModifierSection.class, StateData.class.getCanonicalName(), true));
+ section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ }
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
+ text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style);
+ }
+
}
/** {@inheritDoc} */
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
protected void createModifier(ICdmFormElement formElement, DescriptionElementBase entity,
int style) {
- section_modifiers = formFactory.createModifierSection(getConversationHolder(), this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
- section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- section_modifiers.setEntity(entity);
-
- text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
- if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
- text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
+ section_modifiers = formFactory.createModifierSection(getConversationHolder(), this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
+ section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ section_modifiers.setEntity(entity);
+ }
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
+ text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
+ if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+ text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+ }
}
}
protected void createFreetextModifier(ICdmFormElement formElement, DescriptionElementBase entity,
int style) {
-
- text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
- if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
- text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
+ text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
+ if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+ text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+ }
}
}