Example usage for com.google.gwt.xml.client Node getParentNode

List of usage examples for com.google.gwt.xml.client Node getParentNode

Introduction

In this page you can find the example usage for com.google.gwt.xml.client Node getParentNode.

Prototype

Node getParentNode();

Source Link

Document

This method retrieves the parent.

Usage

From source file:com.bramosystems.oss.player.playlist.client.impl.SAXParser.java

License:Apache License

private void processNodes(NodeList node) throws ParseException {
    for (int i = 0; i < node.getLength(); i++) {
        Node nd = node.item(i);
        switch (nd.getNodeType()) {
        case Node.ELEMENT_NODE:
            HashMap<String, String> attr = new HashMap<String, String>();
            NamedNodeMap nnm = nd.getAttributes();
            for (int j = 0; j < nnm.getLength(); j++) {
                Node nm = nnm.item(j);
                attr.put(nm.getNodeName(), nm.getNodeValue());
            }/*from w w w .  j  av  a2s.c o m*/
            handler.onNodeStart(nd.getNodeName(), attr, nd.getNamespaceURI());
            processNodes(nd.getChildNodes());
            handler.onNodeEnd(nd.getNodeName());
            break;
        case Node.TEXT_NODE:
            handler.setNodeValue(nd.getParentNode().getNodeName(), nd.getNodeValue());
        }
    }
}

From source file:com.colinalworth.xmlview.client.ElementCell.java

License:Apache License

/**
 * @param context//from   w w  w.j  a v  a  2  s .  c  o m
 * @param value
 */
private void finishEdit(Node value, com.google.gwt.dom.client.Element target) {
    ElementCell.ViewState state = updateViewState(lastKey, value, target);
    String newValue = target.<InputElement>cast().getValue();
    boolean valid = true;
    Element parent = (Element) value.getParentNode();
    switch (state.section) {
    case AttributeName:
        Attr attr = (Attr) value;
        //TODO this might lose namespace data
        parent.removeAttribute(attr.getName());
        parent.setAttribute(newValue, attr.getValue());

        valid = validator.isAttributeNameValid(parent.getAttributeNode(attr.getName()), parent);
        break;
    case AttributeValue:
        value.setNodeValue(newValue);
        valid = validator.isAttributeValueValid((Attr) value, parent);
        break;
    case Content:
        ((CharacterData) value).setData(newValue);
        valid = validator.isContentsValid((CharacterData) value);
        break;
    case TagName:
        Element elt = (Element) value;
        Element replacement = elt.getOwnerDocument().createElement(newValue);
        while (elt.getChildNodes().getLength() != 0) {
            replacement.appendChild(elt.getChildNodes().item(0));
        }
        //TODO this might lose namespace data
        for (int i = 0; i < elt.getAttributes().getLength(); i++) {
            Attr a = (Attr) elt.getAttributes().item(i);
            replacement.setAttribute(a.getName(), a.getValue());
        }

        parent.replaceChild(replacement, elt);

        valid = validator.isElementNameValid(replacement);
    }
    if (!valid) {
        Window.alert("Seems to be invalid: " + newValue + " in " + parent.getNodeName());
        //TODO mark invalid
    }
    this.lastKey = null;
    target.blur();
}

From source file:com.colinalworth.xmlview.client.XmlTreeViewModel.java

License:Apache License

/**
 * Forces a redraw of the element, or its first visible ancestor
 * //from w  w  w. j  a v  a 2 s .  co m
 * @param node
 * @param parent
 */
public void redrawChildren(Node node, Node parent) {
    ValueUpdater<Node> updater = refreshAccess.get(node);
    while (updater == null) {
        updater = refreshAccess.get(parent);
        parent = parent.getParentNode();
    }
    updater.update(null);
}

From source file:fi.jyu.student.jatahama.onlineinquirytool.shared.DOMTreeWalker.java

License:Open Source License

public void gotoNode(Node n) {
    current = n;//from   w w w  .j  av a  2  s . c om

    // Must count parents to get correct level
    Node c = n;
    level = 0;
    while (c.getParentNode() != null) {
        level++;
        c = c.getParentNode();
    }
}

