@Override public Element renderDom() { final Element content = Elements.createSpanElement(); content.setInnerText(header); final Element list = Elements.createUListElement(); for (final String tooltip : tooltipText) { final LIElement item = Elements.createLiElement(); item.appendChild(Elements.createTextNode(tooltip)); list.appendChild(item); } content.appendChild(list); return content; } }
public static void hideIfEmpty(Element e) { if (e.getInnerText().isEmpty()) { e.getStyle().setDisplay("none"); } else { e.getStyle().removeProperty("display"); } }
@Override public void validateItem(final Element validatedItem) { validatedItem.dispatchEvent(createValidateEvent(CUSTOM_EVT_TYPE_VALIDATE)); super.validateItem(validatedItem); }
public static void removeFromParent(Element item) { Element parent = item.getParentElement(); if (parent != null) { parent.removeChild(item); } }
public static void addClassName(Element e, String className) { String was = e.getClassName(); if (was.isEmpty()) { e.setClassName(className); } else if (!((" " + was + " ").contains(" " + className + " "))) { e.setClassName(was + " " + className); } }
/** * Add an item in the popup view. * * @param itemModel the data for the item */ public void addItem(final T itemModel) { if (itemModel == null) { return; } Element element = createItem(itemModel); element.setTabIndex(1); listElement.appendChild(element); }
if (!listElement.hasChildNodes()) { Element emptyElement = Elements.createLiElement(popupResources.popupStyle().item()); emptyElement.setTextContent(getEmptyMessage()); listElement.appendChild(emptyElement); popupElement.getStyle().setLeft(left, PX); popupElement.getStyle().setTop(top, PX); popupElement.getStyle().setWidth("" + MIN_WIDTH + "px"); popupElement.getStyle().setHeight("" + MIN_HEIGHT + "px"); popupElement.getStyle().setOpacity(0); Elements.getDocument().getBody().appendChild(popupElement); Scheduler.get().scheduleDeferred(() -> popupElement.getStyle().setOpacity(1)); final int winX = window.getInnerWidth(); final int winY = window.getInnerHeight(); ClientRect widgetRect = this.popupElement.getBoundingClientRect(); if (widgetRect.getBottom() > winY) { this.popupElement.getStyle().setHeight(widgetRect.getHeight() - overflow, PX); } else { this.popupElement.getStyle().setHeight(MIN_HEIGHT, PX); final int newTop = Math.max(winY - MIN_HEIGHT, MIN_HEIGHT); this.popupElement.getStyle().setTop(newTop, PX); widgetRect = this.popupElement.getBoundingClientRect(); if (widgetRect.getRight() > winX) {
private Node renderAction(String title, final Action action) { final Presentation presentation = presentationFactory.getPresentation(action); Element divElement = Elements.createDivElement(style.listElement()); divElement.addEventListener( "click", new EventListener() { @Override public void handleEvent(Event evt) { ActionEvent event = new ActionEvent(presentation, actionManager); action.actionPerformed(event); } }, true); divElement.getStyle().setCursor("pointer"); divElement.getStyle().setColor(Style.getOutputLinkColor()); Element label = Elements.createDivElement(style.actionLabel()); label.setInnerText(title); divElement.appendChild(label); String hotKey = KeyMapUtil.getShortcutText(keyBindingAgent.getKeyBinding(actionManager.getId(action))); if (hotKey == null) { hotKey = " "; } else { hotKey = "<nobr> " + hotKey + " </nobr>"; } SpanElement hotKeyElement = Elements.createSpanElement(style.hotKey()); hotKeyElement.setInnerHTML(hotKey); divElement.appendChild(hotKeyElement); return divElement; }
@Override public Element createItem(final SymbolInformation itemModel) { final Element element = Elements.createLiElement(popupResources.popupStyle().item()); final Element iconElement = Elements.createDivElement(popupResources.popupStyle().icon()); SVGImage svgImage = getSvgImage(itemModel.getKind()); iconElement.appendChild((Node) svgImage.getElement()); element.appendChild(iconElement); element.appendChild(createTitleOfElement(itemModel)); final EventListener validateListener = evt -> { openImplementationPresenter.openOneImplementation(itemModel); hide(); }; element.addEventListener(Event.DBLCLICK, validateListener, false); element.addEventListener(CUSTOM_EVT_TYPE_VALIDATE, validateListener, false); return element; }
@Override public final void addAnnotation(final Annotation annotation, int offset) { asElemental().appendChild(buildIncludedElement(annotation, offset)); updateIconVisibility(); }
private void endDragging(MouseUpEvent event) { dragging = false; DOM.releaseCapture(windowFrameTitleBar.getElement()); elemental.dom.Element element = (elemental.dom.Element) windowFrame.getElement(); element.getStyle().setProperty("transition", transition); }
private SpanElement createTerminalElement(ProcessTreeNode node) { SpanElement root = Elements.createSpanElement(); ensureDebugId(root, "terminal-root-element"); root.appendChild(createCloseElement(node)); SVGResource icon = node.getTitleIcon(); if (icon != null) { SpanElement iconElement = Elements.createSpanElement(resources.getCss().processIcon()); ensureDebugId(iconElement, "terminal-icon-element"); root.appendChild(iconElement); DivElement divElement = Elements.createDivElement(resources.getCss().processIconPanel()); iconElement.appendChild(divElement); divElement.appendChild((Node) new SVGImage(icon).getElement()); } Element nameElement = Elements.createSpanElement(); nameElement.setTextContent(node.getName()); nameElement.setClassName(resources.getCss().processName()); ensureDebugId(nameElement, "terminal-name-element"); Tooltip.create(nameElement, BOTTOM, MIDDLE, node.getName()); root.appendChild(nameElement); Element spanElement = Elements.createSpanElement(); spanElement.setInnerHTML(" "); root.appendChild(spanElement); return root; }
private void updateIconVisibility() { int maxLayer = 0; final HTMLCollection children = asElemental().getChildren(); for (int i = 0; i < children.length(); i++) { final Node child = (Node) children.at(i); if (child instanceof elemental.dom.Element) { final elemental.dom.Element element = (elemental.dom.Element) child; final Mappable dataset = element.getDataset(); final int layer = getLayer(dataset); if (maxLayer < layer) { maxLayer = layer; } } } for (int i = 0; i < children.length(); i++) { final Node child = (Node) children.at(i); if (child instanceof elemental.dom.Element) { final elemental.dom.Element element = (elemental.dom.Element) child; final Mappable dataset = element.getDataset(); final int layer = getLayer(dataset); if (layer >= maxLayer) { element.getStyle().removeProperty("display"); } else { element.getStyle().setDisplay("none"); } } } }
/** Hide the popup. */ public void hide() { // restore previous focus state if (previousFocus != null) { previousFocus.focus(); previousFocus = null; } popupElement.getStyle().setOpacity(0); new Timer() { @Override public void run() { if (popupElement != null) { // detach assist popup popupElement.getParentNode().removeChild(popupElement); popupElement = null; } // remove all items from popup element listElement.setInnerHTML(""); } }.schedule(250); // remove the keyboard listener listElement.removeEventListener(Event.KEYDOWN, keyboardListener); Elements.getDocument().removeEventListener(Event.KEYDOWN, keyboardListener); // remove the mouse listener Elements.getDocument().removeEventListener(Event.MOUSEDOWN, popupListener); }
monitorsElement.appendChild(monitorNode); nameElement.setTextContent(machineName); Tooltip.create(nameElement, BOTTOM, MIDDLE, machineName); root.appendChild(nameElement);
private elemental.dom.Element buildIncludedElement(Annotation annotation, int offset) { final elemental.dom.Element element = annotation.getImageElement(); final CSSStyleDeclaration style = element.getStyle(); int layer = annotation.getLayer(); style.setZIndex(layer); style.setPosition(ABSOLUTE); style.setTop("0"); style.setLeft("0"); style.setRight("0"); style.setBottom("0"); element.getDataset().setAt(MESSAGE_DATASET_NAME, annotation.getText()); element.getDataset().setAt(TYPE_DATASET_NAME, annotation.getType()); element.getDataset().setAt(LAYER_DATASET_NAME, Integer.toString(layer)); element.getDataset().setAt(OFFSET_DATASET_NAME, Integer.toString(offset)); return element; }
/** * Focus the next item in the list, or the first item if we are already at the last. In the case * the list doesn't currently have focus, focus the first element. */ private void focusNext() { final Element current = Elements.getDocument().getActiveElement(); if (current.getParentElement().isEqualNode(listElement)) { final Element next = current.getNextElementSibling(); if (next != null) { select(next); next.focus(); } else { focusFirst(); } } else { // we don't actually have focus, focus the first element focusFirst(); } }
/** * Focus the previous item in the list, or the last item if we are already at the first. In the * case the list doesn't currently have focus, focus the first element. */ private void focusPrevious() { final Element current = Elements.getDocument().getActiveElement(); if (current.getParentElement().isEqualNode(listElement)) { final Element prev = current.getPreviousElementSibling(); if (prev != null) { select(prev); prev.focus(); } else { focusLast(); } } else { // we don't actually have focus, focus the first element focusFirst(); } }
if (UserAgent.isFirefox()) { documentElement.addEventListener(Event.KEYPRESS, downListener, true); } else { documentElement.addEventListener(Event.KEYDOWN, downListener, true);
/** Activates the currently selected item. */ private void validateItem() { final Element current = Elements.getDocument().getActiveElement(); if (current.getParentElement().isEqualNode(listElement)) { this.popupWidget.validateItem(current); } }