`
vakin.jiang
  • 浏览: 147198 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

GWT1.7做的一个简单的Loading进度条组件(带遮罩层)

阅读更多
很简单的一个东西,直接贴代码!
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.DecoratedPopupPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * 加载页面的进度条。。。
 * @version 1.2 2009-07-31
 */
public class LoadPop {

	private static final DecoratedPopupPanel simplePopup = new DecoratedPopupPanel();
	private static final HTML showText = new HTML();
	private static final String defTxt = "载入中";
	private static final String INDENT = "    "; // 加空格缩进
	private static final String LOAD_SPLIT = ">>"; // 
	private static final HTML waterfall = new HTML();//遮罩层
	
	private static int count = 1;
	private static final Timer timer = new Timer(){

		@Override
		public void run() {
			if((count++)>=10){
				count = 1;
				showText.setHTML(showText.getText().replaceAll(LOAD_SPLIT, ""));
			}			
			showText.setHTML(showText.getText()+ LOAD_SPLIT);
		}};
	
	static {
		simplePopup.setStyleName("LoadingShow");
		simplePopup.setWidget(showText);
	}
	
	public static final void show(){
		show(INDENT + defTxt);
	}
	
	public static final void show(String html){
		initWaterfall();
		showText.setHTML(INDENT + html);
		simplePopup.show();
		simplePopup.setPopupPosition(0, getScrollTop());
		
		timer.scheduleRepeating(500);
	}
	
	public static final void hide(){
		hide(INDENT + "加载成功");
	};
	
	public static final void hide(String html){
		count = 1;
		showText.setHTML(INDENT+ html);
		simplePopup.hide();
		waterfall.setVisible(false);
	}
	
	private static void  initWaterfall(){
		waterfall.setStyleName("PopupPanelEx_Backgroup_div");
		waterfall.setVisible(true);
		waterfall.setSize(getMaxWidth() + "px", getMaxHeight()+ "px");
		

		Window.addResizeHandler(new ResizeHandler(){
			@Override
			public void onResize(ResizeEvent event) {
				if(simplePopup.isVisible()) 
					simplePopup.setPopupPosition(0, getScrollTop());
				if(waterfall.isVisible())
					waterfall.setSize(getMaxWidth() + "px", getMaxHeight()+ "px");
			}});
	
		RootPanel.get().add(waterfall);
	}
	
	public static native int getScrollTop() /*-{
	   // Standard mode || Quirks mode. 
	   return $doc.documentElement.scrollTop || $doc.body.scrollTop;
	 }-*/;
	
	public static native int getScrollWidth() /*-{
	// Standard mode || Quirks mode. 
		return $doc.documentElement.scrollWidth || $doc.body.scrollWidth;
	}-*/;

	public static native int getScrollHeight() /*-{
	// Standard mode || Quirks mode. 
		return $doc.documentElement.scrollHeight || $doc.body.scrollHeight;
	}-*/;
	
	public static native int getClientWidth() /*-{
	// Standard mode || Quirks mode. 
		return $doc.documentElement.clientWidth || $doc.body.clientWidth;
   }-*/;

public static native int getClientHeight() /*-{
// Standard mode || Quirks mode. 
	return $doc.documentElement.clientHeight || $doc.body.clientHeight;
}-*/;

	public static int getMaxWidth() {
		int scrollWidth = getScrollWidth();
		int clientWidth = getClientWidth();

		// 取宽度最大值
		return scrollWidth > clientWidth ? scrollWidth : clientWidth;
	}

	public static int getMaxHeight() {
		int scrollHeight = getScrollHeight();
		int clientHeight = getClientHeight();

		// 取高度最大值
		return scrollHeight > clientHeight ? scrollHeight : clientHeight;
	}
}




<style>
.LoadingShow{
	/*background-color: #EEEEEE;*/
	font-size: 12px;
	font-weight: bold;
	width: 100%;
	z-index: 999;
}

.PopupPanelEx_Backgroup_div{
	height: 100%;
	width: 100%;
	filter: alpha(opacity = 50);
	-moz-opacity:0.5;
	opacity:0.5;
	background-color: #CCCCCC;
	position: absolute;
	left: 0px;
	top: 0px;
	right: 0px;
	bottom: 0px;
}
</style>


2
0
分享到:
评论

相关推荐

    GWT_1.7_API

    自己做的GWT 1.7的API文档 有需要的可以下载

    GWT1.7学习之 了解基本的使用

    GWT1.7是GWT的一个早期版本,虽然现在已经有了更新的版本,但学习它的基本使用仍然可以帮助我们理解GWT的工作原理和开发模式。 在GWT中,开发者可以使用Java语言编写客户端代码,然后通过GWT编译器将Java代码转换为...

    GWT 研究. 1.7 版本.

    **GWT(Google Web Toolkit)** 是一个开源的开发框架,允许Java开发者创建富互联网应用程序(RIA)。在GWT 1.7版本中,它提供了一系列的工具和技术,帮助开发者构建高性能、跨浏览器的Web应用,而无需学习复杂的...

    gwt-windows-1.7.1

    "gwt-windows-1.7.1"指的是GWT的一个特定版本,即1.7.1,适配于Windows操作系统。这个版本可能包含了GWT开发所需的库文件、编译器、运行时环境和其他相关工具。 在GWT 1.7.1中,有几个关键的知识点值得深入探讨: ...

    GWT1.7+Spring2.5+Hibernate3集成(保证能用!)

    完整代码,绝对能用:Spring和Hibernate部分实现了一个权限管理系统。GWT部分集成了Spring的Service(网上的例子很少,要不代码不全,要不不能使用,这个保证完全可以使用)。请注意各个配置文件,程序所用的包都在...

    gwt 实现的一个简单计算器

    这个"gwt 实现的一个简单计算器"项目提供了一个基础的起点,适合初学者了解GWT的工作原理和开发流程。下面将详细介绍GWT、计算器实现的关键知识点以及如何在Eclipse环境中进行调试。 1. **GWT概述**: GWT允许...

    GWT 1.7.0 参考手册 (CHM)

    最新版本的GWT的原版英文参考手册,如果需要其他的版本,请在我的资料库中查找……

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    - 编写一个简单的界面,显示“Hello, GWT!”的消息。 - 通过GWT编译器部署并运行。 - **案例2: GWT Shop**: - 开发一个简单的在线购物网站。 - 包括商品展示、购物车管理等功能。 - 使用GWT的UI组件构建用户...

    GWT入门 GWT中文教程

    首先,EXT-GWT2.0.1是EXT-GWT(GWT-Ext)的一个版本,它是基于GWT的组件库,提供了丰富的用户界面组件,如表格、树形视图、菜单等,使得开发者可以构建出具有桌面级用户体验的Web应用。EXT-GWT的API和DOC文档对于...

    gxt-2.2.4 EXT GWT

    gxt-2.2.4 EXT GWT Note : Ext GWT 2.X requires GWT 1.7+ or GWT 2.0+ (any build ending in "-gwt2.zip").

    一个简单的GWT示例

    在这个"简单的GWT示例"中,我们可能看到一个用于展示股票价格的应用。GWT的应用通常包含一个或多个Widget,这些Widget可以是按钮、文本框、表格或其他用户交互元素。在股票示例中,可能有一个表格用于显示股票代码、...

    smartgwt最新版本GWT的DEMO

    SmartGWT是基于Google Web Toolkit (GWT) 的一个开源框架,它为开发富互联网应用程序(RIA)提供了丰富的组件库和高级功能。SmartGWT的最新版本进一步提升了用户体验,简化了开发过程,提供了更多现代Web设计的需求...

    gwt 练习 gwt学习

    GWT,全称为Google Web Toolkit,是一个开源的Java框架,用于构建高性能、可维护的富互联网应用程序(RIA)。GWT允许开发者使用Java语言编写客户端代码,然后通过编译器将其转换为优化过的JavaScript,以便在各种...

    Gwt Designer 开发实例一

    GWT中的Composite组件允许开发者将多个UI元素组合成一个自定义的复杂组件。在GWT Designer中,你可以通过拖拽和放置控件,以及设置布局管理器来创建Composite。Composite类是GWT的基础,可以构建可重用的代码模块,...

    gwtext学习三部曲

    gwtext是Google Web Toolkit (GWT) 的一个扩展库,提供了丰富的用户界面组件和样式,使得在GWT平台上构建复杂的Web应用变得更加便捷。GWT Ext则是gwtext的核心部分,基于Ext JS库,为GWT提供了更多的UI组件和功能。 ...

    GWT安装和使用

    每个 UI 组件都对应于 GWT 中的一个特定类,例如按钮(Button)、文本框(Textbox)等。这些组件的设计考虑到了易用性和灵活性,开发者可以通过简单的 API 调用来实现复杂的 UI 设计。 **2. 简单的 RPC 调用** 远程...

    SmartGWT2.0 API

    总的来说,SmartGWT 2.0 API 是一个强大的工具,它的出现使得GWT开发者能够快速创建出美观且功能丰富的Web应用,特别适合处理大数据量和复杂交互的场景。通过利用其组件、数据绑定、性能优化等特性,开发者可以更...

    GWT DEMO 增删改查

    在"TestSmartGWT"这个DEMO中,可能会使用SmartGWT库,它是GWT的一个扩展,提供了更丰富的组件和更高级的功能。例如,SmartGWT提供了`ListGrid`,这是一个强大的表格组件,可以实现复杂的表格操作。此外,`DataSource...

    activeweb-gwt-1.7.jar

    官方版本,亲测可用

    GWT

    标题 "GWT" 指的是 Google Web Toolkit,这是一个开源的Java开发框架,主要用于构建高性能、跨浏览器的富互联网应用程序(Rich Internet Applications,简称RIA)。GWT通过将Java代码编译为JavaScript,使得开发者...

Global site tag (gtag.js) - Google Analytics