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

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

Introduction

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

Prototype

Node replaceChild(Node newChild, Node oldChild);

Source Link

Document

This method replaces the child oldChild with newChild.

Usage

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

License:Open Source License

private void onEdit(Map treeNode) {
    TreeNode tn = (TreeNode) treeNode
            .get((tree.getSelectionModel().getSelectedItem().getProperties().get(ID) + ""));
    // ??/*from  w w w  . ja  va  2s  .  c o  m*/
    com.google.gwt.dom.client.Node nd = tn.getElement().getChild(0);
    // ?inputelement
    final Element input = DOM.createElement("input");
    // ?????span
    final com.google.gwt.dom.client.Node childnd = nd.getLastChild();
    // ?span
    final String oldString = childnd.getFirstChild().getNodeValue();
    // ?inputspan
    input.setAttribute("value", oldString);
    // inputID??
    input.setAttribute("id", "newText");
    // ?spanelement
    final com.google.gwt.dom.client.Node oldNode = childnd.getFirstChild().cloneNode(true);
    // span???input?
    childnd.replaceChild(input, childnd.getFirstChild());
    // ???
    tree.disableTextSelection(false);
    // ??input
    input.focus();

    // ?inputkeydown
    DOM.sinkEvents(input, com.google.gwt.user.client.Event.ONBLUR | com.google.gwt.user.client.Event.ONKEYDOWN
            | com.google.gwt.user.client.Event.ONMOUSEOVER | com.google.gwt.user.client.Event.ONMOUSEOUT);
    // ?inputenter?
    DOM.setEventListener(input, new EventListener() {
        // ?input onblur
        boolean mouseIn = true;

        @Override
        public void onBrowserEvent(com.google.gwt.user.client.Event event) {
            if (event.getTypeInt() == com.google.gwt.user.client.Event.ONMOUSEOUT) {
                mouseIn = false;
            }
            if (event.getTypeInt() == com.google.gwt.user.client.Event.ONMOUSEOVER) {
                mouseIn = true;
            }

            if (event.getTypeInt() == com.google.gwt.user.client.Event.ONBLUR
                    || event.getKeyCode() == KeyCodes.KEY_ENTER) {
                if (event.getKeyCode() == KeyCodes.KEY_ENTER || !mouseIn) {
                    // ?input
                    String newString = getValue();
                    // 
                    if (newString.equals("")) {
                        input.setAttribute("value", oldString);
                    }
                    // span??input
                    oldNode.setNodeValue(newString);
                    // ?spaninput?
                    childnd.replaceChild(oldNode, input);
                    // ?treemodelDataap???
                    setModelData(newString, tree);
                    inEdit = false;
                }
            }
        }
    });
}

From source file:org.openxdata.sharedlib.client.xforms.XformParser.java

/**
 * Converts an xforms document into a form definition object and also
 * replaces its model with the given one.
 * //from w  w w  . j av a  2 s .c o m
 * @param xformXml
 *            the xforms document xml.
 * @param modelXml
 *            the new xforms model xml.
 * @return the form definition object.
 */
public static FormDef fromXform2FormDef(String xformXml, String modelXml) {
    Document doc = XmlUtil.getDocument(xformXml);

    // If model xml has been supplied, use it to replace the existing one.
    if (modelXml != null) {
        Node node = XmlUtil.getDocument(modelXml).getDocumentElement();
        Element dataNode = XformUtil.getInstanceDataNode(doc);
        Node parent = dataNode.getParentNode();
        node = parent.getOwnerDocument().importNode(node, true);
        parent.appendChild(node);
        parent.replaceChild(node, dataNode);
    }

    return getFormDef(doc);
}