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

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

Introduction

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

Prototype

Node getLastChild();

Source Link

Document

This method retrieves the last child.

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  .  j a  v a 2s.co 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;
                }
            }
        }
    });
}