Example usage for com.google.gwt.dom.client NodeList getItem

List of usage examples for com.google.gwt.dom.client NodeList getItem

Introduction

In this page you can find the example usage for com.google.gwt.dom.client NodeList getItem.

Prototype

public T getItem(int index) 

Source Link

Usage

From source file:com.uni.hs13.visupoll.client.OptGroupListBox.java

License:Apache License

/**
 * Removes an item at the given index from the ListBox. The index starts at 0.
 * /*from w w w  .j a va  2  s .com*/
 * @param index See description.
 * @return {@code true}, if an item with the given index was found (and removed), otherwise
 *         {@code false}.
 */
public boolean removeItemAtIndex(int index) {
    SelectElement selectElement = this.getElement().cast();
    NodeList<Element> elementsByTagName = selectElement.getElementsByTagName("*");
    Element item = elementsByTagName.getItem(index);

    if (item == null) {
        return false;
    }
    item.removeFromParent();

    return true;
}

From source file:com.uni.hs13.visupoll.client.OptGroupListBox.java

License:Apache License

/**
 * Removes an item with the given key from the ListBox.
 * //from w  w w  .j  a v a  2 s. c  o  m
 * @param type One of the two types defined in {@link OptGroupListBoxItemType}, namely a
 *          <em>group</em> or a <em>group item</em>.
 * @param key If <em>type</em> is a <em>group item</em>, then <em>key</em> has to be the unique
 *          key of the ListBox element. If <em>type</em> is a <em>group</em>, then <em>key</em>
 *          has to be the label of this group. Pay attention here, as group labels may be present
 *          multiple times (non-unique). This methods only deletes the first occurrence of the
 *          <em>group item</em>.
 * @return {@code true}, if an item with the given key was found (and removed), otherwise
 *         {@code false}.
 */
public boolean removeItemWithKey(OptGroupListBoxItemType type, String key) {
    SelectElement selectElement = this.getElement().cast();
    NodeList<Element> elementsByTagName = selectElement.getElementsByTagName("*");

    for (int i = 0; i < elementsByTagName.getLength(); i++) {
        Element item = elementsByTagName.getItem(i);

        if ((OptGroupListBoxItemType.OPTION.equals(type)
                && OptGroupListBoxItemType.OPTION.getItemNodeName().equals(item.getNodeName())
                && ((OptionElement) item).getValue().equals(key))
                || (OptGroupListBoxItemType.GROUP.equals(type)
                        && OptGroupListBoxItemType.GROUP.getItemNodeName().equals(item.getNodeName())
                        && ((OptGroupElement) item).getLabel().equals(key))) {
            item.removeFromParent();
            return true;
        }
    }

    return false;
}

From source file:com.vaadin.client.ResourceLoader.java

License:Apache License

/**
 * Creates a new resource loader. You should generally not create you own
 * resource loader, but instead use {@link ResourceLoader#get()} to get an
 * instance./*w w  w  . j a  va 2s .  co  m*/
 */
protected ResourceLoader() {
    Document document = Document.get();
    head = document.getElementsByTagName("head").getItem(0);

    // detect already loaded scripts and stylesheets
    NodeList<Element> scripts = document.getElementsByTagName("script");
    for (int i = 0; i < scripts.getLength(); i++) {
        ScriptElement element = ScriptElement.as(scripts.getItem(i));
        String src = element.getSrc();
        if (src != null && src.length() != 0) {
            loadedResources.add(src);
        }
    }

    NodeList<Element> links = document.getElementsByTagName("link");
    for (int i = 0; i < links.getLength(); i++) {
        LinkElement linkElement = LinkElement.as(links.getItem(i));
        String rel = linkElement.getRel();
        String href = linkElement.getHref();
        if ("stylesheet".equalsIgnoreCase(rel) && href != null && href.length() != 0) {
            loadedResources.add(href);
        }
    }
}

