IDEMPIERE-5527 Implement asynchronous rendering of dashboard gadget panel (#1644)
* IDEMPIERE-5527 Implement asynchronous rendering of dashboard gadget panel - implement the same when pushing the Refresh button * - change to Async
This commit is contained in:
parent
0aec0cf450
commit
89cd0be188
|
@ -29,10 +29,13 @@
|
||||||
|
|
||||||
package org.adempiere.webui.dashboard;
|
package org.adempiere.webui.dashboard;
|
||||||
|
|
||||||
|
import org.adempiere.util.ContextRunnable;
|
||||||
|
import org.adempiere.webui.apps.BusyDialog;
|
||||||
import org.adempiere.webui.apps.graph.WDocumentStatusPanel;
|
import org.adempiere.webui.apps.graph.WDocumentStatusPanel;
|
||||||
import org.adempiere.webui.component.ToolBarButton;
|
import org.adempiere.webui.component.ToolBarButton;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.adempiere.webui.util.ServerPushTemplate;
|
import org.adempiere.webui.util.ServerPushTemplate;
|
||||||
|
import org.compiere.Adempiere;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Util;
|
import org.compiere.util.Util;
|
||||||
|
@ -95,8 +98,20 @@ public class DPDocumentStatus extends DashboardPanel implements EventListener<Ev
|
||||||
String eventName = event.getName();
|
String eventName = event.getName();
|
||||||
|
|
||||||
if (eventName.equals(Events.ON_CLICK)) {
|
if (eventName.equals(Events.ON_CLICK)) {
|
||||||
statusPanel.refresh();
|
BusyDialog busyDialog = new BusyDialog();
|
||||||
statusPanel.updateUI();
|
busyDialog.setShadow(false);
|
||||||
|
getParent().insertBefore(busyDialog, getParent().getFirstChild());
|
||||||
|
ServerPushTemplate template = new ServerPushTemplate(getDesktop());
|
||||||
|
ContextRunnable cr = new ContextRunnable() {
|
||||||
|
@Override
|
||||||
|
protected void doRun() {
|
||||||
|
refresh(template);
|
||||||
|
template.executeAsync(() -> {
|
||||||
|
busyDialog.detach();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Adempiere.getThreadPoolExecutor().submit(cr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ public class DashboardRunnable implements Runnable, Serializable
|
||||||
@Override
|
@Override
|
||||||
protected void doRun() {
|
protected void doRun() {
|
||||||
dpanel.refresh(template);
|
dpanel.refresh(template);
|
||||||
template.execute(() -> {
|
template.executeAsync(() -> {
|
||||||
busyDialog.detach();
|
busyDialog.detach();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue