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

com.talk2object.plum.view.web.component.input.WebTextBox Maven / Gradle / Ivy

The newest version!
package com.talk2object.plum.view.web.component.input;

import java.util.Map;

import org.jsoup.nodes.Element;
import org.jsoup.parser.Tag;

import com.talk2object.plum.view.component.Component;
import com.talk2object.plum.view.component.TextBox;
import com.talk2object.plum.view.event.AbstractViewAction;
import com.talk2object.plum.view.event.ViewAction;
import com.talk2object.plum.view.event.WebEvent;
import com.talk2object.plum.view.web.component.AbstractWebComponent;

public class WebTextBox extends AbstractWebComponent {
	public static final String VALUE_CHANGE = "valueChange";
	private final String INPUT_NAME = "text";
	private Element text;

	public WebTextBox(String id, Component component) {
		super(id, component);
	}

	protected TextBox getTextBox() {
		return (TextBox) component;
	}

	public void createHtmlElement() {

		text = new Element(Tag.valueOf("input"), "");
		text.attr("type", "text");

		if (getTextBox().getText() != null)
			text.attr("value", getTextBox().getText());

		text.attr("name", getFullInputName(INPUT_NAME));

		htmlOuterElement = text;
		htmlInnerElement = htmlOuterElement;
	}

	protected ViewAction onValueChange(String newValue) {
		text.attr("value", newValue);

		return new AbstractViewAction(WebEvent.VALUE_SET.name()) {

			@Override
			public void execute(Component view) {
				TextBox tb = (TextBox) view;
				tb.setText(text.attr("value"), true);
			}
		};
	}

	@Override
	public ViewAction processEvent(WebEvent event,
			Map parameters) {
		if (event == WebEvent.VALUE_SET) {
			String newValue = (String) parameters.get(INPUT_NAME);
			return onValueChange(newValue);

		} else
			throw new RuntimeException("unknow event:" + event);

	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy