Search in sources :

Example 1 with Slot

use of com.vaadin.client.ui.orderedlayout.Slot in project cuba by cuba-platform.

the class Tools method showPopup.

public static void showPopup(VOverlay overlay, int left, int top) {
    overlay.setAutoHideEnabled(true);
    overlay.setVisible(false);
    overlay.show();
    Widget widget = overlay.getWidget();
    if (widget instanceof VVerticalLayout) {
        resetItemSelection(widget);
        VVerticalLayout verticalLayout = (VVerticalLayout) widget;
        if (verticalLayout.getStyleName().contains(CUBA_CONTEXT_MENU_CONTAINER)) {
            int widgetCount = verticalLayout.getWidgetCount();
            if (widgetCount > 1) {
                Widget verticalSlot = verticalLayout.getWidget(0);
                Widget buttonWidget = ((Slot) verticalSlot).getWidget();
                buttonWidget.addStyleName(SELECTED_ITEM_STYLE);
                if (buttonWidget instanceof FocusWidget) {
                    ((FocusWidget) buttonWidget).setFocus(true);
                }
            }
        }
    }
    // mac FF gets bad width due GWT popups overflow hacks,
    // re-determine width
    int offsetWidth = overlay.getOffsetWidth();
    int offsetHeight = overlay.getOffsetHeight();
    if (offsetWidth + left > Window.getClientWidth()) {
        left = left - offsetWidth;
        if (left < 0) {
            left = 0;
        }
    }
    if (offsetHeight + top > Window.getClientHeight()) {
        top = top - offsetHeight;
        if (top < 0) {
            top = 0;
        }
    }
    overlay.setPopupPosition(left, top);
    overlay.setVisible(true);
}
Also used : FocusWidget(com.google.gwt.user.client.ui.FocusWidget) CubaButtonWidget(com.haulmont.cuba.web.toolkit.ui.client.button.CubaButtonWidget) CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) Widget(com.google.gwt.user.client.ui.Widget) FocusWidget(com.google.gwt.user.client.ui.FocusWidget) VVerticalLayout(com.vaadin.client.ui.VVerticalLayout) Slot(com.vaadin.client.ui.orderedlayout.Slot)

Example 2 with Slot

use of com.vaadin.client.ui.orderedlayout.Slot in project cuba by cuba-platform.

the class Tools method isLayoutChild.

public static boolean isLayoutChild(VAbstractOrderedLayout layout, Widget child) {
    for (Widget widget : layout) {
        Slot slot = (Slot) widget;
        Widget slotWidget = slot.getWidget();
        if (slotWidget.equals(child)) {
            return true;
        }
    }
    return false;
}
Also used : CubaButtonWidget(com.haulmont.cuba.web.toolkit.ui.client.button.CubaButtonWidget) CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) Widget(com.google.gwt.user.client.ui.Widget) FocusWidget(com.google.gwt.user.client.ui.FocusWidget) Slot(com.vaadin.client.ui.orderedlayout.Slot)

Example 3 with Slot

use of com.vaadin.client.ui.orderedlayout.Slot in project cuba by cuba-platform.

the class CubaPopupButtonWidget method resetSelectedItem.

protected void resetSelectedItem() {
    for (Widget popupChild : getPopup()) {
        if (popupChild instanceof VAbstractOrderedLayout) {
            VAbstractOrderedLayout content = (VAbstractOrderedLayout) popupChild;
            for (Widget slot : content) {
                Widget contentChild = ((Slot) slot).getWidget();
                VButton button = null;
                if (contentChild instanceof CubaFileUploadWidget) {
                    button = ((CubaFileUploadWidget) contentChild).getSubmitButton();
                } else if (contentChild instanceof VButton) {
                    button = (VButton) contentChild;
                } else if (contentChild instanceof VUpload) {
                    button = ((VUpload) contentChild).submitButton;
                }
                if (button != null && button.getStyleName().contains(SELECTED_ITEM_STYLE)) {
                    button.removeStyleName(SELECTED_ITEM_STYLE);
                }
            }
        }
    }
}
Also used : CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) VButton(com.vaadin.client.ui.VButton) VAbstractOrderedLayout(com.vaadin.client.ui.orderedlayout.VAbstractOrderedLayout) VUpload(com.vaadin.client.ui.VUpload) Widget(com.google.gwt.user.client.ui.Widget) CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) Slot(com.vaadin.client.ui.orderedlayout.Slot)

