/** * Displays this menu at a specific xy position. * * @param x the x coordinate * @param y the y coordinate */ public void showAt(int x, int y) { MenuEvent me = new MenuEvent(this); if (fireEvent(Events.BeforeShow, me)) { RootPanel.get().add(this); el().makePositionable(true); onShow(); el().updateZIndex(0); showing = true; doAutoSize(); if (constrainViewport) { Point p = el().adjustForConstraints(new Point(x, y)); x = p.x; y = p.y; } setPagePosition(x + XDOM.getBodyScrollLeft(), y + XDOM.getBodyScrollTop()); if (enableScrolling) { constrainScroll(y); } el().show(); eventPreview.add(); if (focusOnShow) { focus(); } fireEvent(Events.Show, me); } }
/** * Displays this menu relative to another element. * * @param elem the element to align to * @param pos the {@link El#alignTo} anchor position to use in aligning to the element (defaults * to defaultAlign) * @param offsets the menu align offsets */ public void show(Element elem, String pos, int[] offsets) { MenuEvent me = new MenuEvent(this); if (fireEvent(Events.BeforeShow, me)) { RootPanel.get().add(this); el().makePositionable(true); onShow(); el().updateZIndex(0); showing = true; doAutoSize(); el().alignTo(elem, pos, offsets); if (enableScrolling) { constrainScroll(el().getY()); } el().show(); eventPreview.add(); if (focusOnShow) { focus(); } fireEvent(Events.Show, me); } }
@Override protected void onLayoutExcecuted(Layout layout) { super.onLayoutExcecuted(layout); doAutoSize(); }