Package net.mygwt.ui.client.widget

Source Code of net.mygwt.ui.client.widget.ModalPanel

/*
* MyGWT Widget Library
* Copyright(c) 2007, MyGWT.
* licensing@mygwt.net
*
* http://mygwt.net/license
*/
package net.mygwt.ui.client.widget;

import net.mygwt.ui.client.MyDOM;
import net.mygwt.ui.client.fx.FXStyle;

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.EventPreview;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;

/**
* A panel that grays out the view port and displays a widget above it.
*/
public class ModalPanel extends Composite implements EventPreview {

  private SimplePanel panel;
  private Widget widget;

  /**
   * Creates a new model panel.
   */
  public ModalPanel() {
    panel = new SimplePanel();
    initWidget(panel);
    panel.setStyleName("my-modal");
    panel.setWidth("100%");
    panel.setHeight("100%");
  }

  /**
   * Displays the panel.
   */
  public void show(Widget widget) {
    this.widget = widget;
    RootPanel.get().add(this);
    RootPanel.get().add(widget);
   
    DOM.setIntStyleAttribute(panel.getElement(), "zIndex", MyDOM.getZIndex());
    DOM.setIntStyleAttribute(widget.getElement(), "zIndex", MyDOM.getZIndex());
    DOM.addEventPreview(this);
  }

  /**
   * Hides the panel.
   */
  public void hide() {
    DOM.setIntStyleAttribute(getElement(), "zIndex", -1);
    DOM.removeEventPreview(this);
    RootPanel.get().remove(this);
    RootPanel.get().remove(getWidget());

  }

  public boolean onEventPreview(Event event) {
    Element target = DOM.eventGetTarget(event);
    if (DOM.isOrHasChild(widget.getElement(), target)) {
      return true;
    }
    switch (DOM.eventGetType(event)) {
      case Event.ONCLICK: {
        String tagName = DOM.getElementProperty(target, "tagName");
        // IE hack to stop flashing on a resize
        if (tagName.equals("BODY")) return false;
        FXStyle fx = new FXStyle(getElement());
        fx.blink();
        break;
      }
    }
    return false;
  }

}
TOP

Related Classes of net.mygwt.ui.client.widget.ModalPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.