Example usage for com.google.gwt.user.client.ui PopupPanel addCloseHandler

List of usage examples for com.google.gwt.user.client.ui PopupPanel addCloseHandler

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui PopupPanel addCloseHandler.

Prototype

public HandlerRegistration addCloseHandler(CloseHandler<PopupPanel> handler) 

Source Link

Usage

From source file:com.bearsoft.gwt.ui.containers.Toolbar.java

public Toolbar() {
    super();/*from   ww  w.j  a  v  a 2s  . c om*/
    getElement().addClassName("toolbar");
    chevron.getElement().addClassName("toolbar-chevron");
    content.setHgap(0);
    content.getElement().addClassName("toolbar-content");
    getElement().getStyle().setPosition(Style.Position.RELATIVE);
    content.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    content.getElement().getStyle().setHeight(100, Style.Unit.PCT);
    content.getElement().getStyle().setDisplay(Style.Display.INLINE_BLOCK);
    content.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    chevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    chevron.getElement().getStyle().setHeight(100, Style.Unit.PCT);
    setWidget(content);
    getElement().appendChild(chevron.getElement());
    chevron.addDomHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            final Map<Widget, String> lefts = new HashMap<>();
            final Map<Widget, String> rights = new HashMap<>();
            final Map<Widget, String> widths = new HashMap<>();
            final Map<Widget, String> positions = new HashMap<>();
            final Map<Widget, String> margins = new HashMap<>();
            final VerticalPanel vp = new VerticalPanel();
            vp.getElement().addClassName("toolbar-chevron-menu");
            Widget[] widgets = new Widget[content.getWidgetCount()];
            for (int i = 0; i < widgets.length; i++) {
                widgets[i] = content.getWidget(i);
            }
            for (int i = 0; i < widgets.length; i++) {
                Widget iw = widgets[i];
                int rightMost = iw.getElement().getOffsetLeft() + iw.getElement().getOffsetWidth();
                int bottomMost = iw.getElement().getOffsetTop() + iw.getElement().getOffsetHeight();
                int parentWidth = iw.getElement().getParentElement().getOffsetWidth();
                int parentHeight = iw.getElement().getParentElement().getOffsetHeight();
                if (rightMost <= 0 || iw.getElement().getOffsetLeft() >= parentWidth || bottomMost <= 0
                        || iw.getElement().getOffsetTop() >= parentHeight) {
                    lefts.put(iw, iw.getElement().getStyle().getLeft());
                    rights.put(iw, iw.getElement().getStyle().getRight());
                    widths.put(iw, iw.getElement().getStyle().getWidth());
                    positions.put(iw, iw.getElement().getStyle().getPosition());
                    margins.put(iw, iw.getElement().getStyle().getMarginLeft());

                    SimplePanel sp = new SimplePanel();
                    sp.getElement().addClassName("toolbar-chevron-menu-item");
                    sp.getElement().getStyle().setPadding(0, Style.Unit.PX);
                    sp.getElement().getStyle().setBorderWidth(0, Style.Unit.PX);
                    sp.getElement().getStyle().setPosition(Style.Position.RELATIVE);
                    sp.setWidget(iw);
                    vp.add(sp);
                }
            }
            if (vp.getWidgetCount() > 0) {
                PopupPanel pp = new PopupPanel(true);
                pp.getElement().getStyle().setPadding(0, Style.Unit.PX);
                pp.setWidget(vp);
                pp.setAnimationEnabled(false);
                pp.addCloseHandler(new CloseHandler<PopupPanel>() {

                    @Override
                    public void onClose(CloseEvent<PopupPanel> event) {
                        Widget[] widgets = new Widget[vp.getWidgetCount()];
                        for (int i = 0; i < widgets.length; i++) {
                            widgets[i] = vp.getWidget(i);
                        }
                        for (int i = 0; i < widgets.length; i++) {
                            Widget w = widgets[i];
                            assert w instanceof SimplePanel;
                            Widget iw = ((SimplePanel) w).getWidget();
                            String oldLeft = lefts.remove(iw);
                            if (oldLeft != null && !oldLeft.isEmpty()) {
                                iw.getElement().getStyle().setProperty("left", oldLeft);
                            } else {
                                iw.getElement().getStyle().clearLeft();
                            }
                            String oldRight = rights.remove(iw);
                            if (oldRight != null && !oldRight.isEmpty()) {
                                iw.getElement().getStyle().setProperty("right", oldRight);
                            } else {
                                iw.getElement().getStyle().clearRight();
                            }
                            String oldPosition = positions.remove(iw);
                            if (oldPosition != null && !oldPosition.isEmpty()) {
                                iw.getElement().getStyle().setProperty("position", oldPosition);
                            } else {
                                iw.getElement().getStyle().clearPosition();
                            }
                            String oldWidth = widths.remove(iw);
                            if (oldWidth != null && !oldWidth.isEmpty()) {
                                iw.getElement().getStyle().setProperty("width", oldWidth);
                            } else {
                                iw.getElement().getStyle().clearWidth();
                            }
                            String oldMargin = margins.remove(iw);
                            if (oldMargin != null && !oldMargin.isEmpty()) {
                                iw.getElement().getStyle().setProperty("marginLeft", oldMargin);
                            } else {
                                iw.getElement().getStyle().clearMarginLeft();
                            }
                            content.add(iw);
                        }
                        content.onResize();
                    }

                });
                pp.showRelativeTo(chevron);
                Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                    @Override
                    public void execute() {
                        for (int i = 0; i < vp.getWidgetCount(); i++) {
                            Widget w = vp.getWidget(i);
                            assert w instanceof SimplePanel;
                            SimplePanel sp = (SimplePanel) w;
                            Widget iw = sp.getWidget();
                            int width = sp.getElement().getOffsetWidth();
                            int height = iw.getElement().getOffsetHeight();
                            sp.getElement().getStyle().setWidth(width, Style.Unit.PX);
                            sp.getElement().getStyle().setHeight(height, Style.Unit.PX);
                            iw.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
                            iw.getElement().getStyle().setLeft(0, Style.Unit.PX);
                            iw.getElement().getStyle().setRight(0, Style.Unit.PX);
                            iw.getElement().getStyle().clearWidth();
                            iw.getElement().getStyle().clearMarginLeft();
                            //if (iw instanceof FocusWidget) {
                            iw.getElement().getStyle().clearRight();
                            iw.getElement().getStyle().setWidth(100, Style.Unit.PCT);
                            com.bearsoft.gwt.ui.CommonResources.INSTANCE.commons().ensureInjected();
                            iw.getElement().addClassName(
                                    com.bearsoft.gwt.ui.CommonResources.INSTANCE.commons().borderSized());
                            //}
                            if (iw instanceof RequiresResize) {
                                ((RequiresResize) iw).onResize();
                            }
                        }
                    }
                });
            }
        }
    }, ClickEvent.getType());
    getElement().<XElement>cast().addResizingTransitionEnd(this);
}

