All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jresearch.commons.gwt.client.model.localization.L18nPropertyEditor Maven / Gradle / Ivy

package org.jresearch.commons.gwt.client.model.localization;

import org.jresearch.commons.gwt.client.widget.L18nComboBox;
import org.jresearch.commons.gwt.shared.model.localization.L18nProperty;
import org.jresearch.commons.gwt.shared.model.localization.LocaleModel;
import org.jresearch.commons.gwt.shared.model.localization.LocaleTool;

import com.google.gwt.editor.client.LeafValueEditor;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

public class L18nPropertyEditor extends Composite implements LeafValueEditor {

	interface L18nPropertyEditorUiBinder extends UiBinder {
		// nothing
	}

	@UiField(provided = true) L18nComboBox language;
	@UiField Label userView;
	@UiField TextArea value;
	private L18nProperty property;

	@Inject
	public L18nPropertyEditor(final L18nPropertyEditorUiBinder uiBinder, final L18nComboBox language) {
		this.language = language;
		initWidget(uiBinder.createAndBindUi(this));
	}

	@UiHandler("language")
	void onLanguageSelection(final SelectionEvent event) {
		userView.setText(property.get(event.getSelectedItem()));
		property.getContainer();
		value.setValue(LocaleTool.getRaw(property.getContainer(), event.getSelectedItem()));
	}

	@UiHandler("value")
	void onDescriptionChange(@SuppressWarnings("unused") final ChangeEvent event) {
		property.set(language.getCurrentValue(), value.getValue());
	}

	@Override
	public void setValue(final L18nProperty property) {
		this.property = property;
		value.setValue(property.get(language.getCurrentValue()));
	}

	@Override
	public L18nProperty getValue() {
		property.set(language.getCurrentValue(), value.getValue());
		return property;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy