*/
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.BooleanFieldEditor;
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.layout.GridData;
+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.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
-import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @date 13.02.2014
*
*/
-public class SpecimenOrObservationPreferences extends FieldEditorPreferencePageE4 {
+public class SpecimenOrObservationPreferences extends CdmPreferencePage implements SelectionListener{
- public SpecimenOrObservationPreferences(){
- super();
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- if (getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY)){
- setDescription("Set the preferences for the display of specimen and obeservations.");
- }else{
- setDescription("The CDM settings don't allow to set the preferences for the display of specimen and obeservations locally. If you need to make local settings, please ask an administrator.");
- }
- }
+ private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.SpecimenOrObservationPreferences_0;
+ private static final String DESCRIPTION = Messages.SpecimenOrObservationPreferences_1;
+
+ protected Boolean isShowSpecimenRelatedIssues;
+ protected boolean allowOverrideShowSpecimenRelatedIssues;
+ protected boolean overrideShowSpecimenRelatedIssues;
+ protected Boolean isShowCollectingAreaInGeneralSection;
+ protected boolean allowOverrideShowCollectingAreaInGeneralSection;
+ protected boolean overrideShowCollectionAreaInGeneralSection;
+ protected Boolean isDeterminationOnlyForFieldUnits;
+ protected boolean allowOverrideDeterminationOnlyForFieldUnits;
+ protected boolean overrideDeterminationOnlyForFieldUnits;
+ protected Boolean isShowTaxonAssociation;
+ protected boolean allowOverrideShowTaxonAssociation;
+ protected boolean overrideShowTaxonAssociation;
+ protected Boolean isShowLifeForm;
+ protected boolean allowOverrideShowLifeForm;
+ protected boolean overrideShowLifeForm;
+ Composite composite;
+ protected Combo showSpecimenButton;
+ protected Button allowOverrideIsShowSpecimenRelatedIssuesButton;
+ protected Combo showCollectingAreaInGeneralSectionButton;
+ protected Button allowOverrideShowCollectingAreaButton;
+ protected Combo determinationOnlyForFieldUnitsButton;
+ protected Button allowOverridesDeterminationOnlyForFieldUnitsButton;
+ protected Combo showTaxonAssociationButton;
+ protected Button allowOverrideIsShowTaxonAssociationButton;
+ protected Button allowOverrideShowLifeFormButton;
+ protected Combo showLifeFormButton;
+
+ CdmPreference showSpecimenPref;
+ CdmPreference showCollectingAreaInGeneralSection;
+ CdmPreference showDeterminationOnlyForFieldUnits;
+ CdmPreference showTaxonAssociation;
+ CdmPreference showLifeForm;
@Override
public void init() {
if(!CdmStore.isActive()){
return;
}
- ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
- if (controller != null){
- IPreferenceService service = controller.getPreferenceService();
- PrefKey keyTaxonAssociation = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowTaxonAssociations);
- CdmPreference prefTaxonAssociation = service.find(keyTaxonAssociation);
- PrefKey keyDeterminationFieldUnit = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
- CdmPreference prefDeterminationFieldUnit = service.find(keyDeterminationFieldUnit);
- PrefKey keyCollectingAreas = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
- CdmPreference prefCollectingAreas = service.find(keyCollectingAreas);
-
- getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_SPECIMEN_PREF, prefTaxonAssociation == null? true : prefTaxonAssociation.isAllowOverride());
- }
- if (getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY)) {
- setDescription("Set the preferences for the display of specimen and obeservations.");
+
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Control createContents(Composite parent) {
+ getValues();
+
+ boolean isEditingAllowed = true;
+ if(!isAdminPreference){
+ CdmPreferenceCache cache = CdmPreferenceCache.instance();
+
+ if (showSpecimenPref != null){
+ if (!showSpecimenPref.isAllowOverride() ){
+
+ isEditingAllowed = false;
+
+ }
+ }
+ }
+ if (isEditingAllowed){
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(DESCRIPTION);
}else{
- setDescription("The CDM settings don't allow to set the preferences for the display of specimen and obeservations locally. If you need to make local settings, please ask an administrator.");
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
+ this.noDefaultAndApplyButton();
+ return parent;
+ }
+ Composite titleComp = createComposite(parent);
+ GridData gridData = createTextGridData();
+
+ Label separator= new Label(titleComp, SWT.HORIZONTAL | SWT.SEPARATOR);
+ separator.setLayoutData(gridData);
+ separator.setVisible(false);
+ showSpecimenButton = createBooleanCombo(titleComp, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowSpecimen, Messages.DatabasePreferncesPage_Show_Specimen, isAdminPreference);
+
+ showSpecimenButton.addSelectionListener(this);
+ int index = 0;
+ for (String itemLabel : showSpecimenButton.getItems()) {
+ if (isShowSpecimenRelatedIssues == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ showSpecimenButton.select(index);
+ break;
+ }
+ if (isShowSpecimenRelatedIssues != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowSpecimenRelatedIssues){
+ showSpecimenButton.select(index);
+ break;
+ }
+ if (isShowSpecimenRelatedIssues != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowSpecimenRelatedIssues){
+ showSpecimenButton.select(index);
+ break;
+ }
+ index++;
+ }
+ showSpecimenButton.setEnabled(isEditingAllowed);
+
+ if (isAdminPreference){
+ allowOverrideIsShowSpecimenRelatedIssuesButton = createAllowOverrideButton(titleComp);
+ allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ allowOverrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
+ }
+ });
+ }
+
+ composite = createComposite(parent);
+ //composite.setEnabled(isShowSpecimenRelatedIssues);
+ gridData = createTextGridData();
+
+ separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+ separator.setLayoutData(gridData);
+
+ showCollectingAreaInGeneralSectionButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowCollectingAreasInGeneralSection, Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section, isAdminPreference);
+
+ showCollectingAreaInGeneralSectionButton.addSelectionListener(this);
+ index = 0;
+ for (String itemLabel : showCollectingAreaInGeneralSectionButton.getItems()) {
+ if (isShowCollectingAreaInGeneralSection == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ showCollectingAreaInGeneralSectionButton.select(index);
+ break;
+ }
+ if (isShowCollectingAreaInGeneralSection != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowCollectingAreaInGeneralSection){
+ showCollectingAreaInGeneralSectionButton.select(index);
+ break;
+ }
+ if (isShowCollectingAreaInGeneralSection != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowCollectingAreaInGeneralSection){
+ showCollectingAreaInGeneralSectionButton.select(index);
+ break;
+ }
+ index++;
+ }
+ if (isAdminPreference){
+ allowOverrideShowCollectingAreaButton = createAllowOverrideButton(composite);
+ allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
+ allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ allowOverrideShowCollectingAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
+ }
+ });
+ }
+ if (showCollectingAreaInGeneralSection != null && !showCollectingAreaInGeneralSection.isAllowOverride() ){
+ isEditingAllowed = false;
+ }
+ showCollectingAreaInGeneralSectionButton.setEnabled(isEditingAllowed);
+ determinationOnlyForFieldUnitsButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.DeterminationOnlyForFieldUnits, Messages.DatabasePreferncesPage_Determination_only_for_field_unnits, isAdminPreference);
+
+
+ determinationOnlyForFieldUnitsButton.addSelectionListener(this);
+ index = 0;
+ for (String itemLabel : determinationOnlyForFieldUnitsButton.getItems()) {
+ if (isDeterminationOnlyForFieldUnits == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ determinationOnlyForFieldUnitsButton.select(index);
+ break;
+ }
+ if (isDeterminationOnlyForFieldUnits != null && itemLabel.equals(Messages.GeneralPreference_yes) && isDeterminationOnlyForFieldUnits){
+ determinationOnlyForFieldUnitsButton.select(index);
+ break;
+ }
+ if (isDeterminationOnlyForFieldUnits != null && itemLabel.equals(Messages.GeneralPreference_no) && !isDeterminationOnlyForFieldUnits){
+ determinationOnlyForFieldUnitsButton.select(index);
+ break;
+ }
+ index++;
+ }
+ if (showDeterminationOnlyForFieldUnits != null && !showDeterminationOnlyForFieldUnits.isAllowOverride() ){
+ isEditingAllowed = false;
+ }
+ determinationOnlyForFieldUnitsButton.setEnabled(isEditingAllowed);
+ if (isAdminPreference){
+ allowOverridesDeterminationOnlyForFieldUnitsButton = createAllowOverrideButton(composite);
+ allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
+ allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ allowOverrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
+ }
+ });
+ }
+
+ showTaxonAssociationButton =createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowTaxonAssociations, Messages.DatabasePreferncesPage_Taxon_Associations, isAdminPreference);
+
+
+ showTaxonAssociationButton.addSelectionListener(this);
+ index = 0;
+ for (String itemLabel : showTaxonAssociationButton.getItems()) {
+ if (isShowTaxonAssociation == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ showTaxonAssociationButton.select(index);
+ break;
+ }
+ if (isShowTaxonAssociation != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowTaxonAssociation){
+ showTaxonAssociationButton.select(index);
+ break;
+ }
+ if (isShowTaxonAssociation != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowTaxonAssociation){
+ showTaxonAssociationButton.select(index);
+ break;
+ }
+ index++;
+ }
+ if (showTaxonAssociation != null && !showTaxonAssociation.isAllowOverride() ){
+ isEditingAllowed = false;
+ }
+ showTaxonAssociationButton.setEnabled(isEditingAllowed);
+ if (isAdminPreference){
+ allowOverrideIsShowTaxonAssociationButton = createAllowOverrideButton(composite);
+ allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
+ allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ allowOverrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
+ }
+ });
+ }
+
+ showLifeFormButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowLifeForm, Messages.DatabasePreferncesPage_Life_Form, isAdminPreference);
+ showLifeFormButton.addSelectionListener(this);
+ index = 0;
+ for (String itemLabel: showLifeFormButton.getItems()) {
+ if (isShowLifeForm == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ showLifeFormButton.select(index);
+ break;
+ }
+ if (isShowLifeForm != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowLifeForm){
+ showLifeFormButton.select(index);
+ break;
+ }
+ if (isShowLifeForm != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowLifeForm){
+ showLifeFormButton.select(index);
+ break;
+ }
+ index++;
}
+ if (showLifeForm != null && !showLifeForm.isAllowOverride() ){
+ isEditingAllowed = false;
+ }
+ showLifeFormButton.setEnabled(isEditingAllowed);
+ if (isAdminPreference){
+ allowOverrideShowLifeFormButton = createAllowOverrideButton(composite);
+ allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
+ allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ allowOverrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
+ }
+ });
+ }
+
+ if (!isEditingAllowed){
+ PreferencesUtil.recursiveSetEnabled(composite, false);
+ }
+
+ return composite;
}
+
+ /**
+ * {@inheritDoc}
+ */
@Override
- protected void createFieldEditors() {
- if (getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_SPECIMEN_PREF)) {
- addField(new BooleanFieldEditor(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS,
- "Taxon determination only on FieldUnit level",
- getFieldEditorParent()));
- addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION,
- "Show \"Collecting Areas\" in \"General\" section of details view",
- getFieldEditorParent()));
- addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS,
- "Show taxon associations of a specimen in the details view",
- getFieldEditorParent()));
- addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_LIFE_FORM,
- "Show life form of a specimen in the details view",
- getFieldEditorParent()));
- Label label = new Label(getFieldEditorParent(), SWT.NONE);
+ protected void getValues() {
+ CdmPreferenceCache cache = CdmPreferenceCache.instance();
+
+
+ overrideShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()), true): false;
- label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen);
+ showSpecimenPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSpecimen);
- addField(new BooleanFieldEditor(
- IPreferenceKeys.OVERRIDE_SPECIMEN_PREF,
- "Use local specimen preferences",
- getFieldEditorParent()));
+ if (showSpecimenPref != null) {
+ if (showSpecimenPref.isAllowOverride() ) {
+ if (overrideShowSpecimenRelatedIssues){
+ isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), true);
+ }
+ } else {
+ isShowSpecimenRelatedIssues = Boolean.valueOf(showSpecimenPref.getValue());
+ }
+ } else {
+ if(!overrideShowSpecimenRelatedIssues){
+ isShowSpecimenRelatedIssues = null;
+ }else{
+ isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), true);
+ }
+ showSpecimenPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimen, PreferencePredicate.ShowSpecimen.getDefaultValue() != null ? PreferencePredicate.ShowSpecimen.getDefaultValue().toString(): null);
}
+
+
+
+ key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
+ showCollectingAreaInGeneralSection = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection);
+ overrideShowCollectionAreaInGeneralSection = PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), true): false;
+ allowOverrideShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSection != null ? showCollectingAreaInGeneralSection.isAllowOverride():true;
+ if (showCollectingAreaInGeneralSection != null) {
+ if (showCollectingAreaInGeneralSection.isAllowOverride() ) {
+ if (overrideShowCollectionAreaInGeneralSection){
+ isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true);
+ }
+
+ } else {
+ isShowCollectingAreaInGeneralSection = Boolean.valueOf(showCollectingAreaInGeneralSection.getValue());
+
+ }
+
+ } else {
+ if(!overrideShowCollectionAreaInGeneralSection){
+ isShowCollectingAreaInGeneralSection = null;
+ }else{
+ isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true);
+ }
+ showCollectingAreaInGeneralSection = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue() != null ? PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue().toString(): null);
+ }
+
+
+ key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
+ showDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits);
+ overrideDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), true): false;
+ if (showDeterminationOnlyForFieldUnits != null) {
+ if (showDeterminationOnlyForFieldUnits.isAllowOverride() ) {
+ if (overrideDeterminationOnlyForFieldUnits){
+ isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey());
+ }
+
+ } else {
+ isDeterminationOnlyForFieldUnits = Boolean.valueOf(showDeterminationOnlyForFieldUnits.getValue());
+
+ }
+
+ } else {
+ if(!overrideDeterminationOnlyForFieldUnits){
+ isDeterminationOnlyForFieldUnits = null;
+ }else{
+ isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), true);
+ }
+ showDeterminationOnlyForFieldUnits = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DeterminationOnlyForFieldUnits, PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue() != null ? PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue().toString(): null);
+ }
+
+ allowOverrideDeterminationOnlyForFieldUnits = showDeterminationOnlyForFieldUnits != null ? showDeterminationOnlyForFieldUnits.isAllowOverride():true;
+
+
+ key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonAssociations);
+ showTaxonAssociation = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations);
+ overrideShowTaxonAssociation = PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()), true): false;
+ if (showTaxonAssociation != null) {
+ if (showTaxonAssociation.isAllowOverride() ) {
+ if (overrideShowTaxonAssociation){
+ isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey());
+ }
+
+ } else {
+ isShowTaxonAssociation = Boolean.valueOf(showTaxonAssociation.getValue());
+
+ }
+
+ } else {
+ if(!overrideShowTaxonAssociation){
+ isShowTaxonAssociation = null;
+ }else{
+ isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey(), true);
+ }
+ showTaxonAssociation = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowTaxonAssociations, PreferencePredicate.ShowTaxonAssociations.getDefaultValue() != null ? PreferencePredicate.ShowTaxonAssociations.getDefaultValue().toString(): null);
+ }
+
+ allowOverrideShowTaxonAssociation = showTaxonAssociation != null ? showTaxonAssociation.isAllowOverride():true;
+
+
+ key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowLifeForm);
+ showLifeForm = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowLifeForm);
+ overrideShowLifeForm = PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()), true): false;
+ if (showLifeForm != null) {
+ if (showLifeForm.isAllowOverride() ) {
+ if (overrideShowLifeForm){
+ isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey());
+ }
+
+ } else {
+ isShowLifeForm = Boolean.valueOf(showLifeForm.getValue());
+
+ }
+
+ } else {
+ if(!overrideShowLifeForm){
+ isShowLifeForm = null;
+ }else{
+ isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey(), true);
+ }
+ showLifeForm = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowLifeForm, PreferencePredicate.ShowLifeForm.getDefaultValue() != null ? PreferencePredicate.ShowLifeForm.getDefaultValue().toString(): null);
+ }
+
+ allowOverrideShowLifeForm = showLifeForm != null ? showLifeForm.isAllowOverride():true;
+
+
+ }
+
+ @Override
+ public boolean performOk() {
+
+ boolean override = false;
+ if (isShowSpecimenRelatedIssues != null ) {
+ override = true;
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues.toString());
+ }
+ PreferencesUtil.setBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()),
+ override);
+
+ override = false;
+ if (isShowCollectingAreaInGeneralSection != null ) {
+ override = true;
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection.toString());
+ }
+ PreferencesUtil.setBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()),
+ override);
+
+ override = false;
+ if (isDeterminationOnlyForFieldUnits != null ) {
+ override = true;
+ PreferencesUtil.setStringValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits.toString());
+ }
+ PreferencesUtil.setBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()),
+ override);
+
+ override = false;
+ if (isShowTaxonAssociation != null ) {
+ override = true;
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation.toString());
+ }
+ PreferencesUtil.setBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()),
+ override);
+
+ override = false;
+ if (isShowLifeForm != null ) {
+ override = true;
+ PreferencesUtil.setStringValue(PreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm.toString());
+ }
+ PreferencesUtil.setBooleanValue(
+ PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()),
+ override);
+
+ return true;
}
+
+ @Override
+ protected void performDefaults() {
+ isShowSpecimenRelatedIssues = null;
+ showSpecimenButton.select(0);
+
+ if (allowOverrideIsShowSpecimenRelatedIssuesButton != null){
+ allowOverrideShowSpecimenRelatedIssues = true;
+ allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ }
+ isShowCollectingAreaInGeneralSection = null;
+ showCollectingAreaInGeneralSectionButton.select(0);
+
+ if (allowOverrideShowCollectingAreaButton != null){
+ allowOverrideShowCollectingAreaInGeneralSection = true;
+ allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ }
+ isDeterminationOnlyForFieldUnits = null;
+ determinationOnlyForFieldUnitsButton.select(0);
+
+ if (allowOverridesDeterminationOnlyForFieldUnitsButton != null){
+ allowOverrideDeterminationOnlyForFieldUnits = true;
+ allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ }
+
+ isShowTaxonAssociation = null;
+ showTaxonAssociationButton.select(0);
+
+ if (allowOverrideIsShowTaxonAssociationButton != null){
+ allowOverrideShowTaxonAssociation = true;
+ allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ }
+
+
+ isShowLifeForm = null;
+
+ showLifeFormButton.select(0);
+
+ if (allowOverrideShowLifeFormButton != null){
+ allowOverrideShowLifeForm = true;
+ allowOverrideShowLifeFormButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+ }
+
+
+ super.performDefaults();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ setApply(true);
+ if (e.getSource().equals(this.showSpecimenButton)) {
+ String text = showSpecimenButton.getText();
+ if(text.startsWith(Messages.Preference_Use_Default)){
+ isShowSpecimenRelatedIssues = null;
+ if (isAdminPreference){
+ allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(true);
+ }
+ return;
+ }
+ if (text.equals(Messages.GeneralPreference_yes)){
+ isShowSpecimenRelatedIssues = true;
+ }else{
+ isShowSpecimenRelatedIssues = false;
+ }
+ }
+
+ if (e.getSource().equals(this.showCollectingAreaInGeneralSectionButton)) {
+ String text = showCollectingAreaInGeneralSectionButton.getText();
+ if(text.startsWith(Messages.Preference_Use_Default)){
+ isShowCollectingAreaInGeneralSection = null;
+ if (isAdminPreference){
+ //showCollectingAreaInGeneralSection.setAllowOverride(true);
+ allowOverrideShowCollectingAreaButton.setSelection(true);
+ }
+ return;
+ }
+ if (text.equals(Messages.GeneralPreference_yes)){
+ isShowCollectingAreaInGeneralSection = true;
+ }else{
+ isShowCollectingAreaInGeneralSection = false;
+ }
+ }
+
+ if (e.getSource().equals(this.determinationOnlyForFieldUnitsButton)) {
+ String text = determinationOnlyForFieldUnitsButton.getText();
+ if(text.startsWith(Messages.Preference_Use_Default)){
+ isDeterminationOnlyForFieldUnits = null;
+ if (isAdminPreference){
+ //showDeterminationOnlyForFieldUnits.setAllowOverride(true);
+ allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(true);
+ }
+ return;
+ }
+ if (text.equals(Messages.GeneralPreference_yes)){
+ isDeterminationOnlyForFieldUnits = true;
+ }else{
+ isDeterminationOnlyForFieldUnits = false;
+ }
+ }
+
+ if (e.getSource().equals(this.showTaxonAssociationButton)) {
+ String text = showTaxonAssociationButton.getText();
+ if(text.startsWith(Messages.Preference_Use_Default)){
+ isShowTaxonAssociation = null;
+ if (isAdminPreference){
+ //showTaxonAssociation.setAllowOverride(true);
+ allowOverrideIsShowTaxonAssociationButton.setSelection(true);
+ }
+ return;
+ }
+ if (text.equals(Messages.GeneralPreference_yes)){
+ isShowTaxonAssociation = true;
+ }else{
+ isShowTaxonAssociation = false;
+ }
+ }
+
+ if (e.getSource().equals(this.showLifeFormButton)) {
+ String text = showLifeFormButton.getText();
+ if(text.startsWith(Messages.Preference_Use_Default)){
+ isShowLifeForm = null;
+ if (isAdminPreference){
+ //showLifeForm.setAllowOverride(true);
+ allowOverrideShowLifeFormButton.setSelection(true);
+ }
+ return;
+ }
+ if (text.equals(Messages.GeneralPreference_yes)){
+ isShowLifeForm = true;
+ }else{
+ isShowLifeForm = false;
+ }
+ }
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+
+
}