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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值