Example 4 with Slot

use of com.vaadin.client.ui.orderedlayout.Slot in project cuba by cuba-platform.

the class CubaPopupButtonWidget method onPopupOpened.

@Override
protected void onPopupOpened() {
    super.onPopupOpened();
    if (customLayout) {
        return;
    }
    // find button, assign .v-selected style
    for (Widget popupChild : getPopup()) {
        if (popupChild instanceof VAbstractOrderedLayout) {
            VAbstractOrderedLayout content = (VAbstractOrderedLayout) popupChild;
            for (Widget slot : content) {
                Widget contentChild = ((Slot) slot).getWidget();
                if (contentChild instanceof VButton) {
                    VButton button = (VButton) contentChild;
                    if (button.isEnabled() && !button.getStyleName().contains(SELECTED_ITEM_STYLE)) {
                        button.addStyleName(SELECTED_ITEM_STYLE);
                        button.setFocus(true);
                        break;
                    }
                }
            }
        }
    }
    // add focus handler
    for (Widget popupChild : getPopup()) {
        if (popupChild instanceof VAbstractOrderedLayout) {
            VAbstractOrderedLayout content = (VAbstractOrderedLayout) popupChild;
            for (Widget slot : content) {
                Widget contentChild = ((Slot) slot).getWidget();
                VButton button = null;
                if (contentChild instanceof CubaFileUploadWidget) {
                    button = ((CubaFileUploadWidget) contentChild).getSubmitButton();
                } else if (contentChild instanceof VUpload) {
                    button = ((VUpload) contentChild).submitButton;
                } else if (contentChild instanceof VButton) {
                    button = (VButton) contentChild;
                }
                if (button != null) {
                    final VButton finalButton = button;
                    button.addFocusHandler(new FocusHandler() {

                        @Override
                        public void onFocus(FocusEvent event) {
                            childWidgetFocused(finalButton);
                        }
                    });
                    // sink mouse over
                    DOM.sinkEvents(button.getElement(), Event.ONMOUSEOVER | DOM.getEventsSunk(button.getElement()));
                }
            }
        }
    }
}
Also used : CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) VButton(com.vaadin.client.ui.VButton) VAbstractOrderedLayout(com.vaadin.client.ui.orderedlayout.VAbstractOrderedLayout) VUpload(com.vaadin.client.ui.VUpload) FocusHandler(com.google.gwt.event.dom.client.FocusHandler) Widget(com.google.gwt.user.client.ui.Widget) CubaFileUploadWidget(com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget) Slot(com.vaadin.client.ui.orderedlayout.Slot) FocusEvent(com.google.gwt.event.dom.client.FocusEvent)

Example 5 with Slot

use of com.vaadin.client.ui.orderedlayout.Slot in project cuba by cuba-platform.

the class CubaOrderedActionsLayoutWidget method getSlot.

@Override
public Slot getSlot(Widget widget) {
    Slot slot = widgetToSlot.get(widget);
    if (slot == null) {
        slot = new CubaOrderedLayoutSlot(this, widget);
        widgetToSlot.put(widget, slot);
    }
    return slot;
}
Also used : Slot(com.vaadin.client.ui.orderedlayout.Slot)

Aggregations

Slot (com.vaadin.client.ui.orderedlayout.Slot)5 Widget (com.google.gwt.user.client.ui.Widget)4 CubaFileUploadWidget (com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget)4 FocusWidget (com.google.gwt.user.client.ui.FocusWidget)2 CubaButtonWidget (com.haulmont.cuba.web.toolkit.ui.client.button.CubaButtonWidget)2 VButton (com.vaadin.client.ui.VButton)2 VUpload (com.vaadin.client.ui.VUpload)2 VAbstractOrderedLayout (com.vaadin.client.ui.orderedlayout.VAbstractOrderedLayout)2 FocusEvent (com.google.gwt.event.dom.client.FocusEvent)1 FocusHandler (com.google.gwt.event.dom.client.FocusHandler)1 VVerticalLayout (com.vaadin.client.ui.VVerticalLayout)1