Revision e7529454
Added by Katja Luther over 1 year ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java | ||
---|---|---|
16 | 16 |
import java.util.Set; |
17 | 17 |
|
18 | 18 |
import org.eclipse.core.runtime.Assert; |
19 |
import org.eclipse.jface.util.IPropertyChangeListener; |
|
20 |
import org.eclipse.jface.util.PropertyChangeEvent; |
|
19 | 21 |
import org.eclipse.jface.wizard.WizardPage; |
20 | 22 |
import org.eclipse.swt.SWT; |
21 | 23 |
import org.eclipse.swt.events.SelectionAdapter; |
... | ... | |
32 | 34 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
33 | 35 |
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement; |
34 | 36 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
37 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
|
35 | 38 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
36 | 39 |
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement; |
37 | 40 |
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; |
... | ... | |
44 | 47 |
* @author n.hoffmann |
45 | 48 |
* @created Sep 29, 2010 |
46 | 49 |
*/ |
47 |
public class TranslationWizardPage extends WizardPage{ |
|
50 |
public class TranslationWizardPage extends WizardPage implements IPropertyChangeListener{
|
|
48 | 51 |
|
49 | 52 |
private static int TEXT_HEIGHT = 400; |
50 | 53 |
|
... | ... | |
61 | 64 |
private TermComboElement<Language> combo_targetLanguage; |
62 | 65 |
|
63 | 66 |
private LanguageStringWithLabelElement text_target; |
67 |
|
|
68 |
private Language selectedLanguage; |
|
64 | 69 |
|
65 | 70 |
/** |
66 | 71 |
* <p>Constructor for TranslationWizardPage.</p> |
67 | 72 |
* |
68 | 73 |
* @param multilanguageText a {@link java.util.Map} object. |
69 | 74 |
*/ |
70 |
protected TranslationWizardPage(Map<Language, LanguageString> multilanguageText) { |
|
75 |
protected TranslationWizardPage(Map<Language, LanguageString> multilanguageText, Language selectedLanguage) {
|
|
71 | 76 |
super("TranslationWizardPage"); |
72 | 77 |
Assert.isNotNull(multilanguageText, "Multilanguage text may not be null"); |
73 | 78 |
setTitle("Add or edit translations."); |
74 | 79 |
this.multilanguageText = multilanguageText; |
80 |
this.selectedLanguage = selectedLanguage; |
|
75 | 81 |
formFactory = new CdmFormFactory(Display.getCurrent()); |
76 | 82 |
setPageComplete(false); |
77 | 83 |
} |
... | ... | |
100 | 106 |
|
101 | 107 |
createLeftControls(leftRoot); |
102 | 108 |
createRightControls(rightRoot); |
109 |
|
|
103 | 110 |
|
104 | 111 |
// initialize with default language |
105 | 112 |
setSource(CdmStore.getDefaultLanguage()); |
... | ... | |
190 | 197 |
|
191 | 198 |
text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, false, SWT.NULL); |
192 | 199 |
|
200 |
|
|
201 |
Language lang = combo_targetLanguage.getTerms().get(0); |
|
202 |
LanguageString langString; |
|
203 |
LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, getLanguages()); |
|
204 |
if (preferredLanguageString.getLanguage().equals(selectedLanguage)) { |
|
205 |
langString = multilanguageText.get(lang); |
|
206 |
}else { |
|
207 |
langString = multilanguageText.get(selectedLanguage); |
|
208 |
lang = selectedLanguage; |
|
209 |
} |
|
210 |
if (langString != null) { |
|
211 |
text_target.setLanguageString(langString); |
|
212 |
combo_targetLanguage.setSelection(lang); |
|
213 |
setPageComplete(true); |
|
214 |
} |
|
215 |
|
|
193 | 216 |
// |
194 | 217 |
// The automated translation did rely on the Google Translate API. Unfortunately this service is not free anymore. |
195 | 218 |
// See http://code.google.com/apis/language/translate/overview.html |
... | ... | |
262 | 285 |
public LanguageString getTargetLanguageString() { |
263 | 286 |
return text_target.getLanguageString(); |
264 | 287 |
} |
288 |
|
|
289 |
|
|
290 |
|
|
291 |
@Override |
|
292 |
public void propertyChange(PropertyChangeEvent event) { |
|
293 |
if (event.getSource().equals(text_target)) { |
|
294 |
setPageComplete(true); |
|
295 |
} |
|
296 |
|
|
297 |
} |
|
265 | 298 |
} |
Also available in: Unified diff
ref #6228: improve translation wizard