THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
- To request focus for a component, we need to use a little JavaScript, we can do so using a behavior:
public class FocusOnLoadBehavior extends AbstractBehavior { private Component component; public void bind( Component component ) { this.component = component; component.setOutputMarkupId(true); } public void renderHead( IHeaderResponse iHeaderResponse ) { super.renderHead(iHeaderResponse); iHeaderResponse.renderOnLoadJavascript("document.getElementById('" + component.getMarkupId() + "').focus()"); } public boolean isTemporary() { // remove the behavior after component has been rendered return true; } }
- Now, to use that behavior, all we have to do is:
public class MyPage extends WebPage { public MyPage() { Form form = new Form("form"); TextField field1 = new TextField("field1"); field1.add(new FocusOnLoadBehavior()); form.add(field1); add(form); } }