From source file:org.gk.engine.client.build.layout.XBoxLayoutData.java

License:Open Source License

public XBoxLayoutData(Node node, List subNodes) {
    super(node, subNodes);

    flex = super.getAttribute("flex", "");
    max = super.getAttribute("max", "");
    min = super.getAttribute("min", "");

    Node parentNode = node.getParentNode();
    if (parentNode != null) {
        parentLayout = NodeUtils.getNodeValue(parentNode, "layout", "");
    }/* w  w  w . ja  v a  2  s. co m*/
}

From source file:org.gk.engine.client.event.attrib.AddAttribute.java

License:Open Source License

/**
 * <pre>//w ww.  j a  v a2  s. c  o  m
 * MapkeynodeData(??xml),parentNode(???)
 * key:parentNode , value: {'nodeId':'??'  ,  'idx':-1}
 * @param tree
 * @param value
 * </pre>
 */
private void addTreeNode(gkXMLTreePanelIC tree, Map value) {
    // nodeId
    gkMap addInfo = new gkMap(value);
    assert (addInfo.containsKey(gkXMLTreePanelIC.PARENT_NODE)) : "parentNode not found" + value;
    assert (addInfo.containsKey(gkXMLTreePanelIC.NODE_DATA)) : "nodeData not found" + value;
    // parentNode??TreeNode
    Map parentNodeInfo = addInfo.get(gkXMLTreePanelIC.PARENT_NODE);
    String parentNodeId = (String) parentNodeInfo.get(gkXMLTreePanelIC.ID);
    ModelData parentMd = tree.getTree().getStore().findModel(parentNodeId);
    assert parentMd != null : "parentNode not found exception:" + parentNodeInfo;
    // xml
    String nodeData = (String) addInfo.get(gkXMLTreePanelIC.NODE_DATA);
    Node newXmlNode = XMLParser.parse("<root>" + nodeData + "</root>").getFirstChild();
    tree.preprocessNode(tree.getTree().getStore(), newXmlNode, parentMd);
    Node node = (Node) parentMd.get(gkXMLTreePanelIC.NODE);
    newXmlNode.getParentNode().removeChild(newXmlNode);
    node.appendChild(newXmlNode.getFirstChild());
}

From source file:org.gk.engine.client.event.attrib.DelAttribute.java

License:Open Source License

@Override
public void setAttributeValue(Component com, Object value) {
    if (com instanceof gkGridIC) {
        ((gkGridIC) com).removeRow();/*from   ww w.j a  v a 2 s.c om*/
    } else if (com instanceof gkTreeDirPanelIC) {
        gkTreeDirPanelIC tree = (gkTreeDirPanelIC) com;
        ModelData md = null;
        if (value instanceof Map) {
            Map info = (Map) value;
            assert info.containsKey(gkTreeDirPanelIC.ID) : "nodeId not Found " + info;
            md = tree.getStore().findModel((String) info.get(gkTreeDirPanelIC.ID));
        }
        assert md != null : "can't found TreeNode " + md;
        tree.getStore().remove(md);
    } else if (com instanceof gkXMLTreePanelIC) {
        gkXMLTreePanelIC tree = (gkXMLTreePanelIC) com;
        TreeStore store = tree.getTree().getStore();
        ModelData md = null;
        if (value instanceof Map) {
            Map info = (Map) value;
            assert info.containsKey(gkXMLTreePanelIC.ID) : "nodeId not Found " + info;
            md = store.findModel((String) info.get(gkXMLTreePanelIC.ID));
        } else {
            md = tree.getTree().getSelectionModel().getSelectedItem();
        }
        assert md != null : "can't found TreeNode " + md;
        Node node = (Node) md.get(gkXMLTreePanelIC.NODE);
        node.getParentNode().removeChild(node);
        store.remove(md);
    } else if (com instanceof TabPanel) {
        if (value instanceof String) {
            TabPanel tabPanel = (TabPanel) com;
            tabPanel.remove(tabPanel.findItem((String) value, false));
            Engine.get().removeComponent((String) value);
        }
    } else if (com instanceof ComboBox) {
        ComboBox combo = (ComboBox) com;
        // comboBox , ??  Map
        if (value instanceof String) {
            // valuecomboPropertyEditorModelData
            ModelData md = combo.getPropertyEditor().convertStringValue((String) value);
            // storeModelData
            combo.getStore().remove(md);
            // storecomboPropertyEditor
            combo.getPropertyEditor().setList(combo.getStore().getModels());
            // ?value
            combo.clear();
        }
    }
}