From source file:com.google.gerrit.client.api.PopupHelper.java

License:Apache License

void show() {
    final PopupPanel p = new PopupPanel(true);
    p.setStyleName(Resources.I.style().popup());
    p.addAutoHidePartner(activatingButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override//from  w ww.j  a  v  a  2s.  co m
        public void onClose(CloseEvent<PopupPanel> event) {
            activatingButton.unlink();
            if (popup == p) {
                popup = null;
            }
        }
    });
    p.add(panel);
    p.showRelativeTo(activatingButton);
    GlobalKey.dialog(p);
    popup = p;
}

From source file:com.google.gerrit.client.change.ActionMessageBox.java

License:Apache License

void show() {
    if (popup != null) {
        popup.hide();//from ww  w  .j a  va  2s.c om
        popup = null;
        return;
    }

    final PopupPanel p = new PopupPanel(true);
    p.setStyleName(style.popup());
    p.addAutoHidePartner(activatingButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                popup = null;
            }
        }
    });
    p.add(this);
    p.showRelativeTo(activatingButton);
    GlobalKey.dialog(p);
    message.setFocus(true);
    popup = p;
}

From source file:com.google.gerrit.client.change.AddFileAction.java

License:Apache License

public void onEdit() {
    if (popup != null) {
        popup.hide();/*from ww w. j  a  va 2 s  . c  o m*/
        return;
    }

    files.unregisterKeys();
    if (addBox == null) {
        addBox = new AddFileBox(changeId, revision, files);
    }
    addBox.clearPath();

    final PopupPanel p = new PopupPanel(true);
    p.setStyleName(style.replyBox());
    p.addAutoHidePartner(addButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                popup = null;
            }
        }
    });
    p.add(addBox);
    p.showRelativeTo(addButton);
    GlobalKey.dialog(p);
    addBox.setFocus(true);
    popup = p;
}

From source file:com.google.gerrit.client.change.DeleteFileAction.java

License:Apache License

void onDelete() {
    if (popup != null) {
        popup.hide();//  ww  w  . j  a  v  a  2s.c om
        return;
    }

    if (deleteBox == null) {
        deleteBox = new DeleteFileBox(changeId, revision);
    }
    deleteBox.clearPath();

    final PopupPanel p = new PopupPanel(true);
    p.setStyleName(style.replyBox());
    p.addAutoHidePartner(deleteButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                popup = null;
            }
        }
    });
    p.add(deleteBox);
    p.showRelativeTo(deleteButton);
    GlobalKey.dialog(p);
    deleteBox.setFocus(true);
    popup = p;
}

From source file:com.google.gerrit.client.change.RenameFileAction.java

License:Apache License

