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

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

Introduction

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

Prototype

public PopupPanel() 

Source Link

Document

Creates an empty popup panel.

Usage

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");
    }

}