List of usage examples for com.google.gwt.dom.client NodeList getItem
public T getItem(int index)
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 } }