From source file:com.vaadin.client.ui.calendar.schedule.DateCell.java

License:Apache License

@Override
@SuppressWarnings("deprecation")
public void onMouseUp(MouseUpEvent event) {
    if (event.getNativeButton() != NativeEvent.BUTTON_LEFT) {
        return;/*from  w ww.  j  av a2  s.  c  om*/
    }
    Event.releaseCapture(getElement());
    setFocus(false);
    int dragDistance = Math.abs(eventRangeStart - event.getY());
    if (dragDistance > 0 && eventRangeStart >= 0) {
        Element main = getElement();
        if (eventRangeStart > eventRangeStop) {
            if (eventRangeStop <= -1) {
                eventRangeStop = 0;
            }
            int temp = eventRangeStart;
            eventRangeStart = eventRangeStop;
            eventRangeStop = temp;
        }

        NodeList<Node> nodes = main.getChildNodes();

        int slotStart = -1;
        int slotEnd = -1;

        // iterate over all child nodes, until we find first the start,
        // and then the end
        for (int i = 0; i < nodes.getLength(); i++) {
            Element element = (Element) nodes.getItem(i);
            boolean isRangeElement = element.getClassName().contains("v-daterange");

            if (isRangeElement && slotStart == -1) {
                slotStart = i;
                slotEnd = i; // to catch one-slot selections

            } else if (isRangeElement) {
                slotEnd = i;

            } else if (slotStart != -1 && slotEnd != -1) {
                break;
            }
        }

        clearSelectionRange();

        int startMinutes = firstHour * 60 + slotStart * 30;
        int endMinutes = (firstHour * 60) + (slotEnd + 1) * 30;
        Date currentDate = getDate();
        String yr = (currentDate.getYear() + 1900) + "-" + (currentDate.getMonth() + 1) + "-"
                + currentDate.getDate();
        if (weekgrid.getCalendar().getRangeSelectListener() != null) {
            weekgrid.getCalendar().getRangeSelectListener()
                    .rangeSelected(yr + ":" + startMinutes + ":" + endMinutes);
        }
        eventRangeStart = -1;
    } else {
        // Click event
        eventRangeStart = -1;
        cancelRangeSelect();

    }
}

From source file:com.vaadin.client.ui.calendar.schedule.DateCell.java

License:Apache License

@Override
public void onMouseMove(MouseMoveEvent event) {
    if (event.getNativeButton() != NativeEvent.BUTTON_LEFT) {
        return;//from  w ww .j a  va2  s  .c  om
    }

    if (eventRangeStart >= 0) {
        int newY = event.getY();
        int fromY = 0;
        int toY = 0;
        if (newY < eventRangeStart) {
            fromY = newY;
            toY = eventRangeStart;
        } else {
            fromY = eventRangeStart;
            toY = newY;
        }
        Element main = getElement();
        eventRangeStop = newY;
        NodeList<Node> nodes = main.getChildNodes();
        for (int i = 0; i < nodes.getLength(); i++) {
            Element c = (Element) nodes.getItem(i);

            if (todaybar != c) {

                int elemStart = c.getOffsetTop();
                int elemStop = elemStart + getSlotHeight();
                if (elemStart >= fromY && elemStart <= toY) {
                    c.addClassName("v-daterange");
                } else if (elemStop >= fromY && elemStop <= toY) {
                    c.addClassName("v-daterange");
                } else if (elemStop >= fromY && elemStart <= toY) {
                    c.addClassName("v-daterange");
                } else {
                    c.removeClassName("v-daterange");
                }
            }
        }
    }

    event.preventDefault();
}

From source file:com.vaadin.client.ui.calendar.schedule.DateCell.java

License:Apache License

private void clearSelectionRange() {
    if (eventRangeStart > -1) {
        // clear all "selected" class names
        Element main = getElement();
        NodeList<Node> nodes = main.getChildNodes();

        for (int i = 0; i <= 47; i++) {
            Element c = (Element) nodes.getItem(i);
            if (c == null) {
                continue;
            }/*ww w.  j a  va2  s  . c o m*/
            c.removeClassName("v-daterange");
        }

        eventRangeStart = -1;
    }
}

