Example usage for com.google.gwt.user.client Element focus

List of usage examples for com.google.gwt.user.client Element focus

Introduction

In this page you can find the example usage for com.google.gwt.user.client Element focus.

Prototype

@Override
    public void focus() 

Source Link

Usage

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

License:Open Source License

@Override
public void bindEvent() {
    core.subscribe(evtSetBean(), new EventProcess() {

        @Override/*  www . j a v  a 2s.com*/
        public void execute(String eventId, EventObject eo) {
            setBean(eo.getInfoString());
        }
    });

    // ?
    core.subscribe(evtOnEdit(), new EventProcess() {
        @Override
        public void execute(String eventId, EventObject e) {
            TreeNode tn = (TreeNode) e.getInfoMap()
                    .get((tree.getSelectionModel().getSelectedItem().getProperties().get(PATH) + ""));
            // ??
            final Node nd = tn.getElement().getChild(0);
            // ?inputelement
            final Element input = DOM.createElement("input");
            // ?????span
            final Node childnd = nd.getLastChild();
            // ?span
            final String oldString = childnd.getFirstChild().getNodeValue();
            // ?input?span
            input.setAttribute("value", oldString);
            // inputID??
            input.setAttribute("id", "newText");
            // ?spanelement
            final 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() {
                // ?inputonblur
                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() == KeyCodeEnter) {
                        if (event.getKeyCode() == KeyCodeEnter || mouseIn == false) {
                            // ?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.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) + ""));
    // ??// w ww.  java  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;
                }
            }
        }
    });
}