List of usage examples for com.google.gwt.user.client.ui PopupPanel PopupPanel
public PopupPanel()
From source file:at.ait.dme.yuma.client.map.tagcloud.RaphaelTag.java
License:EUPL
public RaphaelTag(SemanticTag tag, int x, int y, int fontsize, String hiliteColor, String hAlign, String vAlign, Raphael paper, TagSelectionListener listener) { this.tag = tag; this.fontsize = fontsize; this.hiliteCol = hiliteColor; this.listener = listener; // Text//w w w.j ava2 s . c o m textEl = paper.text(x, y, tag.getTitle(), TagCloud.FONT, fontsize, hAlign, TagCloud.TAG_TEXT_COLOR, 0); bbox = textEl.getBBox(); // Background backgroundEl = paper.rect((int) bbox.getX() - 5, (int) bbox.getY(), (int) bbox.getWidth() + 10, (int) bbox.getHeight(), TagCloud.TAG_CORNER_RADIUS, TagCloud.TAG_BACKGROUND_COLOR, TagCloud.TAG_BACKGROUND_COLOR, 0); backgroundEl.toBack(); // Foreground (invisible - only for catching mouse events!) foregroundEl = paper.rect((int) bbox.getX(), (int) bbox.getY(), (int) bbox.getWidth(), (int) bbox.getHeight(), 0, TagCloud.TAG_TEXT_COLOR, TagCloud.TAG_TEXT_COLOR, 0, new MouseEventHandler() { @Override public void onMouseOver(NativeEvent event) { textEl.setFillColor(hiliteCol); tooltip.setPopupPosition(event.getClientX() + 15, event.getClientY()); tooltip.show(); } @Override public void onMouseMove(NativeEvent event) { tooltip.setPopupPosition(event.getClientX() + 15, event.getClientY()); } @Override public void onMouseOut(NativeEvent event) { textEl.setFillColor(TagCloud.TAG_TEXT_COLOR); tooltip.hide(); } @Override public void onClick(NativeEvent event) { setSelected(!isSelected); } }); foregroundEl.setCursorStyle("pointer"); foregroundEl.toFront(); // 'Selected' icon iconEl = paper.image(TagCloud.TAG_SELECTED_ICON, (int) bbox.getX() + (int) bbox.getWidth() - 15, (int) bbox.getY() + (int) bbox.getHeight() - 30, TagCloud.TAG_SELECTED_ICON_WIDTH, TagCloud.TAG_SELECTED_ICON_HEIGHT); iconEl.hide(); // Adjust vertical alignment int dy; if (vAlign.equals(TagCloud.VALIGN_BOTTOM)) { dy = -(int) bbox.getHeight() / 2; textEl.translate(0, dy); backgroundEl.translate(0, dy); foregroundEl.translate(0, dy); iconEl.translate(0, dy); } else if (vAlign.equals(TagCloud.VALIGN_TOP)) { dy = (int) bbox.getHeight() / 2; textEl.translate(0, dy); backgroundEl.translate(0, dy); foregroundEl.translate(0, dy); iconEl.translate(0, dy); } // Tooltip tooltip = new PopupPanel(); tooltip.setStyleName("tooltip"); tooltip.setWidget(new HTML(tag.getDescription() + "<br/><b>" + tag.getURI())); tooltip.hide(); }
From source file:at.ait.dme.yuma.suite.apps.image.core.client.tagcloud.RaphaelTag.java
License:EUPL
public RaphaelTag(SemanticTag tag, int x, int y, int fontsize, String hiliteColor, String hAlign, String vAlign, Raphael paper, TagSelectionListener listener) { this.tag = tag; this.fontsize = fontsize; this.hiliteCol = hiliteColor; this.listener = listener; // Text//from w w w .j av a 2s . com textEl = paper.text(x, y, tag.getPrimaryLabel(), TagCloud.FONT, fontsize, hAlign, TagCloud.TAG_TEXT_COLOR, 0); bbox = textEl.getBBox(); // Background backgroundEl = paper.rect((int) bbox.getX() - 5, (int) bbox.getY(), (int) bbox.getWidth() + 10, (int) bbox.getHeight(), TagCloud.TAG_CORNER_RADIUS, TagCloud.TAG_BACKGROUND_COLOR, TagCloud.TAG_BACKGROUND_COLOR, 0); backgroundEl.toBack(); // Foreground (invisible - only for catching mouse events!) foregroundEl = paper.rect((int) bbox.getX(), (int) bbox.getY(), (int) bbox.getWidth(), (int) bbox.getHeight(), 0, TagCloud.TAG_TEXT_COLOR, TagCloud.TAG_TEXT_COLOR, 0, new MouseEventHandler() { @Override public void onMouseOver(NativeEvent event) { textEl.setFillColor(hiliteCol); tooltip.setPopupPosition(event.getClientX() + 15, event.getClientY()); tooltip.show(); } @Override public void onMouseMove(NativeEvent event) { tooltip.setPopupPosition(event.getClientX() + 15, event.getClientY()); } @Override public void onMouseOut(NativeEvent event) { textEl.setFillColor(TagCloud.TAG_TEXT_COLOR); tooltip.hide(); } @Override public void onClick(NativeEvent event) { setSelected(!isSelected); } }); foregroundEl.setCursorStyle("pointer"); foregroundEl.toFront(); // 'Selected' icon iconEl = paper.image(TagCloud.TAG_SELECTED_ICON, (int) bbox.getX() + (int) bbox.getWidth() - 15, (int) bbox.getY() + (int) bbox.getHeight() - 30, TagCloud.TAG_SELECTED_ICON_WIDTH, TagCloud.TAG_SELECTED_ICON_HEIGHT); iconEl.hide(); // Adjust vertical alignment int dy; if (vAlign.equals(TagCloud.VALIGN_BOTTOM)) { dy = -(int) bbox.getHeight() / 2; textEl.translate(0, dy); backgroundEl.translate(0, dy); foregroundEl.translate(0, dy); iconEl.translate(0, dy); } else if (vAlign.equals(TagCloud.VALIGN_TOP)) { dy = (int) bbox.getHeight() / 2; textEl.translate(0, dy); backgroundEl.translate(0, dy); foregroundEl.translate(0, dy); iconEl.translate(0, dy); } // Tooltip tooltip = new PopupPanel(); tooltip.setStyleName("tooltip"); tooltip.setWidget(new HTML(tag.getPrimaryDescription() + "<br/><b>" + tag.getURI())); tooltip.hide(); }
From source file:cc.alcina.framework.gwt.client.util.WidgetUtils.java
License:Apache License
public static void copyTextToClipboard(String text) { FlowPanel fp = new FlowPanel(); TextArea ta = new TextArea(); ta.setSize("600px", "300px"); ta.setText(text);/*w w w .ja va 2 s . co m*/ fp.add(ta); PopupPanel pp = new PopupPanel(); pp.add(fp); pp.setAnimationEnabled(false); pp.show(); ta.setSelectionRange(0, text.length()); try { execCopy(); } catch (JavaScriptException e) { pp.hide(); if (e.getMessage().contains("NS_ERROR_XPC_NOT_ENOUGH_ARGS")) { Registry.impl(ClientNotifications.class) .showMessage(new HTML("<div class='info'>Sorry, clipboard operations" + " are disabled by Mozilla/Firefox" + " security settings. <br><br> Please see " + "<a href='http://www.mozilla.org/editor/midasdemo/securityprefs.html'>" + "http://www.mozilla.org/editor/midasdemo/securityprefs.html</a></div> ")); } else { throw e; } } pp.hide(); }
From source file:cc.alcina.framework.gwt.client.widget.GlassDisplayer.java
License:Apache License
public void show(boolean show) { RootPanel.get().setStyleName("glass-showing", show); if (!show) {//ww w. ja va2s . c o m if (glass != null) { glass.hide(); } return; } if (glass == null) { glass = new PopupPanel(); fp = new FlowPanelClickable(); fp.setStyleName("alcina-GlassPanel"); fp.setWidth(Window.getClientWidth() + "px"); fp.setHeight(Math.max(Document.get().getBody().getOffsetHeight(), Window.getClientHeight()) + "px"); Style style = fp.getElement().getStyle(); style.setBackgroundColor("#000"); updateOpacity(); glass.setStyleName("alcina-GlassPopup"); glass.add(fp); glass.setAnimationEnabled(false); } glass.show(); }
From source file:cc.kune.events.client.viewer.CalendarViewerPanel.java
License:GNU Affero Public License
/** * Instantiates a new calendar viewer panel. * * @param gsArmor/*from w w w. j av a 2s.co m*/ * the gs armor * @param eventBus * the event bus * @param i18n * the i18n * @param guiProvider * the gui provider * @param res * the res * @param capabilitiesRegistry * the capabilities registry * @param dragController * the drag controller * @param contentDropControllerProv * the content drop controller prov * @param containerDropControllerProv * the container drop controller prov */ @Inject public CalendarViewerPanel(final GSpaceArmor gsArmor, final EventBus eventBus, final I18nTranslationService i18n, final GuiProvider guiProvider, final CoreResources res, final ContentCapabilitiesRegistry capabilitiesRegistry, final KuneDragController dragController, final Provider<FolderContentDropController> contentDropControllerProv, final Provider<FolderContainerDropController> containerDropControllerProv, final InboxToContainerDropController inbDropController) { super(gsArmor, eventBus, i18n, capabilitiesRegistry, dragController, contentDropControllerProv, containerDropControllerProv, inbDropController); calendar = new Calendar(); calendar.setSettings(setCalendarSettings()); widget = calendar; calendar.sinkEvents( Event.ONMOUSEDOWN | Event.ONDBLCLICK | Event.KEYEVENTS | Event.ONMOUSEOVER | Event.ONCLICK); Event.addNativePreviewHandler(new NativePreviewHandler() { @Override public void onPreviewNativeEvent(final NativePreviewEvent eventPrev) { // We store click position in onder to show the menu final NativeEvent natEvent = eventPrev.getNativeEvent(); if (Event.getTypeInt(natEvent.getType()) != Event.ONCLICK) { clientX = natEvent.getClientX(); clientY = natEvent.getClientY(); return; } } }); contentTitle = new ContentTitleWidget(i18n, gsArmor, capabilitiesRegistry.getIconsRegistry()); Window.addResizeHandler(new ResizeHandler() { @Override public void onResize(final ResizeEvent event) { resizeCalendar(); } }); tooltipPanel = new PopupPanel(); Tooltip.to(tooltipPanel, "FIXME"); addMouseOverHandler(new MouseOverHandler<Appointment>() { @Override public void onMouseOver(final MouseOverEvent<Appointment> event) { final Element element = (Element) event.getElement(); tooltipPanel.setPopupPosition(DOM.getAbsoluteLeft(element), DOM.getAbsoluteTop(element) + element.getOffsetHeight()); tooltipPanel.show(); if (Tooltip.getTip().isShowing()) { tooltipPanel.hide(); Tooltip.getTip().hide(); } else { Tooltip.getTip().showTemporally(tooltipPanel, tooltipText); } // NotifyUser.info("On mouse"); } }); }
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 v a2s .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 w w w .j a v a2s . co m*/ 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.dominichenko.pet.gwt.phys2d.client.utils.Shutter.java
License:Apache License
/** * Private constructor prevents creating additional instances of shutter. *///from w w w. ja v a2s . c om private Shutter() { panel = new PopupPanel(); panel.setAnimationEnabled(true); panel.setGlassEnabled(true); panel.setModal(true); panel.setStylePrimaryName("shutter"); SafeHtml loading = new ImageLoadingCell.DefaultRenderers().getLoadingRenderer().render(null); HTMLPanel hp = new HTMLPanel( "<div id='shutter_img'>" + loading.asString() + "</div>" + "<div id='shutter_label'></div>"); hp.setSize("100%", "100%"); label = new Label(DEF_LABEL); hp.add(label, "shutter_label"); panel.add(hp); }
From source file:com.eas.widgets.boxes.DropDownButton.java
protected void showMenu() { if (menu != null) { final PopupPanel pp = new PopupPanel(); pp.setAutoHideEnabled(true);/* www. j av a2s . com*/ pp.setAutoHideOnHistoryEventsEnabled(true); pp.setAnimationEnabled(true); pp.setWidget(menu); pp.showRelativeTo(chevronMenu); } }
From source file:com.edgenius.wiki.gwt.client.widgets.Lightbox.java
License:Open Source License
/** * Only show background mask on owner scope. if owner is null, then it is entire page scope. * @param owner/* ww w . j av a 2 s.c o m*/ * @param popup */ public Lightbox(UIObject owner, final PopupPanel popup) { this.popup = popup; this.owner = owner; background = new PopupPanel(); background.setStyleName(Css.LIGHT_BOX_BK); if (owner == null) { DOM.setStyleAttribute(background.getElement(), "width", "100%"); DOM.setStyleAttribute(background.getElement(), "height", "5000px"); //Window.getClientHeight() evtReg = Window.addResizeHandler(new ResizeHandler() { public void onResize(ResizeEvent event) { //background need be adjust size, but popup won't display if it is not showing. if (popup.isShowing()) { popup.center(); if (popup instanceof DialogBox) { List<DialogListener> listeners = ((DialogBox) popup).getDialogListeners(); if (listeners != null) { for (DialogListener listener : listeners) { listener.dialogRelocated((DialogBox) popup); } } } } } }); } else { background.setPopupPosition(owner.getAbsoluteLeft(), owner.getAbsoluteTop()); DOM.setStyleAttribute(background.getElement(), "width", owner.getOffsetWidth() + "px"); DOM.setStyleAttribute(background.getElement(), "height", owner.getOffsetHeight() + "px"); } }