Example usage for com.google.gwt.user.client.ui UIObject ensureDebugId

List of usage examples for com.google.gwt.user.client.ui UIObject ensureDebugId

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui UIObject ensureDebugId.

Prototype

public static void ensureDebugId(Element elem, String id) 

Source Link

Document

Ensure that elem has an ID property set, which allows it to integrate with third-party libraries and test tools.

Usage

From source file:com.codenvy.ide.texteditor.codeassistant.AutocompleteUiController.java

License:Open Source License

public AutocompleteUiController(TextEditorViewImpl editor, Resources res) {
    this.editor = editor;
    this.resources = res;
    this.css = res.autocompleteComponentCss();

    box = Elements.createDivElement();
    // Prevent our mouse events from going to the editor
    DomUtils.stopMousePropagation(box);/*from   w ww  .j  a  v a 2s.c o m*/

    TableElement tableElement = Elements.createTableElement();
    tableElement.setClassName(css.items());

    container = Elements.createDivElement(css.container());
    DomUtils.preventExcessiveScrollingPropagation(container);
    container.appendChild(tableElement);
    box.appendChild(container);

    hint = Elements.createDivElement(css.hint());
    CssUtils.setDisplayVisibility2(hint, false);
    box.appendChild(hint);

    list = SimpleList.create((View) box, container, tableElement, res.defaultSimpleListCss(), listItemRenderer,
            listDelegate);

    autoHideController = AutoHideController.create(box);
    autoHideController.setCaptureOutsideClickOnClose(false);
    autoHideController.setDelay(-1);
    autoHideController.setAutoHideHandler(new AutoHideHandler() {

        @Override
        public void onShow() {
        }

        @Override
        public void onHide() {
            infoTimer.cancel();
        }
    });
    positioner = new PositionerBuilder().setPosition(Position.NO_OVERLAP)
            .setVerticalAlign(VerticalAlign.TOP_TOP).setHorizontalAlign(HorizontalAlign.RIGHT)
            .buildAnchorPositioner(box);
    infoPopup = Popup.create(resources);
    infoPopup.getView().getElement().getClassList().add(css.infoPopup());
    infoPopup.addPartner(box);
    infoPopup.addPartnerClickTargets(box);
    infoPopup.setDelay(-1);
    infoPopup.setAutoHideHandler(new AutoHideHandler() {

        @Override
        public void onShow() {
        }

        @Override
        public void onHide() {
            autoHideController.removePartner(infoPopup.getView().getElement());
            autoHideController.removePartnerClickTargets(infoPopup.getView().getElement());
        }
    });
    UIObject.ensureDebugId((com.google.gwt.dom.client.Element) container, "autocompleteContainer");
}

From source file:com.codenvy.ide.texteditor.input.InputController.java

License:Open Source License