void onRename() {
    if (popup != null) {
        popup.hide();/*  www. j  a  va 2s.c  o  m*/
        return;
    }

    if (renameBox == null) {
        renameBox = new RenameFileBox(changeId, revision);
    }
    renameBox.clearPath();

    final PopupPanel p = new PopupPanel(true);
    p.setStyleName(style.replyBox());
    p.addAutoHidePartner(renameButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                popup = null;
            }
        }
    });
    p.add(renameBox);
    p.showRelativeTo(renameButton);
    GlobalKey.dialog(p);
    renameBox.setFocus(true);
    popup = p;
}

From source file:com.google.gerrit.client.change.ReplyAction.java

License:Apache License

void onReply(MessageInfo msg) {
    if (popup != null) {
        popup.hide();//from  www .  j  av a 2  s  .c o m
        return;
    }

    if (replyBox == null) {
        replyBox = new ReplyBox(clp, psId, revision, allLabels, permittedLabels);
        allLabels = null;
        permittedLabels = null;
    }
    if (msg != null) {
        replyBox.replyTo(msg);
    }

    final PopupPanel p = new PopupPanel(true, false);
    p.setStyleName(style.replyBox());
    p.addAutoHidePartner(replyButton.getElement());
    p.addAutoHidePartner(quickApproveButton.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                popup = null;
                if (hasDraftComments || replyBox.hasMessage()) {
                    replyButton.setStyleName(style.highlight());
                }
            }
        }
    });
    p.add(replyBox);
    Window.scrollTo(0, 0);
    replyButton.removeStyleName(style.highlight());
    p.showRelativeTo(replyButton);
    GlobalKey.dialog(p);
    popup = p;
}

From source file:com.google.gerrit.client.change.RightSidePopdownAction.java

License:Apache License

void show() {
    if (popup != null) {
        button.removeStyleName(style.selected());
        popup.hide();//  w  ww  . j ava  2 s  .  c  o m
        return;
    }

    final PopupPanel p = new PopupPanel(true) {
        @Override
        public void setPopupPosition(int left, int top) {
            top -= Document.get().getBodyOffsetTop();

            int w = Window.getScrollLeft() + Window.getClientWidth();
            int r = relativeTo.getAbsoluteLeft() + relativeTo.getOffsetWidth();
            int right = w - r;
            Style style = getElement().getStyle();
            style.clearProperty("left");
            style.setPropertyPx("right", right);
            style.setPropertyPx("top", top);
        }
    };
    p.setStyleName(style.replyBox());
    p.addAutoHidePartner(button.getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                button.removeStyleName(style.selected());
                popup = null;
            }
        }
    });
    p.add(getWidget());
    p.showRelativeTo(relativeTo);
    GlobalKey.dialog(p);
    button.addStyleName(style.selected());
    popup = p;
}

From source file:com.google.gwt.sample.stockwatcher.client.Menu.java

public void setPopupParam(PopupPanel popup, final VerticalPanel vpanel) {
    popup.addStyleName("gwt-PopUpPanel");
    popup.setAnimationEnabled(true);// w w  w.j  av  a 2  s  . co  m
    popup.setAnimationType(AnimationType.ROLL_DOWN);
    popup.setAutoHideEnabled(true);
    popup.getElement().getStyle().setBorderWidth(0, Unit.PX);
    popup.getElement().getStyle().setBackgroundColor("black");
    popup.hide();

    popup.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            vpanel.getElement().getStyle().setBackgroundColor("#000000");
        }
    });
}

From source file:com.googlesource.gerrit.plugins.cookbook.client.PopDownButton.java

License:Apache License

private void show() {
    if (popup != null) {
        getElement().getStyle().clearFontWeight();
        popup.hide();// w w  w .j a  v a 2  s  .com
        return;
    }

    final Widget relativeTo = getParent();
    final PopupPanel p = new PopupPanel(true) {
        @Override
        public void setPopupPosition(int left, int top) {
            top -= Document.get().getBodyOffsetTop();

            int w = Window.getScrollLeft() + Window.getClientWidth();
            int r = relativeTo.getAbsoluteLeft() + relativeTo.getOffsetWidth();
            int right = w - r;
            Style style = getElement().getStyle();
            style.clearProperty("left");
            style.setPropertyPx("right", right);
            style.setPropertyPx("top", top);
        }
    };
    Style popupStyle = p.getElement().getStyle();
    popupStyle.setBorderWidth(0, Unit.PX);
    popupStyle.setBackgroundColor("#EEEEEE");
    p.addAutoHidePartner(getElement());
    p.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            if (popup == p) {
                getElement().getStyle().clearFontWeight();
                popup = null;
            }
        }
    });
    p.add(widget);
    p.showRelativeTo(relativeTo);
    GlobalKey.dialog(p);
    getElement().getStyle().setFontWeight(FontWeight.BOLD);
    popup = p;
}