Example usage for com.google.gwt.aria.client Roles getDialogRole

List of usage examples for com.google.gwt.aria.client Roles getDialogRole

Introduction

In this page you can find the example usage for com.google.gwt.aria.client Roles getDialogRole.

Prototype

public static DialogRole getDialogRole() 

Source Link

Usage

From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java

License:Apache License

public CubaFileUploadProgressWindow() {
    super(false, true); // no autohide, modal
    // Different style of shadow for windows

    Roles.getDialogRole().set(getElement());
    Roles.getDialogRole().setAriaRelevantProperty(getElement(), RelevantValue.ADDITIONS);

    constructDOM();/*from   w  w  w.ja  va 2  s  . co m*/
}

From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java

License:Apache License

protected void constructDOM() {
    setStyleName(CLASSNAME);/* w ww. j a  v  a  2  s .c  o m*/

    topTabStop = DOM.createDiv();
    topTabStop.setTabIndex(0);

    header = DOM.createDiv();
    header.setClassName(CLASSNAME + "-outerheader");

    headerText = DOM.createDiv();
    headerText.setClassName(CLASSNAME + "-header");

    contents = DOM.createDiv();
    contents.setClassName(CLASSNAME + "-contents");

    footer = DOM.createDiv();
    footer.setClassName(CLASSNAME + "-footer");

    resizeBox = DOM.createDiv();
    resizeBox.setClassName(CLASSNAME + "-resizebox");

    closeBox = DOM.createDiv();
    closeBox.setClassName(CLASSNAME + "-closebox");
    closeBox.setTabIndex(0);

    DOM.appendChild(footer, resizeBox);

    bottomTabStop = DOM.createDiv();
    bottomTabStop.setTabIndex(0);

    wrapper = DOM.createDiv();
    wrapper.setClassName(CLASSNAME + "-wrap");

    DOM.appendChild(wrapper, topTabStop);
    DOM.appendChild(wrapper, header);
    DOM.appendChild(header, closeBox);
    DOM.appendChild(header, headerText);
    DOM.appendChild(wrapper, contents);
    DOM.appendChild(wrapper, footer);
    DOM.appendChild(wrapper, bottomTabStop);
    DOM.appendChild(super.getContainerElement(), wrapper);

    sinkEvents(Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.TOUCHEVENTS | Event.ONCLICK | Event.ONLOSECAPTURE);

    currentFileLabel = new VLabel();
    currentFileLabel.addStyleName("upload-file-label");
    currentFileLabel.setWidth("100%");

    progressBar = new VProgressBar();
    progressBar.addStyleName("upload-progressbar");
    progressBar.setIndeterminate(false);
    progressBar.setState(0);
    progressBar.setWidth("100%");

    cancelButton = new VButton();
    cancelButton.addStyleName("upload-cancel-button");
    cancelButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            closeWindow();
        }
    });

    contentPanel = new SimpleFocusablePanel();
    contentPanel.setStyleName("content-pane");
    contentPanel.addKeyDownHandler(this);
    contentPanel.addKeyUpHandler(this);

    setWidget(contentPanel);

    final FlowPanel verticalPanel = new FlowPanel();
    verticalPanel.setStyleName("vertical-panel");
    verticalPanel.addStyleName("v-widget");
    verticalPanel.addStyleName("v-has-width");
    verticalPanel.addStyleName("v-has-height");

    verticalPanel.add(currentFileLabel);
    verticalPanel.add(progressBar);
    verticalPanel.add(cancelButton);

    contentPanel.setWidget(verticalPanel);

    // do some calculations for window layout
    Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
        @Override
        public void execute() {
            Style contentStyle = contents.getStyle();

            ComputedStyle headerCs = new ComputedStyle(header);
            String headerHeight = headerCs.getProperty("height");
            contentStyle.setProperty("paddingTop", headerHeight);
            contentStyle.setProperty("marginTop", "-" + headerHeight);

            ComputedStyle footerCs = new ComputedStyle(footer);
            String footerHeight = footerCs.getProperty("height");
            contentStyle.setProperty("paddingBottom", footerHeight);
            contentStyle.setProperty("marginBottom", "-" + footerHeight);
        }
    });

    // Make the closebox accessible for assistive devices
    Roles.getButtonRole().set(closeBox);
    Roles.getButtonRole().setAriaLabelProperty(closeBox, "close button");

    // Provide the title to assistive devices
    AriaHelper.ensureHasId(headerText);
    Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(headerText));

    // Handlers to Prevent tab to leave the window
    // and backspace to cause browser navigation
    topEventBlocker = new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };

    bottomEventBlocker = new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && !nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };
}

From source file:com.vaadin.client.ui.VWindow.java

License:Apache License

public VWindow() {
    super(false, false, true); // no autohide, not modal, shadow
    // Different style of shadow for windows
    setShadowStyle("window");

    Roles.getDialogRole().set(getElement());
    Roles.getDialogRole().setAriaRelevantProperty(getElement(), RelevantValue.ADDITIONS);

    constructDOM();//from   w w  w  .j a  v  a2  s .c  o m
    contentPanel.addScrollHandler(this);
    contentPanel.addKeyDownHandler(this);
    contentPanel.addFocusHandler(this);
    contentPanel.addBlurHandler(this);
}

