package com.iambookmaster.client.common; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PopupPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.iambookmaster.client.locale.AppLocale; import com.iambookmaster.client.player.PlayImages; /** * About panel * @author ggadyatskiy */ public class MaskPanel { private static MaskPanelPopup instance=new MaskPanelPopup(); //singleton private MaskPanel() { } public static void show() { if (instance.isShowing()==false) { instance.title.setText(AppLocale.getAppConstants().maskProgress()); instance.centerAndShow(); } } public static void show(String title) { instance.title.setText(title); if (instance.isShowing()==false) { instance.centerAndShow(); } } public static boolean isShown() { return instance.isShowing(); } public static void setText(String text) { instance.title.setText(text); } public static void hide() { if (instance.isShowing()) { instance.hide(); } } public static class MaskPanelPopup extends PopupPanel { private Label title; private MaskPanelPopup() { setStyleName("maskPanel"); VerticalPanel panel = new VerticalPanel(); panel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); panel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); panel.setSize("100%", "100%"); setWidget(panel); HorizontalPanel horizontalPanel = new HorizontalPanel(); horizontalPanel.setStyleName("maskPanelIn"); panel.add(horizontalPanel); panel.setCellWidth(horizontalPanel,"1%"); panel.setCellHeight(horizontalPanel,"1%"); Image image = new Image(PlayImages.PROGRESS); image.setTitle(AppLocale.getAppConstants().maskClickToClose()); image.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { hide(); } }); horizontalPanel.add(image); title = new Label(); title.setWordWrap(false); horizontalPanel.add(title); } private void centerAndShow() { setSize(String.valueOf(Window.getClientWidth())+"px", String.valueOf(Window.getClientHeight())+"px"); setPopupPosition(0,0); show(); } } }