List of usage examples for com.google.gwt.user.client.ui PopupPanel setWidget
@Override
public void setWidget(Widget w)
From source file:accelerator.client.view.desktop.DesktopMainMenuView.java
License:Open Source License
@UiHandler("createButton") void onCreateButtonClick(ClickEvent e) { final PopupPanel popup = new PopupPanel(true, false); MenuBar menu = new MenuBar(true); menu.addItem("?", new Command() { public void execute() { popup.hide();/* www.j av a 2 s. c o m*/ ProjectDialogBox dlg = new ProjectDialogBox(); dlg.setHandler(new ProjectDialogBox.Handler() { public void onOk(Project input) { handler.createProject(input); } }); dlg.center(); } }); menu.addItem("?", new Command() { public void execute() { popup.hide(); TagDialogBox dlg = new TagDialogBox(); dlg.setHandler(new TagDialogBox.Handler() { public void onOk(Tag input) { handler.createTag(input); } }); dlg.center(); } }); popup.setWidget(menu); popup.setPopupPositionAndShow(new PositionCallback() { public void setPosition(int offsetWidth, int offsetHeight) { int left = createButton.getAbsoluteLeft(); int top = createButton.getAbsoluteTop() - offsetHeight; popup.setPopupPosition(left, top); } }); }
From source file:accelerator.client.view.desktop.DesktopMainMenuView.java
License:Open Source License
@UiHandler("editButton") void onEditButtonClick(ClickEvent e) { final PopupPanel popup = new PopupPanel(true, false); MenuBar menu = new MenuBar(true); {/*from www. j a v a 2s . c o m*/ final Project p = getSelectedProject(); final boolean isProjectSelected = p != null; // MenuItem edit = new MenuItem("", new Command() { public void execute() { assert (p != null); popup.hide(); ProjectDialogBox dlg = new ProjectDialogBox(p); dlg.setHandler(new ProjectDialogBox.Handler() { public void onOk(Project input) { handler.updateProject(input); } }); dlg.center(); } }); edit.setEnabled(isProjectSelected); menu.addItem(edit); // MenuItem delete = new MenuItem("", new Command() { public void execute() { assert (p != null); popup.hide(); handler.deleteProject(p); } }); delete.setEnabled(isProjectSelected); menu.addItem(delete); } menu.addSeparator(); { final Tag t = getSelectedTag(); final boolean isTagSelected = t != null; // MenuItem edit = new MenuItem("", new Command() { public void execute() { assert (t != null); popup.hide(); TagDialogBox dlg = new TagDialogBox(t); dlg.setHandler(new TagDialogBox.Handler() { public void onOk(Tag input) { handler.updateTag(input); } }); dlg.center(); } }); edit.setEnabled(isTagSelected); menu.addItem(edit); // MenuItem delete = new MenuItem("", new Command() { public void execute() { assert (t != null); popup.hide(); handler.deleteTag(t); } }); delete.setEnabled(isTagSelected); menu.addItem(delete); } popup.setWidget(menu); popup.setPopupPositionAndShow(new PositionCallback() { public void setPosition(int offsetWidth, int offsetHeight) { int left = editButton.getAbsoluteLeft(); int top = editButton.getAbsoluteTop() - offsetHeight; popup.setPopupPosition(left, top); } }); }
From source file:asquare.gwt.tests.popuphidden.client.Demo.java
License:Apache License
public void onModuleLoad() { RootPanel body = RootPanel.get();/*from ww w. j ava2s . c o m*/ DOM.setStyleAttribute(body.getElement(), "background", "blue"); final Button showPopupButton = new Button("Show popup"); showPopupButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { final PopupPanel popup = new PopupPanel(true); VerticalPanel outer = new VerticalPanel(); outer.add(new HTML("Click outside the popup to dismiss it")); outer.add(new Button("DOM.setStyleAttribute(popup.getElement(), \"visibility\", \"hidden\")", new ClickHandler() { public void onClick(ClickEvent event) { DOM.setStyleAttribute(popup.getElement(), "visibility", "hidden"); } })); popup.setWidget(outer); DOM.setStyleAttribute(popup.getElement(), "border", "double black 4px"); DOM.setStyleAttribute(popup.getElement(), "background", "red"); popup.setSize("20em", "20em"); int x = showPopupButton.getAbsoluteLeft(); int y = showPopupButton.getAbsoluteTop() + showPopupButton.getOffsetHeight(); popup.setPopupPosition(x, y); popup.show(); } }); body.add(showPopupButton); }
From source file:asquare.gwt.tk.uitest.popuppanel.client.Demo.java
License:Apache License
private Widget createDefaultTransparencyTest() { RowPanel outer = new RowPanel(); outer.add(new HTML("<h3>Default transparency test</h3>")); final Button button = new Button("Show popup"); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { PopupPanel popup = new PopupPanel(true); popup.setPopupPosition(button.getAbsoluteLeft(), button.getAbsoluteTop() + button.getOffsetHeight()); popup.setWidth("10em"); DomUtil.setStyleAttribute(popup, "border", "solid black 1px"); popup.setWidget(new HTML("<p>This popup should be transparent in all browsers.</p>")); popup.show();//from w w w . ja v a 2s .c o m } }); outer.add(button); return outer; }
From source file:com.bearsoft.gwt.ui.containers.Toolbar.java
public Toolbar() { super();// w ww . j a va2 s. 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.bearsoft.gwt.ui.widgets.DropDownButton.java
protected void showMenu() { if (menu != null) { final PopupPanel pp = new PopupPanel(); pp.setAutoHideEnabled(true);//from w w w. j a va 2 s.com pp.setAutoHideOnHistoryEventsEnabled(true); pp.setAnimationEnabled(true); pp.setWidget(menu); pp.showRelativeTo(chevron); } }
From source file:com.bearsoft.gwt.ui.widgets.grid.Grid.java
public Grid(ProvidesKey<T> aKeyProvider) { super();/*from ww w. j a va2 s . com*/ getElement().getStyle().setPosition(Style.Position.RELATIVE); getElement().appendChild(tdsStyleElement); getElement().appendChild(cellsStyleElement); getElement().appendChild(oddRowsStyleElement); getElement().appendChild(evenRowsStyleElement); setRowsHeight(25); hive = new FlexTable(); setWidget(hive); hive.setCellPadding(0); hive.setCellSpacing(0); hive.setBorderWidth(0); headerLeft = new GridSection<T>(aKeyProvider); headerLeftContainer = new ScrollPanel(headerLeft); headerRight = new GridSection<T>(aKeyProvider); headerRightContainer = new ScrollPanel(headerRight); frozenLeft = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerLeft.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerLeft.redrawFooters(); } }; frozenLeftContainer = new ScrollPanel(frozenLeft); frozenRight = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerRight.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerRight.redrawFooters(); } }; frozenRightContainer = new ScrollPanel(frozenRight); scrollableLeft = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerLeft.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerLeft.redrawFooters(); } }; scrollableLeftContainer = new ScrollPanel(scrollableLeft); scrollableRight = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerRight.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerRight.redrawFooters(); } }; scrollableRightContainer = new ScrollPanel(scrollableRight); footerLeft = new GridSection<>(aKeyProvider); footerLeftContainer = new ScrollPanel(footerLeft); footerRight = new GridSection<>(aKeyProvider); footerRightContainer = new ScrollPanel(footerRight); // positioning context / overflow setup // overflow for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, footerLeftContainer, footerRightContainer }) { w.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN); } // scrollableRightContainer.getElement().getStyle().setOverflow(Style.Overflow.AUTO); // default value // context for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer, footerRightContainer }) { w.getElement().getFirstChildElement().getStyle().setPosition(Style.Position.ABSOLUTE); } // propagation of some widths headerLeft.setWidthPropagator(new GridWidthPropagator<T>(headerLeft) { @Override public void changed() { super.changed(); propagateHeaderWidth(); } }); for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { section.setWidthPropagator(new GridWidthPropagator<>(section)); } headerLeft.setColumnsPartners(new AbstractCellTable[] { frozenLeft, scrollableLeft, footerLeft }); headerRight.setColumnsPartners(new AbstractCellTable[] { frozenRight, scrollableRight, footerRight }); ColumnsRemover leftColumnsRemover = new ColumnsRemoverAdapter<T>(headerLeft, frozenLeft, scrollableLeft, footerLeft); ColumnsRemover rightColumnsRemover = new ColumnsRemoverAdapter<T>(headerRight, frozenRight, scrollableRight, footerRight); for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft, scrollableLeft, footerLeft }) { section.setColumnsRemover(leftColumnsRemover); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight, scrollableRight, footerRight }) { section.setColumnsRemover(rightColumnsRemover); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenLeft, scrollableLeft, footerLeft }) { section.setHeaderSource(headerLeft); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenRight, scrollableRight, footerRight }) { section.setHeaderSource(headerRight); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft, scrollableLeft }) { section.setFooterSource(footerLeft); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight, scrollableRight }) { section.setFooterSource(footerRight); } // hive organization hive.setWidget(0, 0, headerLeftContainer); hive.setWidget(0, 1, headerRightContainer); hive.setWidget(1, 0, frozenLeftContainer); hive.setWidget(1, 1, frozenRightContainer); hive.setWidget(2, 0, scrollableLeftContainer); hive.setWidget(2, 1, scrollableRightContainer); hive.setWidget(3, 0, footerLeftContainer); hive.setWidget(3, 1, footerRightContainer); for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer, footerRightContainer }) { w.setWidth("100%"); w.setHeight("100%"); } // misc for (Widget w : new Widget[] { headerRightContainer, frozenRightContainer, footerRightContainer, scrollableLeftContainer }) { w.getElement().getParentElement().getStyle().setOverflow(Style.Overflow.HIDDEN); } hive.getElement().getStyle().setTableLayout(Style.TableLayout.FIXED); hive.getElement().getStyle().setPosition(Style.Position.RELATIVE); for (CellTable<?> tbl : new CellTable<?>[] { headerLeft, headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { tbl.setTableLayoutFixed(true); } // header headerLeft.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerLeft, false, this)); headerLeft.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerLeft, true)); headerRight.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerRight, false, this)); headerRight.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerRight, true)); // footer footerLeft.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerLeft, false)); footerLeft.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerLeft, true)); footerRight.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerRight, false)); footerRight.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerRight, true)); // data bodies for (GridSection<?> section : new GridSection<?>[] { frozenLeft, frozenRight, scrollableLeft, scrollableRight }) { GridSection<T> gSection = (GridSection<T>) section; gSection.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(gSection, false)); gSection.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(gSection, true)); } for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { section.setAutoHeaderRefreshDisabled(true); } for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, footerLeft, footerRight }) { section.setAutoFooterRefreshDisabled(true); } // cells installCellBuilders(); scrollableRightContainer.addScrollHandler(new ScrollHandler() { @Override public void onScroll(ScrollEvent event) { int aimTop = scrollableRightContainer.getElement().getScrollTop(); int aimLeft = scrollableRightContainer.getElement().getScrollLeft(); scrollableLeftContainer.getElement().setScrollTop(aimTop); int factTopDelta = aimTop - scrollableLeftContainer.getElement().getScrollTop(); if (factTopDelta > 0) { scrollableLeftContainer.getElement().getStyle().setBottom(factTopDelta, Style.Unit.PX); } else { scrollableLeftContainer.getElement().getStyle().clearBottom(); } headerRightContainer.getElement().setScrollLeft(aimLeft); int factLeftDelta0 = aimLeft - headerRightContainer.getElement().getScrollLeft(); if (factLeftDelta0 > 0) { headerRightContainer.getElement().getStyle().setRight(factLeftDelta0, Style.Unit.PX); } else { headerRightContainer.getElement().getStyle().clearRight(); } frozenRightContainer.getElement().setScrollLeft(aimLeft); int factLeftDelta1 = aimLeft - frozenRightContainer.getElement().getScrollLeft(); if (factLeftDelta1 > 0) { frozenRightContainer.getElement().getStyle().setRight(factLeftDelta1, Style.Unit.PX); } else { frozenRightContainer.getElement().getStyle().clearRight(); } footerRightContainer.getElement() .setScrollLeft(scrollableRightContainer.getElement().getScrollLeft()); int factLeftDelta2 = aimLeft - footerRightContainer.getElement().getScrollLeft(); if (factLeftDelta2 > 0) { footerRightContainer.getElement().getStyle().setRight(factLeftDelta2, Style.Unit.PX); } else { footerRightContainer.getElement().getStyle().clearRight(); } } }); ghostLine = Document.get().createDivElement(); ghostLine.addClassName(RULER_STYLE); ghostLine.getStyle().setPosition(Style.Position.ABSOLUTE); ghostLine.getStyle().setTop(0, Style.Unit.PX); ghostColumn = Document.get().createDivElement(); ghostColumn.addClassName(COLUMN_PHANTOM_STYLE); ghostColumn.getStyle().setPosition(Style.Position.ABSOLUTE); ghostColumn.getStyle().setTop(0, Style.Unit.PX); addDomHandler(new DragEnterHandler() { @Override public void onDragEnter(DragEnterEvent event) { if (DraggedColumn.instance != null) { if (DraggedColumn.instance.isMove()) { event.preventDefault(); event.stopPropagation(); DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget()); if (target != null) { showColumnMoveDecorations(target); event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move"); } else { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } else { } } else { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } }, DragEnterEvent.getType()); addDomHandler(new DragHandler() { @Override public void onDrag(DragEvent event) { if (DraggedColumn.instance != null && DraggedColumn.instance.isResize()) { event.stopPropagation(); /* int newWidth = event.getNativeEvent().getClientX() - DraggedColumn.instance.getCellElement().getAbsoluteLeft(); if (newWidth > MINIMUM_COLUMN_WIDTH) { event.getDataTransfer().<XDataTransfer> cast().setDropEffect("move"); } else { event.getDataTransfer().<XDataTransfer> cast().setDropEffect("none"); } */ } } }, DragEvent.getType()); addDomHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { if (DraggedColumn.instance != null) { event.preventDefault(); event.stopPropagation(); if (DraggedColumn.instance.isMove()) { DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget()); if (target != null) { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move"); } else { hideColumnDecorations(); event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } else { Element hostElement = Grid.this.getElement(); int clientX = event.getNativeEvent().getClientX(); int hostAbsX = hostElement.getAbsoluteLeft(); int hostScrollX = hostElement.getScrollLeft(); int docScrollX = hostElement.getOwnerDocument().getScrollLeft(); int relativeX = clientX - hostAbsX + hostScrollX + docScrollX; ghostLine.getStyle().setLeft(relativeX, Style.Unit.PX); ghostLine.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX); if (ghostLine.getParentElement() != hostElement) { hostElement.appendChild(ghostLine); } } } } }, DragOverEvent.getType()); addDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { if (DraggedColumn.instance != null) { event.stopPropagation(); if (DraggedColumn.instance.isMove()) { if (event.getNativeEvent().getEventTarget() == (JavaScriptObject) Grid.this.getElement()) { hideColumnDecorations(); } } } } }, DragLeaveEvent.getType()); addDomHandler(new DragEndHandler() { @Override public void onDragEnd(DragEndEvent event) { event.stopPropagation(); hideColumnDecorations(); DraggedColumn.instance = null; } }, DragEndEvent.getType()); addDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { DraggedColumn<?> source = DraggedColumn.instance; DraggedColumn<T> target = targetDraggedColumn; hideColumnDecorations(); DraggedColumn.instance = null; if (source != null) { event.preventDefault(); event.stopPropagation(); if (source.isMove()) { AbstractCellTable<T> sourceSection = (AbstractCellTable<T>) source.getTable(); // target table may be any section in our grid if (target != null) { Header<?> sourceHeader = source.getHeader(); Header<?> targetHeader = target.getHeader(); if (sourceHeader instanceof DraggableHeader<?> && targetHeader instanceof DraggableHeader<?>) { DraggableHeader<T> sourceDH = (DraggableHeader<T>) sourceHeader; DraggableHeader<T> targetDH = (DraggableHeader<T>) targetHeader; moveColumnNode(sourceDH.getHeaderNode(), targetDH.getHeaderNode()); } else { int sourceIndex = source.getColumnIndex(); int targetIndex = target.getColumnIndex(); GridSection<T> targetSection = (GridSection<T>) target.getTable(); boolean isSourceLeft = sourceSection == headerLeft || sourceSection == frozenLeft || sourceSection == scrollableLeft || sourceSection == footerLeft; boolean isTargetLeft = targetSection == headerLeft || targetSection == frozenLeft || targetSection == scrollableLeft || targetSection == footerLeft; sourceSection = isSourceLeft ? headerLeft : headerRight; targetSection = isTargetLeft ? headerLeft : headerRight; int generalSourceIndex = isSourceLeft ? sourceIndex : sourceIndex + frozenColumns; int generalTargetIndex = isTargetLeft ? targetIndex : targetIndex + frozenColumns; Header<?> header = sourceSection.getHeader(sourceIndex); if (header instanceof DraggableHeader) { ((DraggableHeader) header).setTable(targetSection); } if (generalSourceIndex != generalTargetIndex) { Column<T, ?> column = (Column<T, ?>) source.getColumn(); if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isMoveable()) { moveColumn(generalSourceIndex, generalTargetIndex); } } } } } else { Header<?> header = source.getHeader(); if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isResizable()) { int newWidth = Math.max( event.getNativeEvent().getClientX() - source.getCellElement().getAbsoluteLeft(), MINIMUM_COLUMN_WIDTH); // Source and target tables are the same, so we can // cast to DraggedColumn<T> with no care setColumnWidthFromHeaderDrag(((DraggedColumn<T>) source).getColumn(), newWidth, Style.Unit.PX); } } } } }, DropEvent.getType()); columnsChevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE); columnsChevron.getElement().addClassName(COLUMNS_CHEVRON_STYLE); getElement().appendChild(columnsChevron.getElement()); columnsChevron.addDomHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { PopupPanel pp = new PopupPanel(); pp.setAutoHideEnabled(true); pp.setAutoHideOnHistoryEventsEnabled(true); pp.setAnimationEnabled(true); MenuBar columnsMenu = new MenuBar(true); fillColumns(columnsMenu, headerLeft); fillColumns(columnsMenu, headerRight); pp.setWidget(columnsMenu); pp.setPopupPosition(columnsChevron.getAbsoluteLeft(), columnsChevron.getAbsoluteTop()); pp.showRelativeTo(columnsChevron); } private void fillColumns(MenuBar aTarget, final GridSection<T> aSection) { for (int i = 0; i < aSection.getColumnCount(); i++) { Header<?> h = aSection.getHeader(i); final Column<T, ?> column = aSection.getColumn(i); SafeHtml rendered; if (h.getValue() instanceof String) { String hVal = (String) h.getValue(); rendered = hVal.startsWith("<html>") ? SafeHtmlUtils.fromTrustedString(hVal.substring(6)) : SafeHtmlUtils.fromString(hVal); } else { Cell.Context context = new Cell.Context(0, i, h.getKey()); SafeHtmlBuilder sb = new SafeHtmlBuilder(); h.render(context, sb); rendered = sb.toSafeHtml(); } MenuItemCheckBox miCheck = new MenuItemCheckBox(!aSection.isColumnHidden(column), rendered.asString(), true); miCheck.addValueChangeHandler(new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { if (Boolean.TRUE.equals(event.getValue())) { showColumn(column); } else { hideColumn(column); } Grid.this.onResize(); } }); aTarget.addItem(miCheck); } } }, ClickEvent.getType()); ColumnSortEvent.Handler sectionSortHandler = new ColumnSortEvent.Handler() { @Override public void onColumnSort(ColumnSortEvent event) { boolean isCtrlKey = ((GridSection<?>) event.getSource()).isCtrlKey(); boolean contains = false; int containsAt = -1; for (int i = 0; i < sortList.size(); i++) { if (sortList.get(i).getColumn() == event.getColumn()) { contains = true; containsAt = i; break; } } if (!contains) { if (!isCtrlKey) { sortList.clear(); } sortList.insert(sortList.size(), new ColumnSortList.ColumnSortInfo(event.getColumn(), true)); } else { boolean wasAscending = sortList.get(containsAt).isAscending(); if (!isCtrlKey) { sortList.clear(); if (wasAscending) { sortList.push(new ColumnSortList.ColumnSortInfo(event.getColumn(), false)); } } else { sortList.remove(sortList.get(containsAt)); if (wasAscending) { sortList.insert(containsAt, new ColumnSortList.ColumnSortInfo(event.getColumn(), false)); } } } ColumnSortEvent.fire(Grid.this, sortList); } }; headerLeft.getColumnSortList().setLimit(1); headerLeft.addColumnSortHandler(sectionSortHandler); headerRight.getColumnSortList().setLimit(1); headerRight.addColumnSortHandler(sectionSortHandler); gridColor = PublishedColor.create(211, 211, 211, 255); regenerateDynamicTDStyles(); regenerateDynamicOddRowsStyles(); getElement().<XElement>cast().addResizingTransitionEnd(this); }
From source file:com.eas.widgets.boxes.DropDownButton.java
protected void showMenu() { if (menu != null) { final PopupPanel pp = new PopupPanel(); pp.setAutoHideEnabled(true);/*from w w w.ja v a 2 s .c om*/ pp.setAutoHideOnHistoryEventsEnabled(true); pp.setAnimationEnabled(true); pp.setWidget(menu); pp.showRelativeTo(chevronMenu); } }
From source file:com.education.lessons.ui.client.login.utils.UIHelper.java
License:Open Source License
public static void tip(String message, UIObject target) { HTML messageLabel = new HTML(message); messageLabel.addStyleName("content"); PopupPanel tip = new DecoratedPopupPanel(true); tip.addStyleName("tip-box"); tip.setWidget(messageLabel); tip.showRelativeTo(target);/* w w w .ja v a 2 s .c om*/ }
From source file:com.google.api.explorer.client.history.JsonPrettifier.java
License:Apache License
/** * Create a drop down menu that allows the user to navigate to compatible methods for the * specified resource.//from w ww . j av a 2s . c om * * @param methods Methods for which to build the menu. * @param service Service to which the methods correspond. * @param objectToPackage Object which should be passed to the destination menus. * @param linkFactory Factory that will be used to create links. * @return A button that will show the menu that was generated or {@code null} if there are no * compatible methods. */ private static PushButton createRequestMenu(final Collection<ApiMethod> methods, final ApiService service, DynamicJso objectToPackage, PrettifierLinkFactory linkFactory) { // Determine if a menu even needs to be generated. if (methods.isEmpty()) { return null; } // Create the parameters that will be passed to the destination menu. String resourceContents = new JSONObject(objectToPackage).toString(); final Multimap<String, String> resourceParams = ImmutableMultimap.of(UrlBuilder.BODY_QUERY_PARAM_KEY, resourceContents); // Create the menu itself. FlowPanel menuContents = new FlowPanel(); // Add a description of what the menu does. Label header = new Label("Use this resource in one of the following methods:"); header.addStyleName(style.dropDownMenuItem()); menuContents.add(header); // Add a menu item for each method. for (ApiMethod method : methods) { PushButton methodItem = new PushButton(); methodItem.addStyleName(style.dropDownMenuItem()); methodItem.addStyleName(style.selectableDropDownMenuItem()); methodItem.setText(method.getId()); menuContents.add(methodItem); // When clicked, Navigate to the menu item. UrlBuilder builder = new UrlBuilder(); String newUrl = builder.addRootNavigationItem(RootNavigationItem.ALL_VERSIONS) .addService(service.getName(), service.getVersion()).addMethodName(method.getId()) .addQueryParams(resourceParams).toString(); methodItem.addClickHandler(linkFactory.generateMenuHandler(newUrl)); } // Create the panel which will be disclosed. final PopupPanel popupMenu = new PopupPanel(/* auto hide */ true); popupMenu.setStyleName(style.dropDownMenuPopup()); FocusPanel focusContents = new FocusPanel(); focusContents.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { popupMenu.hide(); } }); focusContents.setWidget(menuContents); popupMenu.setWidget(focusContents); // Create the button which will disclose the menu. final PushButton menuButton = new PushButton(new Image(resources.downArrow())); menuButton.addStyleName(style.reusableResourceButton()); menuButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { popupMenu.setPopupPositionAndShow(new PositionCallback() { @Override public void setPosition(int offsetWidth, int offsetHeight) { popupMenu.setPopupPosition( menuButton.getAbsoluteLeft() + menuButton.getOffsetWidth() - offsetWidth, menuButton.getAbsoluteTop() + menuButton.getOffsetHeight()); } }); } }); // Return only the button to the caller. return menuButton; }