From source file:com.vaadin.client.ui.VWindow.java

License:Apache License

protected void constructDOM() {
    setStyleName(CLASSNAME);// w  ww .  j a v  a2s  .c  o m

    topTabStop = DOM.createDiv();
    DOM.setElementAttribute(topTabStop, "tabindex", "0");

    header = DOM.createDiv();
    DOM.setElementProperty(header, "className", CLASSNAME + "-outerheader");
    headerText = DOM.createDiv();
    DOM.setElementProperty(headerText, "className", CLASSNAME + "-header");
    contents = DOM.createDiv();
    DOM.setElementProperty(contents, "className", CLASSNAME + "-contents");
    footer = DOM.createDiv();
    DOM.setElementProperty(footer, "className", CLASSNAME + "-footer");
    resizeBox = DOM.createDiv();
    DOM.setElementProperty(resizeBox, "className", CLASSNAME + "-resizebox");
    closeBox = DOM.createDiv();
    maximizeRestoreBox = DOM.createDiv();
    DOM.setElementProperty(maximizeRestoreBox, "className", CLASSNAME + "-maximizebox");
    DOM.setElementAttribute(maximizeRestoreBox, "tabindex", "0");
    DOM.setElementProperty(closeBox, "className", CLASSNAME + "-closebox");
    DOM.setElementAttribute(closeBox, "tabindex", "0");
    DOM.appendChild(footer, resizeBox);

    bottomTabStop = DOM.createDiv();
    DOM.setElementAttribute(bottomTabStop, "tabindex", "0");

    wrapper = DOM.createDiv();
    DOM.setElementProperty(wrapper, "className", CLASSNAME + "-wrap");

    DOM.appendChild(wrapper, topTabStop);
    DOM.appendChild(wrapper, header);
    DOM.appendChild(header, maximizeRestoreBox);
    DOM.appendChild(header, closeBox);
    DOM.appendChild(header, headerText);
    DOM.appendChild(wrapper, contents);
    DOM.appendChild(wrapper, footer);
    DOM.appendChild(wrapper, bottomTabStop);
    DOM.appendChild(super.getContainerElement(), wrapper);

    sinkEvents(Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.TOUCHEVENTS | Event.ONCLICK | Event.ONLOSECAPTURE);

    setWidget(contentPanel);

    // Make the closebox accessible for assistive devices
    Roles.getButtonRole().set(closeBox);
    Roles.getButtonRole().setAriaLabelProperty(closeBox, "close button");

    // Make the maximizebox accessible for assistive devices
    Roles.getButtonRole().set(maximizeRestoreBox);
    Roles.getButtonRole().setAriaLabelProperty(maximizeRestoreBox, "maximize button");

    // Provide the title to assistive devices
    AriaHelper.ensureHasId(headerText);
    Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(headerText));

    // Handlers to Prevent tab to leave the window
    // and backspace to cause browser navigation
    topEventBlocker = new NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };

    bottomEventBlocker = new NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && !nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };
}

From source file:com.vaadin.client.ui.VWindow.java

License:Apache License

/**
 * Allows to specify which connectors contain the description for the
 * window. Text contained in the widgets of the connectors will be read by
 * assistive devices when it is opened./*from  w ww .  j  a v  a 2 s  .  c  o m*/
 * <p>
 * When the provided array is empty, an existing description is removed.
 * 
 * @param connectors
 *            with the connectors of the widgets to use as description
 */
public void setAssistiveDescription(Connector[] connectors) {
    if (connectors != null) {
        assistiveConnectors = connectors;

        if (connectors.length == 0) {
            Roles.getDialogRole().removeAriaDescribedbyProperty(getElement());
        } else {
            Id[] ids = new Id[connectors.length];
            for (int index = 0; index < connectors.length; index++) {
                if (connectors[index] == null) {
                    throw new IllegalArgumentException(
                            "All values in parameter description need to be non-null");
                }

                Element element = ((ComponentConnector) connectors[index]).getWidget().getElement();
                AriaHelper.ensureHasId(element);
                ids[index] = Id.of(element);
            }

            Roles.getDialogRole().setAriaDescribedbyProperty(getElement(), ids);
        }
    } else {
        throw new IllegalArgumentException("Parameter description must be non-null");
    }
}

From source file:com.vaadin.client.ui.VWindow.java

License:Apache License

/**
 * Sets the WAI-ARIA role the window.//w w  w  . j a  v  a2s.c  om
 * 
 * This role defines how an assistive device handles a window. Available
 * roles are alertdialog and dialog (@see <a
 * href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles">Roles
 * Model</a>).
 * 
 * The default role is dialog.
 * 
 * @param role
 *            WAI-ARIA role to set for the window
 */
public void setWaiAriaRole(WindowRole role) {
    if (role == WindowRole.ALERTDIALOG) {
        Roles.getAlertdialogRole().set(getElement());
    } else {
        Roles.getDialogRole().set(getElement());
    }
}

From source file:org.unitime.timetable.gwt.client.aria.AriaDialogBox.java

License:Apache License

public AriaDialogBox(boolean autoHide, boolean modal, Caption caption) {
    super(autoHide, modal, caption);
    Roles.getDialogRole().set(getElement());
    caption.asWidget().getElement().setId(DOM.createUniqueId());
    Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(caption.asWidget().getElement()));
}