From source file:org.gk.ui.client.com.tree.xml.gkTreeHandler.java

License:Open Source License

public gkTreeHandler(TreePanel tree, final Operation op) {
    new TreePanelDragSource(tree) {
        /**//from  www .ja  v a 2 s  . c  o m
         * ?drop???TreeNode?path
         */
        @Override
        protected void onDragDrop(DNDEvent event) {
            event.setOperation(op);
        }
    };
    target = new TreePanelDropTarget(tree) {
        @Override
        protected void onDragFail(DNDEvent event) {
            // treetraceMouseOver
            tree.setTrackMouseOver(true);
            super.onDragFail(event);
        }

        @Override
        protected void showFeedback(DNDEvent event) {
            final TreeNode overItem = tree.findNode(event.getTarget());
            if (overItem == null) {
                clearStyles(event);
            }

            // :?????
            if (overItem != null
                    && event.getDropTarget().getComponent() == event.getDragSource().getComponent()) {

                List<TreeModel> list = event.getData();
                ModelData overModel = overItem.getModel();
                for (int i = 0; i < list.size(); i++) {
                    ModelData sel = (ModelData) list.get(i).get("model");
                    if (overModel == sel) {
                        clearStyles(event);
                        return;
                    }

                    List<ModelData> children = tree.getStore().getChildren(sel, true);

                    if (children.contains(overItem.getModel())) {
                        clearStyles(event);
                        return;
                    }
                }
            }
            // ================================

            boolean append = feedback == Feedback.APPEND || feedback == Feedback.BOTH;
            boolean insert = feedback == Feedback.INSERT || feedback == Feedback.BOTH;

            if (overItem == null) {
                handleAppend(event, overItem);
            } else if (insert) {
                handleInsert(event, overItem);
            } else if ((!overItem.isLeaf() || isAllowDropOnLeaf()) && append) {
                handleAppend(event, overItem);
            } else {
                if (activeItem != null) {
                    tree.getView().onDropChange(activeItem, false);
                }
                status = -1;
                activeItem = null;
                appendItem = null;
                Insert.get().hide();
                event.getStatus().setStatus(false);
            }

            // 
            if (activeItem == null) {
                event.getStatus().setStatus(false);
            }
        }

        @Override
        protected void onDragEnter(DNDEvent event) {
            removeDuplicateNode(event);

            super.onDragEnter(event);
            super.clearStyles(event);// ? IE ????
        }

        private void removeDuplicateNode(DNDEvent event) {
            List<TreeStoreModel> modelList = (List<TreeStoreModel>) event.getData();

            // 1. Parent Node
            Set<String> parentNodeSet = new HashSet<String>();
            for (TreeStoreModel model : modelList) {
                Node node = model.getModel().get("node");
                if (!model.isLeaf()) {
                    parentNodeSet.add(node.toString());
                }
            }

            // 2.?? Leaf Node (Leaf's Parent in parentNodeSet)
            Iterator<TreeStoreModel> modelIt = modelList.iterator();
            while (modelIt.hasNext()) {
                TreeStoreModel model = modelIt.next();

                Node node = model.getModel().get("node");
                if (model.isLeaf()) {
                    if (node.getParentNode() != null
                            && parentNodeSet.contains(node.getParentNode().toString())) {
                        modelIt.remove();
                    }
                } else {
                    parentNodeSet.add(node.toString());
                }
            }

            // 3.?
            event.getStatus()
                    .update(Format.substitute(event.getDragSource().getStatusText(), modelList.size()));
        }

        /**
         * ?
         */
        @Override
        protected void onDragDrop(DNDEvent e) {
            TreePanel srcTree = (TreePanel) e.getDragSource().getComponent();
            if (activeItem == null) {
                super.onDragDrop(e);
                return;
            }
            List treeStoreModelList = (List) e.getData();

            // ?XML Node
            Node dropNode = activeItem.getModel().get("node");
            Node dropParentNode = dropNode.getParentNode();

            // state=1,activeItem????Node
            // state=0,?TreeNode
            // ?xml doc????.???????
            if (dropParentNode != null && dropParentNode.toString().equals(dropNode.toString())) {
                status = -1;
            }

            // Copy Mode
            // 1.????
            // 2.?appendChild??
            // 3.??
            if (Operation.COPY == e.getOperation()) {
                List newModels = genNewTreeStoreModelList(srcTree, treeStoreModelList);
                e.setData(newModels);
                treeStoreModelList = newModels;
            }

            List<Node> dragNodeList = getNodeList(treeStoreModelList);

            String tarNodeId = "";
            // 2011/06/28 ???
            TreeNode srcTreeNode = srcTree.findNode((Element) e.getDragEvent().getStartElement());
            switch (status) {
            case -1: // ?
                for (Node node : dragNodeList) {
                    dropNode.appendChild(node);
                }

                tarNodeId = TreeUtils.getNodeId(activeItem, srcTreeNode, status);
                break;
            case 1: // ?
                Node siblingNode = dropNode.getNextSibling();
                for (Node node : dragNodeList) {
                    dropParentNode.insertBefore(node, siblingNode);
                }
                // ?
                tarNodeId = TreeUtils.getNodeId(activeItem, srcTreeNode, 1);
                break;
            case 0: // ?
                for (Node node : dragNodeList) {
                    dropParentNode.insertBefore(node, dropNode);
                }
                // ?
                tarNodeId = TreeUtils.getNodeId(activeItem, srcTreeNode, 0);
                break;
            }

            // Move Mode
            // ??tree
            if (Operation.MOVE == e.getOperation()) {
                List<TreeModel> sel = e.getData();
                for (TreeModel tm : sel) {
                    srcTree.getStore().remove((ModelData) tm.get("model"));
                }
            }

            // 
            update(compositeInfo(srcTree, tree, TreeUtils.getNodeId(srcTreeNode), tarNodeId));
            super.onDragDrop(e);
        }
    };
    target.setAllowSelfAsSource(true);
    target.setFeedback(Feedback.BOTH);
}