private TextAreaElement createInputElement() {
    final TextAreaElement inputElement = Elements.createTextAreaElement();

    // Ensure it is offscreen
    inputElement.getStyle().setPosition(CSSStyleDeclaration.Position.ABSOLUTE);
    inputElement.getStyle().setLeft("-100000px");
    inputElement.getStyle().setTop("0");
    inputElement.getStyle().setHeight("1px");
    inputElement.getStyle().setWidth("1px");
    UIObject.ensureDebugId((com.google.gwt.dom.client.Element) inputElement, "codenvyEditotid");
    /*//from  w ww .  jav  a2 s . com
     * Firefox doesn't seem to respect just the NOWRAP value, so we need to set
     * the legacy wrap attribute.
     */
    inputElement.setAttribute("wrap", "off");
    inputElement.setAttribute("autocorrect", "off");
    inputElement.setAttribute("autocapitalize", "off");

    // Attach listeners
    /*
     * For text events, call inputHandler.handleInput(event, text) if the text
     * entered was > 1 character -> from a paste event. This gets fed directly
     * into the document. Single keypresses all get captured by signalEventListener
     * and passed through the shortcut system.
     *
     * TODO: This isn't actually true, there could be paste events
     * of only one character. Change this to check if the event was a clipboard
     * event.
     */
    inputElement.addEventListener(EVENT_TEXTINPUT, new EventListener() {
        @Override
        public void handleEvent(Event event) {
            /*
             * TODO: figure out best event to listen to. Tried "input",
             * but see http://code.google.com/p/chromium/issues/detail?id=76516
             */
            String text = ((TextEvent) event).getData();
            if (text.length() <= 1) {
                return;
            }
            setInputText("");
            activeInputScheme.handleEvent(SignalEventUtils.create(event), text);
        }
    }, false);

    if (UserAgent.isFirefox()) {
        inputElement.addEventListener(Event.INPUT, new EventListener() {
            @Override
            public void handleEvent(Event event) {
                /*
                 * TODO: FF doesn't support textInput, and Chrome's input
                 * is buggy.
                 */
                String text = getInputText();
                if (text.length() <= 1) {
                    return;
                }
                setInputText("");

                activeInputScheme.handleEvent(SignalEventUtils.create(event), text);

                event.preventDefault();
                event.stopPropagation();
            }
        }, false);
    }

    EventListener signalEventListener = new EventListener() {
        @Override
        public void handleEvent(Event event) {
            SignalEvent signalEvent = SignalEventUtils.create(event);
            if (signalEvent != null) {
                if (selection.hasSelection() && signalEvent.getCommandKey()
                        && (signalEvent.getKeyCode() == 99 || signalEvent.getKeyCode() == 120)) {
                    Position[] selectionRange = selection.getSelectionRange(true);
                    String selectionText = LineUtils.getText(selectionRange[0].getLine(),
                            selectionRange[0].getColumn(), selectionRange[1].getLine(),
                            selectionRange[1].getColumn());
                    setInputText(selectionText);
                    inputElement.select();
                }
                processSignalEvent(signalEvent);
            } else if ("keyup".equals(event.getType())) {
                boolean handled = dispatchKeyUp(event);
                if (handled) {
                    // Prevent any browser handling.
                    event.preventDefault();
                    event.stopPropagation();
                }
            }
        }
    };

    /*
     * Attach to all of key events, and the SignalEvent logic will filter
     * appropriately
     */
    if (!UserAgent.isFirefox()) {
        inputElement.addEventListener(Event.COPY, signalEventListener, false);
    }

    inputElement.addEventListener(Event.CUT, signalEventListener, false);
    inputElement.addEventListener(Event.KEYDOWN, signalEventListener, false);
    inputElement.addEventListener(Event.KEYPRESS, signalEventListener, false);
    inputElement.addEventListener(Event.KEYUP, signalEventListener, false);
    inputElement.addEventListener(Event.PASTE, signalEventListener, false);

    return inputElement;
}

From source file:com.codenvy.ide.texteditor.renderer.ViewportRenderer.java

License:Open Source License

private Element createOrUpdateLineElement(final Line line, final int lineNumber, int createOffset) {
    int top = buffer.calculateLineTop(lineNumber);
    Element element = getLineElement(line);
    boolean isCreatingElement = element == null;
    if (isCreatingElement) {
        element = Elements.createDivElement();
        element.getStyle().setPosition(CSSStyleDeclaration.Position.ABSOLUTE);
        lineRendererController.renderLine(line, lineNumber, element, true);
        line.putTag(LINE_TAG_LINE_ELEMENT, element);
    }//ww  w . j a v  a  2  s.c o m
    //      new DebugAttributeSetter().add("lineNum", Integer.toString(lineNumber)).on(element);

    if (!buffer.hasLineElement(element)) {
        element.getStyle().setTop(top + createOffset, CSSStyleDeclaration.Unit.PX);
        UIObject.ensureDebugId((com.google.gwt.dom.client.Element) element, "line" + (lineNumber + 1));
        buffer.addLineElement(element);
        if (createOffset != 0) {
            /*
             * TODO: When enabling editor animations, reinvestigate
             * need for below
             */
            // Force a browser layout so CSS3 animations transition properly.
            //element.getClientWidth();
            element.getStyle().setTop(top, CSSStyleDeclaration.Unit.PX);
        }
        handleLineEnteredViewport(line, lineNumber, element);
    } else {
        element.getStyle().setTop(top, CSSStyleDeclaration.Unit.PX);
    }

    if (isCreatingElement) {
        lineLifecycleListenerManager.dispatch(new Dispatcher<Renderer.LineLifecycleListener>() {
            @Override
            public void dispatch(LineLifecycleListener listener) {
                listener.onRenderedLineCreated(line, lineNumber);
            }
        });
    } else {
        lineLifecycleListenerManager.dispatch(new Dispatcher<Renderer.LineLifecycleListener>() {
            @Override
            public void dispatch(LineLifecycleListener listener) {
                listener.onRenderedLineShifted(line, lineNumber);
            }
        });
    }

    return element;
}

