Be sure your post includes:
1. SmartClient Version: v8.3p_2013-02-09/PowerEdition Deployment (built 2013-02-09)
2. Chrome 25.0.1364.172
Firefox 18.0.2
Ok, we are encountering a MAJOR UI/usability issue here.
If not resolved, we may be moving away from Smart GWT in our next release.
Issue:
* We are trying to update some listgrids by refreshing them periodically with a timer.
* We have noticed that when a user is trying to edit a listgrid record cell or another textbox-like item (including a listgrid filter or a dynamic form textfield), the item loses focus at the same interval as the timer firing.
* When it loses focus it has the effect of either dropping user keystrokes or, WORSE YET, selecting and then deleting the value the user was typing in.
I can repeatedly reproduce this issue on FF and Chrome in HOSTED and NON-HOSTED mode (Tomcat 7.0.34).
Furthermore, the datasource doesn't even have to be the same datasource the user is editing and no UI changes/updates in our application code are even necessary.
Here is sample code that added to any application will cause this horrific issue (note datasource below is from Smart GWT showcase samples)
As you can see, the code is doing nothing but just fetching "animals" data every 2 seconds.
To make sure it wasn't something else in our App, I've modified the Smart GWT Showcase sample: builtinDS.
File: BuiltInDS.java (note full file is attached)
Here is all the code I modified in that file:
To observe this issue, while the app is running in FF or Chrome (in Chrome you can actually see the focus highlight appear and disappear every 2 seconds), as a user:
1) Select the Animals datasource
2) Try to enter a value above the Animal column in the filter editor box. You will notice if you type a longer search term at a reasonable speed your entries will keep disappearing as the item loses and then regains focus, clearing your selection
3) Try to edit one of the cell values, say under the scientific name, by double-clicking the cell and then typing. You will notice you can't type more than a few characters before your entry is erased. Repeatedly.
If you switch to the Office Supplies and try to edit a cell you will see the same behavior.
The fact that NOTHING is being done to the UI in the timer code makes us believe that SOMETHING in the SmartGWT framework is causing a refresh or doing something to cause focus to be lost/re-gained repeatedly on datasource fetch.
Has anyone else experienced this issue? Overcome it? Resolved it?
Without the ability to refresh data AND allow users to edit listgrid cells, Smart GWT loses much of its appeal.
1. SmartClient Version: v8.3p_2013-02-09/PowerEdition Deployment (built 2013-02-09)
2. Chrome 25.0.1364.172
Firefox 18.0.2
Ok, we are encountering a MAJOR UI/usability issue here.
If not resolved, we may be moving away from Smart GWT in our next release.
Issue:
* We are trying to update some listgrids by refreshing them periodically with a timer.
* We have noticed that when a user is trying to edit a listgrid record cell or another textbox-like item (including a listgrid filter or a dynamic form textfield), the item loses focus at the same interval as the timer firing.
* When it loses focus it has the effect of either dropping user keystrokes or, WORSE YET, selecting and then deleting the value the user was typing in.
I can repeatedly reproduce this issue on FF and Chrome in HOSTED and NON-HOSTED mode (Tomcat 7.0.34).
Furthermore, the datasource doesn't even have to be the same datasource the user is editing and no UI changes/updates in our application code are even necessary.
Here is sample code that added to any application will cause this horrific issue (note datasource below is from Smart GWT showcase samples)
Code:
new Timer() { @Override public void run() { DataSource.get("animals").fetchData(null, new DSCallback() { public void execute(DSResponse response, Object rawData, DSRequest request) { } }); } }.scheduleRepeating(2000);
To make sure it wasn't something else in our App, I've modified the Smart GWT Showcase sample: builtinDS.
File: BuiltInDS.java (note full file is attached)
Here is all the code I modified in that file:
Code:
// EDITS START HERE at Line 179 boundList.setShowFilterEditor(true); vStack.draw(); startDeviceLayoutRefreshing(); } private void startDeviceLayoutRefreshing() { new Timer() { @Override public void run() { DataSource.get("animals").fetchData(null, new DSCallback() { public void execute(DSResponse response, Object rawData, DSRequest request) { } }); } }.scheduleRepeating(2000); } // EDITS END HERE private void bindComponents(String dsName) { DataSource ds = DataSource.get(dsName); boundList.setDataSource(ds); boundViewer.setDataSource(ds); boundForm.setDataSource(ds); boundList.fetchData(); newBtn.enable(); saveBtn.disable(); } }
1) Select the Animals datasource
2) Try to enter a value above the Animal column in the filter editor box. You will notice if you type a longer search term at a reasonable speed your entries will keep disappearing as the item loses and then regains focus, clearing your selection
3) Try to edit one of the cell values, say under the scientific name, by double-clicking the cell and then typing. You will notice you can't type more than a few characters before your entry is erased. Repeatedly.
If you switch to the Office Supplies and try to edit a cell you will see the same behavior.
The fact that NOTHING is being done to the UI in the timer code makes us believe that SOMETHING in the SmartGWT framework is causing a refresh or doing something to cause focus to be lost/re-gained repeatedly on datasource fetch.
Has anyone else experienced this issue? Overcome it? Resolved it?
Without the ability to refresh data AND allow users to edit listgrid cells, Smart GWT loses much of its appeal.
Comment