Project

General

Profile

« Previous | Next » 

Revision e7529454

Added by Katja Luther over 1 year ago

ref #6228: improve translation wizard

View differences:

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