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