From bcad19b979f94d0908214c5543dea552c96625b6 Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Tue, 9 Dec 2014 15:33:02 +0000 Subject: [PATCH 1/1] MessagingUtils : added new method for a warning dialog when not connected to a datasource CdmStore : changed warning dialog to new method mentioned above LanguagePreferencePage, PreferencesUtil, AbstractMenuPreferences : checks to fail nicely if not connected to a datasoruce --- .../taxeditor/model/MessagingUtils.java | 14 +++++ .../preference/LanguagePreferencePage.java | 62 ++++++++++--------- .../taxeditor/preference/PreferencesUtil.java | 15 ++++- .../menu/AbstractMenuPreferences.java | 19 +++++- .../etaxonomy/taxeditor/store/CdmStore.java | 7 +-- 5 files changed, 76 insertions(+), 41 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java index e9033c392..e44ad8f82 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java @@ -490,6 +490,20 @@ public class MessagingUtils { MessagingUtils.warningDialog(title, source, status.getMessage()); } + /** + * Standard warning dialog for the case when the application is not yet connected to the datasource + * + * @param source + */ + public static void noDataSourceWarningDialog(Object source) { + MessagingUtils + .warningDialog( + "Application is not connected to a datastore", + source, + "The requested operation is only available when " + + "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view."); + } + /** * Displays a warning {@link org.eclipse.jface.dialogs.MessageDialog}. * diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java index e1a6b959c..b816fd495 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java @@ -1,9 +1,9 @@ // $Id$ /** * Copyright (C) 2007 EDIT -* European Distributed Institute of Taxonomy +* 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. */ @@ -39,14 +39,14 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench private boolean isMultilanguageTextEditingCapability; private Language globalLanguage; - + private Composite createComposite(Composite parent){ Composite composite = new Composite(parent, SWT.NULL); composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1)); composite.setLayout(new RowLayout(SWT.HORIZONTAL)); return composite; } - + /* (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) */ @@ -55,14 +55,14 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench Composite container = new Composite(parent, SWT.NULL); final GridLayout gridLayout = new GridLayout(); container.setLayout(gridLayout); - + createSetDefaultLanguage(container); - + createSetMultiLanguageTextEditingCapability(container); - + return container; - - + + } /** @@ -70,19 +70,23 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench */ private void createSetDefaultLanguage(Composite parent) { globalLanguage = PreferencesUtil.getGlobalLanguage(); - + + if(globalLanguage == null) { + return; + } + int curentSelectionIndex = 0; - + final Composite composite = createComposite(parent); composite.setLayout(new RowLayout(1)); - + final Label label = new Label(composite, SWT.NONE); label.setText("Choose the global language that will be used throughout the editor to get representations in."); - - final Combo combo_globalLanguage = new Combo(composite, SWT.NONE); - + + final Combo combo_globalLanguage = new Combo(composite, SWT.NONE); + List preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class); - + for(int i = 0; i < preferredLanguages.size(); i++){ Language language = preferredLanguages.get(i); combo_globalLanguage.add(language.getLabel(), i); @@ -90,9 +94,9 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench curentSelectionIndex = i; } } - + combo_globalLanguage.select(curentSelectionIndex); - + combo_globalLanguage.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) @@ -102,25 +106,25 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench int selectionIndex = combo_globalLanguage.getSelectionIndex(); globalLanguage = Language.getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex)); } - }); + }); } /** - * + * */ private void createSetMultiLanguageTextEditingCapability(Composite parent) { isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY); - + final Composite composite = createComposite(parent); - - final Button button_toggle = new Button(composite, SWT.CHECK); - - + + final Button button_toggle = new Button(composite, SWT.CHECK); + + button_toggle.setText("Enable Multiple Language Editing Capability"); - + button_toggle.setSelection(isMultilanguageTextEditingCapability); - - + + button_toggle.addSelectionListener(new SelectionAdapter(){ /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) @@ -147,7 +151,7 @@ public class LanguagePreferencePage extends PreferencePage implements IWorkbench public boolean performOk() { getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability); PreferencesUtil.setGlobalLanguage(globalLanguage); - + return super.performOk(); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java index 484a13357..17d5f913d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java @@ -523,9 +523,16 @@ public class PreferencesUtil implements IPreferenceKeys { } public static Language getGlobalLanguage() { + + String languageUuidString = getPreferenceStore().getString( GLOBAL_LANGUAGE_UUID); + if(!CdmStore.isActive()) { + MessagingUtils.noDataSourceWarningDialog(languageUuidString); + return null; + } + if (CdmUtils.isBlank(languageUuidString)) { return Language.getDefaultLanguage(); } @@ -536,9 +543,11 @@ public class PreferencesUtil implements IPreferenceKeys { } public static void setGlobalLanguage(Language language) { - getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID, - language.getUuid().toString()); - CdmStore.setDefaultLanguage(language); + if(language != null) { + getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID,language.getUuid().toString()); + CdmStore.setDefaultLanguage(language); + } + } /** diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java index c8a7fc5b2..e98123ac9 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java @@ -95,7 +95,11 @@ public abstract class AbstractMenuPreferences extends } protected List getTerms(){ - return TermStore.getTerms(getTermClass()); + if(!CdmStore.isActive()) { + return new ArrayList(); + } else { + return TermStore.getTerms(getTermClass()); + } } /** @@ -274,8 +278,13 @@ public abstract class AbstractMenuPreferences extends /** {@inheritDoc} */ @Override public void init(IWorkbench workbench) { - setPreferenceStore(PreferencesUtil.getPreferenceStore()); - getConversationHolder().bind(); + setPreferenceStore(PreferencesUtil.getPreferenceStore()); + if(!CdmStore.isActive()) { + MessagingUtils.noDataSourceWarningDialog(null); + + } else { + getConversationHolder().bind(); + } } /* @@ -305,6 +314,10 @@ public abstract class AbstractMenuPreferences extends /** {@inheritDoc} */ @Override public boolean performOk() { + if(!CdmStore.isActive()) { + return true; + } + if(checkNoneChecked()){ return false; } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java index 8b151109d..f6b224dfc 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java @@ -99,12 +99,7 @@ public class CdmStore { return instance; } else{// if (instance == null || !instance.isConnected) { - MessagingUtils - .warningDialog( - "Application is not connected to a datastore", - instance, - "The requested operation is only available when " - + "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view."); + MessagingUtils.noDataSourceWarningDialog(instance); AbstractUtility.showView(CdmDataSourceViewPart.ID); return null; -- 2.34.1