From source file:com.codenvy.ide.tree.FileTreeNodeRenderer.java

License:Open Source License

/**
 * Renders the given information as a node.
 *
 * @param mouseDownListener//from   w w  w  .  j ava2 s.  co m
 *         an optional listener to be attached to the anchor. If not given, the
 *         label will not be an anchor.
 */
public static SpanElement renderNodeContents(Css css, String name, Resource item,
        EventListener mouseDownListener, boolean renderIcon) {
    SpanElement root = Elements.createSpanElement(css.root());

    if (renderIcon) {
        SVGImage image = detectIcon(item);
        if (image != null) {
            image.getElement().setAttribute("class", css.icon());
            root.appendChild((Element) image.getElement());
        }
    }

    Elements.addClassName(css.label(), root);

    if (item.isFolder()) {
        Elements.addClassName(css.folderFont(), root);
    } else if (item.isFile()) {
        Elements.addClassName(css.fileFont(), root);
    } else {
        Elements.addClassName(css.defaultFont(), root);
    }

    root.setInnerHTML(root.getInnerHTML() + "&nbsp;" + name);

    if (mouseDownListener != null) {
        root.addEventListener(Event.MOUSEDOWN, mouseDownListener, false);
    }

    UIObject.ensureDebugId((com.google.gwt.dom.client.Element) root,
            "projectTree-" + TextUtils.md5(item.getPath()));

    return root;
}

From source file:org.eclipse.che.ide.ext.debugger.client.configuration.EditDebugConfigurationsViewImpl.java

License:Open Source License

@Inject
protected EditDebugConfigurationsViewImpl(org.eclipse.che.ide.Resources resources,
        final EditConfigurationsResources editConfigurationsResources, DebuggerLocalizationConstant locale,
        CoreLocalizationConstant coreLocale, IconRegistry iconRegistry) {
    this.editConfigurationsResources = editConfigurationsResources;
    this.locale = locale;
    this.coreLocale = coreLocale;
    this.iconRegistry = iconRegistry;

    categories = new HashMap<>();

    editConfigurationsResources.getCss().ensureInjected();

    setWidget(UI_BINDER.createAndBindUi(this));
    setTitle(locale.editConfigurationsViewTitle());
    getWidget().getElement().setId("editDebugConfigurationsView");

    hintLabel = new Label(locale.editConfigurationsViewHint());
    hintLabel.addStyleName(editConfigurationsResources.getCss().hintLabel());

    filterInputField.getElement().setAttribute("placeholder", locale.editConfigurationsViewPlaceholder());
    filterInputField.getElement().addClassName(editConfigurationsResources.getCss().filterPlaceholder());

    list = new CategoriesList(resources);
    list.addDomHandler(new KeyDownHandler() {
        @Override//w ww  .  j  av  a  2 s.  com
        public void onKeyDown(KeyDownEvent event) {
            switch (event.getNativeKeyCode()) {
            case KeyboardEvent.KeyCode.INSERT:
                delegate.onAddClicked();
                resetFilter();
                break;
            case KeyboardEvent.KeyCode.DELETE:
                delegate.onRemoveClicked(selectedConfiguration);
                break;
            }
        }
    }, KeyDownEvent.getType());
    categoriesPanel.add(list);

    categoryEventDelegate = new Category.CategoryEventDelegate<DebugConfiguration>() {
        @Override
        public void onListItemClicked(Element listItemBase, DebugConfiguration itemData) {
            selectedType = itemData.getType();
            setSelectedConfiguration(itemData);
        }
    };

    categoryRenderer = new CategoryRenderer<DebugConfiguration>() {
        @Override
        public void renderElement(Element element, DebugConfiguration data) {
            UIObject.ensureDebugId(element, "debug-configuration-type-" + data.getType().getId());
            element.addClassName(editConfigurationsResources.getCss().categorySubElementHeader());
            element.setInnerText(data.getName().trim().isEmpty() ? "<none>" : data.getName());
            element.appendChild(renderSubElementButtons());
        }

        @Override
        public SpanElement renderCategory(Category<DebugConfiguration> category) {
            return renderCategoryHeader(category.getTitle());
        }
    };

    namePanel.setVisible(false);
    contentPanel.clear();

    createButtons();
    resetFilter();

    getWidget().getElement().getStyle().setPadding(0, Style.Unit.PX);
}