From source file:com.vaadin.client.ui.embedded.EmbeddedConnector.java

License:Apache License

@Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
    if (!isRealUpdate(uidl)) {
        return;/*from w  w  w  .  j  a v a 2 s . c o  m*/
    }

    // Save details
    getWidget().client = client;

    boolean clearBrowserElement = true;

    clickEventHandler.handleEventHandlerRegistration();

    if (uidl.hasAttribute("type")) {
        // remove old style name related to type
        if (getWidget().type != null) {
            getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().type);
        }
        // remove old style name related to mime type
        if (getWidget().mimetype != null) {
            getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().mimetype);
        }
        getWidget().type = uidl.getStringAttribute("type");
        if (getWidget().type.equals("image")) {
            getWidget().addStyleName(VEmbedded.CLASSNAME + "-image");
            Element el = null;
            boolean created = false;
            NodeList<Node> nodes = getWidget().getElement().getChildNodes();
            if (nodes != null && nodes.getLength() == 1) {
                Node n = nodes.getItem(0);
                if (n.getNodeType() == Node.ELEMENT_NODE) {
                    Element e = (Element) n;
                    if (e.getTagName().equals("IMG")) {
                        el = e;
                    }
                }
            }
            if (el == null) {
                getWidget().setHTML("");
                el = DOM.createImg();
                created = true;
                DOM.sinkEvents(el, Event.ONLOAD);
            }

            // Set attributes
            Style style = el.getStyle();
            style.setProperty("width", getState().width);
            style.setProperty("height", getState().height);

            resourceElement = el;
            objectElement = null;
            setResourceUrl(getResourceUrl("src"));

            if (uidl.hasAttribute(EmbeddedConstants.ALTERNATE_TEXT)) {
                el.setPropertyString(EmbeddedConstants.ALTERNATE_TEXT,
                        uidl.getStringAttribute(EmbeddedConstants.ALTERNATE_TEXT));
            }

            if (created) {
                // insert in dom late
                getWidget().getElement().appendChild(el);
            }

            /*
             * Sink tooltip events so tooltip is displayed when hovering the
             * image.
             */
            getWidget().sinkEvents(VTooltip.TOOLTIP_EVENTS);

        } else if (getWidget().type.equals("browser")) {
            getWidget().addStyleName(VEmbedded.CLASSNAME + "-browser");
            if (getWidget().browserElement == null) {
                getWidget().setHTML("<iframe width=\"100%\" height=\"100%\" frameborder=\"0\""
                        + " allowTransparency=\"true\" src=\"\"" + " name=\"" + uidl.getId() + "\"></iframe>");
                getWidget().browserElement = DOM.getFirstChild(getWidget().getElement());
            }
            resourceElement = getWidget().browserElement;
            objectElement = null;
            setResourceUrl(getResourceUrl("src"));
            clearBrowserElement = false;
        } else {
            VConsole.error("Unknown Embedded type '" + getWidget().type + "'");
        }
    } else if (uidl.hasAttribute("mimetype")) {
        // remove old style name related to type
        if (getWidget().type != null) {
            getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().type);
        }
        // remove old style name related to mime type
        if (getWidget().mimetype != null) {
            getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().mimetype);
        }
        final String mime = uidl.getStringAttribute("mimetype");
        if (mime.equals("application/x-shockwave-flash")) {
            getWidget().mimetype = "flash";
            // Handle embedding of Flash
            getWidget().addStyleName(VEmbedded.CLASSNAME + "-flash");
            getWidget().setHTML(getWidget().createFlashEmbed(uidl));

        } else if (mime.equals("image/svg+xml")) {
            getWidget().mimetype = "svg";
            getWidget().addStyleName(VEmbedded.CLASSNAME + "-svg");
            String data;
            Map<String, String> parameters = VEmbedded.getParameters(uidl);
            ObjectElement obj = Document.get().createObjectElement();
            resourceElement = null;
            if (parameters.get("data") == null) {
                objectElement = obj;
                data = getResourceUrl("src");
                setResourceUrl(data);
            } else {
                objectElement = null;
                data = "data:image/svg+xml," + parameters.get("data");
                obj.setData(data);
            }
            getWidget().setHTML("");
            obj.setType(mime);
            if (!isUndefinedWidth()) {
                obj.getStyle().setProperty("width", "100%");
            }
            if (!isUndefinedHeight()) {
                obj.getStyle().setProperty("height", "100%");
            }
            if (uidl.hasAttribute("classid")) {
                obj.setAttribute("classid", uidl.getStringAttribute("classid"));
            }
            if (uidl.hasAttribute("codebase")) {
                obj.setAttribute("codebase", uidl.getStringAttribute("codebase"));
            }
            if (uidl.hasAttribute("codetype")) {
                obj.setAttribute("codetype", uidl.getStringAttribute("codetype"));
            }
            if (uidl.hasAttribute("archive")) {
                obj.setAttribute("archive", uidl.getStringAttribute("archive"));
            }
            if (uidl.hasAttribute("standby")) {
                obj.setAttribute("standby", uidl.getStringAttribute("standby"));
            }
            getWidget().getElement().appendChild(obj);
            if (uidl.hasAttribute(EmbeddedConstants.ALTERNATE_TEXT)) {
                obj.setInnerText(uidl.getStringAttribute(EmbeddedConstants.ALTERNATE_TEXT));
            }
        } else {
            VConsole.error("Unknown Embedded mimetype '" + mime + "'");
        }
    } else {
        VConsole.error("Unknown Embedded; no type or mimetype attribute");
    }

    if (clearBrowserElement) {
        getWidget().browserElement = null;
    }
}

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