From source file:org.gwtcmis.unmarshallers.parser.AtomEntryParser.java

License:Open Source License

/**
 * @param nodeList node list/*  ww w  . j a va2  s  .  c om*/
 * @return {@link EntryInfo}
 */
public static EntryInfo getEntryInfo(NodeList nodeList) {
    EntryInfo entryInfo = new EntryInfo();
    int i = nodeList.getLength() - 1;
    //parse entry nodes to form entry info
    while ((i >= 0) && (nodeList.getLength() > 0)) {
        Node item = nodeList.item(i);
        String value = (item.getFirstChild() == null) ? "" : item.getFirstChild().getNodeValue();

        QName qName = new QName(item.getNodeName(), item.getNamespaceURI());
        if (CMIS.ATOM_AUTHOR.equals(qName)) {
            AtomAuthor author = AtomAuthorParser.parse(item);
            entryInfo.setAuthor(author);
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_CONTENT.equals(qName)) {
            AtomContentType content = new AtomContentType();
            for (int k = 0; k < item.getAttributes().getLength(); k++) {
                if (item.getAttributes().item(k).getNodeName().equals(CMIS.SOURCE)) {
                    content.setSource(item.getAttributes().item(k).getNodeValue());
                } else if (item.getAttributes().item(k).getNodeName().equals(CMIS.TYPE)) {
                    content.setType(item.getAttributes().item(k).getNodeValue());
                }
            }
            entryInfo.setContent(content);
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_ID.equals(qName)) {
            entryInfo.setId(value);
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_SUMMARY.equals(qName)) {
            entryInfo.setSummary(value);
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_TITLE.equals(qName)) {
            entryInfo.setTitle(value);
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_UPDATED.equals(qName)) {
            entryInfo.setUpdated(DateUtil.parseDate(value));
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_PUBLISHED.equals(qName)) {
            entryInfo.setPublished(DateUtil.parseDate(value));
            item.getParentNode().removeChild(item);
        } else if (CMIS.ATOM_LINK.equals(qName)) {
            entryInfo.getLinks().add(AtomLinkParser.parse(item));
            item.getParentNode().removeChild(item);
        }
        i--;
    }
    return entryInfo;
}