From source file:org.eclipse.che.ide.ext.java.client.editor.outline.JavaNodeRenderer.java

License:Open Source License

/** {@inheritDoc} */
@Override//from w ww .j  a v a2s .  co  m
public SpanElement renderNodeContents(CodeBlock data) {

    if (data instanceof JavaCodeBlock) {
        SpanElement root = Elements.createSpanElement(css.outlineRoot());
        DivElement icon = Elements.createDivElement(css.outlineIcon());
        JavaCodeBlock block = (JavaCodeBlock) data;
        SpanElement label = Elements.createSpanElement(css.outlineLabel());
        if (BlockTypes.PACKAGE.getType().equals(block.getType())) {
            Elements.addClassName(css.packageItem(), icon);
        }
        if (BlockTypes.IMPORTS.getType().equals(block.getType())) {
            Elements.addClassName(css.imports(), icon);
        } else if (BlockTypes.IMPORT.getType().equals(block.getType())) {
            Elements.addClassName(css.importItem(), icon);
        } else if (BlockTypes.CLASS.getType().equals(block.getType())) {
            Elements.addClassName(css.classItem(), icon);
        } else if (BlockTypes.INTERFACE.getType().equals(block.getType())) {
            Elements.addClassName(css.interfaceItem(), icon);
        } else if (BlockTypes.ENUM.getType().equals(block.getType())) {
            Elements.addClassName(css.enumItem(), icon);
        } else if (BlockTypes.ANNOTATION.getType().equals(block.getType())) {
            Elements.addClassName(css.annotationItem(), icon);
        } else if (BlockTypes.FIELD.getType().equals(block.getType())) {
            Elements.addClassName(getFieldClass(block.getModifiers()), icon);
        } else if (BlockTypes.METHOD.getType().equals(block.getType())) {
            Elements.addClassName(getMethodClass(block.getModifiers()), icon);
        }
        label.setTextContent(block.getName());
        UIObject.ensureDebugId((com.google.gwt.dom.client.Element) label,
                "outline-codeblock-" + block.getName());

        root.appendChild(icon);
        root.appendChild(label);
        if (block.getJavaType() != null) {
            SpanElement type = Elements.createSpanElement(css.fqnStyle());
            type.setTextContent(" : " + block.getJavaType());
            root.appendChild(type);
        }

        //      CssUtils.setClassNameEnabled(label, css.disabled(), !data.isEnabled());

        // TODO: replace with test case
        //      assert root.getChildNodes().item(LABEL_NODE_INDEX) == label;

        return root;
    } else {
        throw new UnsupportedOperationException("This NodeRenderer support only JavaCodeBlock!");
    }
}

From source file:org.eclipse.che.ide.extension.ExtensionManagerViewImpl.java

License:Open Source License

