/** * This method only returns when a change has occurred to any item on the * page to display or if the timeout is reached * * @param widgets * the widgets of the page to observe */ private boolean waitForChanges(EList<Widget> widgets) { long startTime = (new Date()).getTime(); boolean timeout = false; BlockingStateChangeListener listener = new BlockingStateChangeListener(); // let's get all items for these widgets Set<GenericItem> items = getAllItems(widgets); for (GenericItem item : items) { item.addStateChangeListener(listener); } while (!listener.hasChangeOccurred() && !timeout) { timeout = (new Date()).getTime() - startTime > TIMEOUT_IN_MS; try { Thread.sleep(300); } catch (InterruptedException e) { timeout = true; break; } } for (GenericItem item : items) { item.removeStateChangeListener(listener); } return !timeout; }
item.addStateChangeListener(listener); while (!listener.hasChangeOccurred() && !timeout) { timeout = (new Date()).getTime() - startTime > TIMEOUT_IN_MS; try {