Hi,
I think I am maybe missing some steps before invoking focusInItem and/or getSelectionRange. The btn2 getSelectionRange part of the code below does not work in IE; it always return null selection range.
Software:
-SmartGWT 2.4
-GWT 2.1.1
-IE 8, FireFox 3.6.6 and Chrome 8.0.552.237 browsers
Test_focus.html
Test_focus.gwt.xml
Test_focus.java
Could anyone please provide advise on what I need to add or remove from my code?
Is this an IE-related bug?
Thanks,
rtsan
I think I am maybe missing some steps before invoking focusInItem and/or getSelectionRange. The btn2 getSelectionRange part of the code below does not work in IE; it always return null selection range.
Software:
-SmartGWT 2.4
-GWT 2.1.1
-IE 8, FireFox 3.6.6 and Chrome 8.0.552.237 browsers
Test_focus.html
Code:
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=7"> <link type="text/css" rel="stylesheet" href="Test_focus.css"> <title>Test Focus</title> <script> var isomorphicDir = "test_focus/sc/"; </script> <script type="text/javascript" language="javascript" src="test_focus/test_focus.nocache.js"></script> </head> <body> <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe> <noscript> <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"> Your web browser must have JavaScript enabled in order for this application to display correctly. </div> </noscript> </body> </html>
Code:
<?xml version="1.0" encoding="UTF-8"?> <module rename-to='test_focus'> <inherits name='com.google.gwt.user.User'/> <inherits name='com.smartgwt.SmartGwt'/> <inherits name="com.smartclient.theme.enterprise.EnterpriseResources"/> <entry-point class='au.com.company.client.Test_focus'/> <source path='client'/> <source path='shared'/> </module>
Code:
package au.com.company.client; import com.google.gwt.core.client.EntryPoint; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.ButtonItem; import com.smartgwt.client.widgets.form.fields.TextAreaItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; public class Test_focus implements EntryPoint { DynamicForm form = new DynamicForm(); TextItem fld1 = new TextItem("field1", "Field 1"); TextItem fld2 = new TextItem("field2", "Field 2"); TextAreaItem fld3 = new TextAreaItem("field3", "Field 3"); ButtonItem btn1 = new ButtonItem("btn1", "Set Focus on Field 3"); ButtonItem btn2 = new ButtonItem("btn2", "getSelectionRange"); ButtonItem btn3 = new ButtonItem("btn3", "setSelectionRange"); public void onModuleLoad() { fld1.setValue("3"); fld2.setValue("8"); fld3.setValue("This is a test sentence."); btn1.setColSpan(2); btn1.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent aEvent) { // Works in IE, Chrome and Firefox. form.focusInItem("field3"); } }); btn2.setColSpan(2); btn2.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent aEvent) { form.focusInItem("field3"); int [] selectionRange = fld3.getSelectionRange(); // IE always return null. if (selectionRange == null) { SC.say("Debug", "selectionRange is null."); return; } // Chrome and Firefox return correct values. SC.say("Debug", "selectionRange [0]= " + selectionRange [0] + ", selectionRange [1]= " + selectionRange [1]); } }); btn3.setColSpan(2); btn3.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent aEvent) { String v1 = (String) fld1.getValue(); String v2 = (String) fld2.getValue(); // Works in IE, Chrome and Firefox. form.focusInItem("field3"); fld3.setSelectionRange(Integer.parseInt(v1), Integer.parseInt(v2)); } }); fld3.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent aEvent) { // Works in IE, Chrome and Firefox. int [] selectionRange = fld3.getSelectionRange(); SC.say("Debug", "selectionRange [0]= " + selectionRange [0] + ", selectionRange [1]= " + selectionRange [1]); } }); form.setFields(fld1, fld2, fld3, btn1, btn2, btn3); form.setAutoFocus(true); form.draw(); } }
Is this an IE-related bug?
Thanks,
rtsan
Comment