很简单的一个东西,直接贴代码!
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>