@Inject
public ExtensionManagerViewImpl(ToolbarPresenter toolbarPresenter, ActionManager actionManager,
        Resources resources) {//from w  ww.j a  v  a2  s.  c  o m
    dataGrid = new DataGrid<ExtensionDescription>(100, resources);
    rootElement = ourUiBinder.createAndBindUi(this);
    //        toolbarPresenter.go(toolBarPanel);
    DefaultActionGroup actionGroup = new DefaultActionGroup("extensionManager", false, actionManager);
    actionManager.registerAction("extensionManagerGroup", actionGroup);
    //        SortByStatusAction sortByStatusAction = new SortByStatusAction(this, resources);
    //        actionManager.registerAction("extensionManagerSortByStatus", sortByStatusAction);
    //        actionGroup.add(sortByStatusAction);
    toolbarPresenter.bindMainGroup(actionGroup);
    UIObject.ensureDebugId(descriptionArea, "window-preferences-extensions-descriptionArea");

    //        CheckboxCell checkboxCell = new CheckboxCell(false, false);
    //        Column<ExtensionDescription, Boolean> enabledColumn = new Column<ExtensionDescription, Boolean>(checkboxCell) {
    //            @Override
    //            public Boolean getValue(ExtensionDescription object) {
    //                return object.isEnabled();
    //            }
    //
    //            @Override
    //            public void render(Cell.Context context, ExtensionDescription object, SafeHtmlBuilder sb) {
    //                sb.appendHtmlConstant(
    //                        "<div id=\"" + UIObject.DEBUG_ID_PREFIX + "window-preferences-extensions-row-" + context.getIndex() + "\">");
    //                super.render(context, object, sb);
    //            }
    //        };

    //        enabledColumn.setFieldUpdater(new FieldUpdater<ExtensionDescription, Boolean>() {
    //            @Override
    //            public void update(int index, ExtensionDescription object, Boolean value) {
    //                object.setEnabled(value);
    //                delegate.setDirty();
    //            }
    //        });
    //        enabledColumn.setCellStyleNames(style.enabledColumn());
    //
    //        dataGrid.addColumn(enabledColumn);
    //        dataGrid.setColumnWidth(enabledColumn, 75, com.google.gwt.dom.client.Style.Unit.PX);

    Column<ExtensionDescription, String> titleColumn = new Column<ExtensionDescription, String>(
            new TextCell()) {
        @Override
        public String getValue(ExtensionDescription object) {
            return object.getTitle();
        }
    };
    titleColumn.setCellStyleNames(style.titleColumn());

    dataGrid.addColumn(titleColumn);
    SingleSelectionModel<ExtensionDescription> selectionModel = new SingleSelectionModel<ExtensionDescription>();
    dataGrid.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {

        }
    });

}

From source file:org.eclipse.che.ide.menu.MenuBarItem.java

License:Open Source License

private void updateEnabledState() {
    pressed = false;/*ww w. j av  a 2s.co  m*/
    if (enabled && hasVisibleItems) {
        element.setClassName(css.menuBarItem());
    } else {
        element.setClassName(css.menuBarItemDisabled());
    }

    UIObject.ensureDebugId(element, "MenuItem/" + actionManager.getId(group) + "-" + enabled);
}

From source file:org.eclipse.che.ide.part.projectexplorer.ProjectTreeNodeRenderer.java

License:Open Source License

/**
 * Set an ID property for the specified element.
 *
 * @param element/*from  w w  w.  j a va  2s .co  m*/
 *         the target {@link com.google.gwt.dom.client.Element}
 * @param node
 *         node for which the specified element is rendered
 */
private void setIdProperty(com.google.gwt.dom.client.Element element, TreeNode<?> node) {
    String id = "/" + node.getId();
    TreeNode<?> parent = node.getParent();
    while (parent != null && !parent.getId().equals("ROOT")) {
        id = "/" + parent.getId() + id;
        parent = parent.getParent();
    }
    UIObject.ensureDebugId(element, "projectTree-" + TextUtils.md5(id));
}

From source file:org.eclipse.che.ide.preferences.pages.extensions.ExtensionManagerViewImpl.java

License:Open Source License

@Inject
public ExtensionManagerViewImpl(ToolbarPresenter toolbarPresenter, ActionManager actionManager,
        Resources resources) {/*from   ww  w  .  ja v  a2 s . c o m*/
    dataGrid = new DataGrid<>(100, resources);
    rootElement = ourUiBinder.createAndBindUi(this);
    DefaultActionGroup actionGroup = new DefaultActionGroup("extensionManager", false, actionManager);
    actionManager.registerAction("extensionManagerGroup", actionGroup);
    toolbarPresenter.bindMainGroup(actionGroup);
    UIObject.ensureDebugId(descriptionArea, "window-preferences-extensions-descriptionArea");

    Column<ExtensionDescription, String> titleColumn = new Column<ExtensionDescription, String>(
            new TextCell()) {
        @Override
        public String getValue(ExtensionDescription object) {
            return object.getTitle();
        }
    };
    titleColumn.setCellStyleNames(style.titleColumn());

    dataGrid.addColumn(titleColumn);
    SingleSelectionModel<ExtensionDescription> selectionModel = new SingleSelectionModel<ExtensionDescription>();
    dataGrid.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
        }
    });
}