List of usage examples for com.google.gwt.user.client.ui UIObject ensureDebugId
public static void ensureDebugId(Element elem, String id)
Ensure that elem has an ID property set, which allows it to integrate with third-party libraries and test tools.
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() + " " + 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) { } }); }