License:Apache License

public static ArrayList<Element> getElements(Element scrolledElement2) {
    NodeList<Node> childNodes = scrolledElement2.getChildNodes();
    ArrayList<Element> l = new ArrayList<Element>();
    for (int i = 0; i < childNodes.getLength(); i++) {
        Node item = childNodes.getItem(i);
        if (item.getNodeType() == Node.ELEMENT_NODE) {
            l.add((Element) item);
        }//  www . ja  v a  2s .co m
    }
    return l;
}

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

License:Apache License

/**
 * Internal helper for removing any stylesheet with the given URL
 * //from w  w w .j a v a2  s  .  c  o m
 * @since 7.3
 * @param url
 *            the url to match with existing stylesheets
 */
private void removeStylesheet(String url) {
    NodeList<Element> linkTags = getHead().getElementsByTagName(LinkElement.TAG);
    for (int i = 0; i < linkTags.getLength(); i++) {
        LinkElement link = LinkElement.as(linkTags.getItem(i));
        if (!"stylesheet".equals(link.getRel())) {
            continue;
        }
        if (!"text/css".equals(link.getType())) {
            continue;
        }
        if (url.equals(link.getHref())) {
            getHead().removeChild(link);
        }
    }
}

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

License:Apache License

private void updateVaadinFavicon(String newTheme) {
    NodeList<Element> iconElements = querySelectorAll("link[rel~=\"icon\"]");
    for (int i = 0; i < iconElements.getLength(); i++) {
        Element iconElement = iconElements.getItem(i);

        String href = iconElement.getAttribute("href");
        if (href != null && href.contains("VAADIN/themes") && href.endsWith("/favicon.ico")) {
            href = href.replaceFirst("VAADIN/themes/.+?/favicon.ico",
                    "VAADIN/themes/" + newTheme + "/favicon.ico");
            iconElement.setAttribute("href", href);
        }//from   w  w  w . j  ava2s.  co m
    }
}