Java tutorial
/* * Copyright 2011, The gwtquery team. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.cgxlib.xq.client.js; /* * #%L * CGXlib * %% * Copyright (C) 2016 CGXlib (http://www.cgxlib.com) * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% Code is originally from gwtquery, and modified by CGXlib team. */ import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.Node; import com.google.gwt.dom.client.NodeList; /** * A Lightweight JSO class easily handle a node list. */ public class JsNodeArray extends NodeList<Element> { protected JsNodeArray() { } public static JsNodeArray create() { return create((Node) null); } public static native JsNodeArray create(Node node) /*-{ return node ? [node] : []; }-*/; public static JsNodeArray create(NodeList<?> nl) { JsNodeArray ret = create((Node) null); ret.pushAll(nl); return ret; } public final void addNode(Node n) { c().add(n); } public final void addNode(Node n, int i) { c().add(i, n); } public final void concat(JsNodeArray ary) { c().concat(ary.c()); } public final Element get(int i) { return getElement(i); } public final Element getElement(int i) { return c().get(i).cast(); } public final Node getNode(int i) { return c().get(i); } public final int size() { return c().length(); } private JsObjectArray<Node> c() { return cast(); } public final void pushAll(JavaScriptObject prevElem) { c().pushAll(prevElem); } public final Element[] elements() { Element[] ret = new Element[size()]; for (int i = 0; i < size(); i++) { ret[i] = getElement(i); } return ret; } }