From: Alexander Oppermann Date: Tue, 28 Apr 2015 11:59:35 +0000 (+0000) Subject: Fixed Ticket #4447 and #4535 X-Git-Tag: 3.6.0~83 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/7a8e7c2290ffbfa35907ca8934ead75a1ca0e456 Fixed Ticket #4447 and #4535 --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java index 53ec0636f..6c884bfd0 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java @@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.preference; import java.io.IOException; +import java.util.Locale; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.dialogs.MessageDialog; @@ -29,6 +30,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.PlatformUI; import eu.etaxonomy.taxeditor.Messages; +import eu.etaxonomy.taxeditor.model.MessagingUtils; /** * @author n.hoffmann @@ -39,6 +41,7 @@ public class LanguageEditorPreferencePage extends PreferencePage implements IWor private CCombo combo; PreferencesUtil preferencesUtil = new PreferencesUtil(); + private boolean isSelectionChanged = false; /* (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) @@ -80,8 +83,10 @@ public class LanguageEditorPreferencePage extends PreferencePage implements IWor public void widgetSelected(SelectionEvent e) { try { preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex()); + isSelectionChanged = true; } catch (IOException e1) { - e1.printStackTrace(); + MessagingUtils.messageDialog("Failed to write Config.ini", LanguageEditorPreferencePage.class, + "Language switch failed, because could not write to Folder. No writing permissions!", null); } } @@ -104,6 +109,13 @@ public class LanguageEditorPreferencePage extends PreferencePage implements IWor }else if(rememberedValue.equalsIgnoreCase("de")){ //$NON-NLS-1$ combo.select(0); } + }else{ + Locale locale = Locale.getDefault(); + if(locale.getLanguage().equals(new Locale("de").getLanguage())){ + combo.select(0); + }else if(locale.getLanguage().equals(new Locale("en").getLanguage())){ + combo.select(1); + } } } @@ -137,11 +149,13 @@ public class LanguageEditorPreferencePage extends PreferencePage implements IWor @Override public boolean performOk() { try { - preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex()); - boolean result = MessageDialog.openConfirm(getShell(), Messages.LanguageEditorPreferencePage_PleaseRestart, Messages.LanguageEditorPreferencePage_EditorHasToRestart); - if(result){ - //Press Ok - PlatformUI.getWorkbench().restart(); + if(isSelectionChanged){ + preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex()); + boolean result = MessageDialog.openConfirm(getShell(), Messages.LanguageEditorPreferencePage_PleaseRestart, Messages.LanguageEditorPreferencePage_EditorHasToRestart); + if(result){ + //Press Ok + PlatformUI.getWorkbench().restart(); + } } } catch (IOException e) { e.printStackTrace(); 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 78b3c927d..bbca40e5a 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 @@ -630,6 +630,10 @@ public class PreferencesUtil implements IPreferenceKeys { */ public void writePropertyToConfigFile(int setLanguage) throws IOException { File file = org.eclipse.core.runtime.preferences.ConfigurationScope.INSTANCE.getLocation().toFile(); + //give warning to user if the directory has no write access + if(file == null){ + throw new IOException(); + } Properties properties = load(file.getAbsolutePath()+"/config.ini"); switch(setLanguage){ case 0: