X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/d03bd20546b3a2ee9570d55c313fb39ab24bfab5..e3240965ccd65c0d123d05e13d04e7820fe01f85:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java index 2b89d6697..558ae50a8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java @@ -1,9 +1,8 @@ -// $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. */ @@ -27,11 +26,13 @@ import org.eclipse.swt.widgets.Display; import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper; +import eu.etaxonomy.cdm.model.common.TermType; +import eu.etaxonomy.taxeditor.model.MessagingUtils; +import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; -import eu.etaxonomy.taxeditor.store.StoreUtil; -import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement; @@ -45,14 +46,14 @@ import eu.etaxonomy.taxeditor.ui.element.RootElement; * @version 1.0 */ public class TranslationWizardPage extends WizardPage{ - - private static int TEXT_HEIGHT = 400; - - private Map multilanguageText; + + private static int TEXT_HEIGHT = 400; + + private final Map multilanguageText; MultilanguageTextElement source; - - private CdmFormFactory formFactory; + + private final CdmFormFactory formFactory; private TermComboElement combo_sourceLanguage; @@ -61,7 +62,7 @@ public class TranslationWizardPage extends WizardPage{ private TermComboElement combo_targetLanguage; private LanguageStringWithLabelElement text_target; - + /** *

Constructor for TranslationWizardPage.

* @@ -85,13 +86,13 @@ public class TranslationWizardPage extends WizardPage{ Composite control = formFactory.createComposite(parent); // control.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN)); control.setLayout(LayoutConstants.LAYOUT(2, true)); - + Composite leftContainer = formFactory.createComposite(control); leftContainer.setLayoutData(LayoutConstants.FILL()); leftContainer.setLayout(LayoutConstants.LAYOUT(1, false)); // leftContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE)); RootElement leftRoot = new RootElement(formFactory, leftContainer); - + Composite rightContainer = formFactory.createComposite(control); rightContainer.setLayoutData(LayoutConstants.FILL()); rightContainer.setLayout(LayoutConstants.LAYOUT(1, false)); @@ -103,20 +104,20 @@ public class TranslationWizardPage extends WizardPage{ // initialize with default language setSource(CdmStore.getDefaultLanguage()); - - + + setControl(control); } - + /** * @param defaultLanguage */ private void setSource(Language language) { - + List languages = Arrays.asList(new Language[]{language}); - + LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, languages); - + if(preferredLanguageString != null){ combo_sourceLanguage.setSelection(preferredLanguageString.getLanguage()); text_source.setLanguageString(preferredLanguageString); @@ -125,15 +126,15 @@ public class TranslationWizardPage extends WizardPage{ /** - * + * * @param element */ private void createLeftControls(ICdmFormElement element){ - - combo_sourceLanguage = formFactory.createTermComboElement(Language.class, element, null, null, SWT.NULL); + + combo_sourceLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, SWT.NULL); combo_sourceLanguage.setTerms(getLanguages()); - + combo_sourceLanguage.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) @@ -143,23 +144,25 @@ public class TranslationWizardPage extends WizardPage{ text_source.setLanguageString(multilanguageText.get(combo_sourceLanguage.getSelection())); } }); - + LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, getLanguages()); - - text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, SWT.NULL); + if (preferredLanguageString == null){ + preferredLanguageString = LanguageString.NewInstance("", PreferencesUtil.getGlobalLanguage()); + } + text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, false, SWT.NULL); // text_source.setEnabled(false); text_source.setText(preferredLanguageString.getText()); } - + /** - * + * * @param element */ private void createRightControls(ICdmFormElement element){ - combo_targetLanguage = formFactory.createTermComboElement(Language.class, element, null, null, SWT.NULL); - + combo_targetLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, SWT.NULL); + combo_targetLanguage.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) @@ -167,26 +170,27 @@ public class TranslationWizardPage extends WizardPage{ @Override public void widgetSelected(SelectionEvent e) { Language language = combo_targetLanguage.getSelection(); - + if (language == null){ + setPageComplete(false); return; } - + setPageComplete(true); LanguageString languageString; - + if(multilanguageText.containsKey(language)){ languageString = multilanguageText.get(language); }else{ languageString = LanguageString.NewInstance("", language); } - + text_target.setLanguageString(languageString); } }); - - text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, SWT.NULL); - + + text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, false, SWT.NULL); + // // The automated translation did rely on the Google Translate API. Unfortunately this service is not free anymore. // See http://code.google.com/apis/language/translate/overview.html @@ -204,12 +208,12 @@ public class TranslationWizardPage extends WizardPage{ // String text = text_source.getText(); // Language sourceLanguage = text_source.getLanguageString().getLanguage(); // Language targetLanguage = combo_targetLanguage.getSelection(); -// +// // if(targetLanguage == null){ // StoreUtil.warningDialog("Please select a target language", TranslationWizardPage.class, "Please select a language from the combo box at the right."); // return; // } -// +// // translatedText = service.translate(text, sourceLanguage, targetLanguage); // text_target.setText(translatedText); // } catch (LanguageNotSupportedException e) { @@ -217,32 +221,32 @@ public class TranslationWizardPage extends WizardPage{ // } catch (Exception e){ // StoreUtil.warningDialog("Error translating text", TranslationWizardPage.class, e.getMessage()); // } -// +// // } // }); } - + /** - * + * * @return */ private List getLanguages(){ Set languageSet = MultilanguageTextHelper.getLanguages(multilanguageText); - + List languageList = new ArrayList(); // protect against corrupt language sets for (Language language : languageSet){ if (language != null){ languageList.add(language); }else{ - StoreUtil.warningDialog("Empty languages", getClass(), "The multilanguage string contains invalid data. Please contact the administrator of you datasource."); + MessagingUtils.warningDialog("Empty languages", getClass(), "The multilanguage string contains invalid data. Please contact the administrator of you datasource."); } - } - + } + return languageList; } - + /* (non-Javadoc) * @see org.eclipse.jface.dialogs.DialogPage#dispose() */ @@ -253,8 +257,8 @@ public class TranslationWizardPage extends WizardPage{ } /** - * @return - * + * @return + * */ public LanguageString getTargetLanguageString() { return text_target.getLanguageString();