From source file:org.openxdata.sharedlib.client.model.PageDef.java

/**
 * Moves a question up by one position in a list of questions.
 * //  www .j a va 2  s  . co  m
 * @param questions the list of questions.
 * @param questionDef the question to move.
 */
public static void moveQuestionUp(Vector<QuestionDef> questions, QuestionDef questionDef) {
    int index = questions.indexOf(questionDef);

    //Not relying on group node because some forms have no groups
    Element controlNode = questionDef.getControlNode();
    Element parentNode = controlNode != null ? (Element) controlNode.getParentNode() : null;
    if (questionDef.getDataType() == QuestionType.REPEAT && controlNode != null) {
        controlNode = (Element) controlNode.getParentNode();
        parentNode = (Element) parentNode.getParentNode();
    }

    questions.remove(questionDef);

    //Store the question to replace
    QuestionDef currentQuestionDef = (QuestionDef) questions.elementAt(index - 1);
    if (controlNode != null && parentNode != null && currentQuestionDef.getControlNode() != null)
        parentNode.removeChild(controlNode);

    if (!(questionDef.getBinding().indexOf('/') > -1)) {
        if (questionDef.getDataNode() != null && questionDef.getDataNode().getParentNode() != null
                && currentQuestionDef.getDataNode() != null)
            questionDef.getDataNode().getParentNode().removeChild(questionDef.getDataNode());
    }

    if (questionDef.getBindNode() != null && questionDef.getBindNode().getParentNode() != null
            && currentQuestionDef.getBindNode() != null)
        questionDef.getBindNode().getParentNode().removeChild(questionDef.getBindNode());

    List<QuestionDef> list = new ArrayList<QuestionDef>();
    while (questions.size() >= index) {
        currentQuestionDef = (QuestionDef) questions.elementAt(index - 1);
        list.add(currentQuestionDef);
        questions.remove(currentQuestionDef);
    }

    questions.add(questionDef);
    for (int i = 0; i < list.size(); i++) {
        if (i == 0 && controlNode != null) {
            QuestionDef qtnDef = (QuestionDef) list.get(i);
            if (qtnDef.getControlNode() != null && parentNode != null) {
                Node sibNode = qtnDef.getControlNode();
                if (qtnDef.getDataType() == QuestionType.REPEAT)
                    sibNode = sibNode.getParentNode();
                parentNode.insertBefore(controlNode, sibNode);
            }

            //move data node (We are not moving nested data nodes just to avoid complications
            if (!(questionDef.getBinding().indexOf('/') > -1 || qtnDef.getBinding().indexOf('/') > -1)) {
                if (qtnDef.getDataNode() != null && qtnDef.getDataNode().getParentNode() != null
                        && questionDef.getDataNode() != null)
                    qtnDef.getDataNode().getParentNode().insertBefore(questionDef.getDataNode(),
                            qtnDef.getDataNode());
            }

            //move binding node
            if (qtnDef.getBindNode() != null && qtnDef.getBindNode().getParentNode() != null
                    && questionDef.getBindNode() != null)
                qtnDef.getBindNode().getParentNode().insertBefore(questionDef.getBindNode(),
                        qtnDef.getBindNode());
        }
        questions.add(list.get(i));
    }
}