import java.util.ArrayList;
import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.PopupPanel;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
/**
*
* @author ldsjdy
*
*/
public class Loading extends PopupPanel
{
private static Loading me;
private List workingObjects = new ArrayList();
private boolean shown;
private Loading()
{
// super(false, true);
Img img = new Img("loading_smartgwt.gif",30,30);
Grid grid = new Grid(1,2);
grid.setWidget(0, 0, img);
Label label = new Label("Loading........");
label.setHeight(30);
grid.setWidget(0, 1, label);
// grid.setWidget(0, 1, label);
setWidget(grid);
}
public static Loading get()
{
if (me == null)
{
me = new Loading();
}
return me;
}
public AsyncCallback startWorking(AsyncCallback callback)
{
AsyncCallbackWrapper wrapper = new AsyncCallbackWrapper(callback);
this.workingObjects.add(wrapper);
if (!this.shown)
{
this.shown = true;
this.center();
}
return wrapper;
}
private void endWorking(AsyncCallbackWrapper wrapper)
{
this.workingObjects.remove(wrapper);
if (this.shown && (this.workingObjects.size() <= 0))
{
this.shown = false;
this.setModal(false);
this.hide();
}
}
private class AsyncCallbackWrapper implements AsyncCallback
{
private AsyncCallback callback;
private AsyncCallbackWrapper(AsyncCallback callback)
{
this.callback = callback;
}
public void onFailure(Throwable t)
{
Loading.get().endWorking(this);
this.callback.onFailure(t);
}
public void onSuccess(Object obj)
{
this.callback.onSuccess(obj);
Loading.get().endWorking(this);
}
}
}
分享到:
相关推荐
It provides practical examples of loading external configuration data and using GWT to upload files to the server, demonstrating the flexibility of connecting GWT applications to any server-side ...
在性能优化方面,SmartGWT 使用了延迟加载(Lazy Loading)和分块加载(Chunk Loading)策略,减少初始页面加载的时间,改善用户体验。特别是处理大数据集时,这些策略可以显著减少网络传输量,避免一次性加载过多...
【标题】"Angular Loading Bar 0.4.2" 是一个开源项目的压缩包,它包含了一个用于增强用户体验的加载条组件。这个组件主要用于在AngularJS应用程序中显示数据加载进度,提供用户一个可视化的反馈,让他们知道后台...
Native Comet implementations specific to browsers removing loading artifacts, reducing latency and bandwidth. Supports string and GWT-serialized messages. Supports deflate compression. Supports ...
对于大数据量的树,可以使用异步加载(lazy loading)来提高性能。只有当用户展开节点时,才请求子节点数据。这需要在DataSource中配置相关行为。 6. **自定义样式**: 你可以通过CSS样式来自定义树节点的外观,...
许多开源库,如Apache Struts, PrimeFaces, SmartGWT等,提供了预定义的树形组件,可以直接在JSP页面中使用。这些组件通常提供丰富的样式和交互特性,如异步加载、节点拖放等。 ### 4. 示例:使用JavaScript库实现...
使Tapestry可以轻松地与JEE / EJB,GWT,Shiro Security和Glassfish等JEE服务器一起使用。 在Tapestry中编写应用程序时,常见的组件都发痒了,要存放在它自己的库中。 就是这个。 该库是您在开发Tapestry 5应用程序...
Jetty Classloading Jetty JARS和依赖(Dependencies) 启动参数(Start Options) Jetty and JEE6 Web Profile 配置参考 Jetty XML语法(Syntax)–Jetty IOC Configuration Jetty XML用法–Using and Combining ...
1. **后端(Backends)**:LibGDX提供了不同平台的后端支持,如LWJGL( Lightweight Java Game Library)用于桌面应用,Android和iOS的原生后端,以及GWT(Google Web Toolkit)用于Web应用。这使得游戏能够在多种...
- **Module Loading**:如webpack、Rollup、Parcel等构建工具可以管理和加载WASM模块。 - **Debugging**:Chrome DevTools、Firefox Developer Tools以及专用的WASM调试器帮助开发者调试WASM代码。 - **Runtime ...