/** {@inheritDoc} */ @Override // TODO public void updatePresentation(@NotNull NodePresentation presentation) { SpanElement spanElement = createSpanElement(styles.treeStylesCss().presentableTextContainer()); spanElement.setAttribute("debugFilePath", itemPath); SpanElement lineNumberElement = createSpanElement(); lineNumberElement.setInnerHTML( String.valueOf(searchOccurrence.getLineNumber()) + ": "); spanElement.appendChild(lineNumberElement); SpanElement textElement = createSpanElement(); String phrase = searchOccurrence.getPhrase(); String matchedLine = searchOccurrence.getLineContent(); if (matchedLine != null && phrase != null) { String startOfLine = matchedLine.substring(0, matchedLine.indexOf(phrase)); String endOfLine = matchedLine.substring(matchedLine.indexOf(phrase) + phrase.length()); textElement.appendChild(createTextNode(startOfLine)); SpanElement highlightElement = createSpanElement(resources.coreCss().searchMatch()); highlightElement.setInnerText(phrase); textElement.appendChild(highlightElement); textElement.appendChild(createTextNode(endOfLine)); } else { textElement.appendChild(createTextNode("Can't find sources")); } spanElement.appendChild(textElement); presentation.setPresentableIcon(resources.searchMatch()); presentation.setUserElement((Element) spanElement); }
/** {@inheritDoc} */ @Override public Element getNodeKeyTextContainer(SpanElement treeNodeLabel) { return (Element) treeNodeLabel.getChildNodes().item(1); }
private SpanElement getHotKey(Action action) { final SpanElement spanElement = Elements.createSpanElement(); spanElement.getStyle().setMarginLeft("5px"); spanElement.getStyle().setColor("#aaaaaa"); final String actionId = actionManagerProvider.get().getId(action); final CharCodeWithModifiers keyBinding = keyBindingAgentProvider.get().getKeyBinding(actionId); final String hotKey = KeyMapUtil.getShortcutText(keyBinding); if (hotKey != null) { spanElement.setInnerText("[" + hotKey + "]"); } return spanElement; } }
private SpanElement createTitleOfElement(SymbolInformation symbolInformation) { String path = symbolInformation.getLocation().getUri(); SpanElement texElement = Elements.createSpanElement(); SpanElement highlightElement = Elements.createSpanElement(javaResources.css().presentableTextContainer()); highlightElement.setInnerText(" - (" + path + ')'); texElement.setInnerText(symbolInformation.getName()); texElement.appendChild(highlightElement); return texElement; }
/** {@inheritDoc} */ @Override public void updatePresentation(@NotNull NodePresentation presentation) { StringBuilder resultTitle = new StringBuilder(); resultTitle.append(" ("); resultTitle.append(searchItemReference.getOccurrences().size()); resultTitle.append(" occurrence"); if (searchItemReference.getOccurrences().size() > 1) { resultTitle.append('s'); } resultTitle.append(" of '"); resultTitle.append(request); resultTitle.append('\''); resultTitle.append(" found)"); presentation.setPresentableText(resultTitle.toString()); SpanElement spanElement = Elements.createSpanElement(resources.coreCss().foundItem()); spanElement.setId(searchItemReference.getPath()); spanElement.setInnerText(searchItemReference.getPath()); presentation.setUserElement((Element) spanElement); }
lineNumberElement.setInnerHTML( String.valueOf(snippet.getLineIndex() + 1) + ": "); spanElement.appendChild(lineNumberElement); if (matchedLine != null && matchInLine != null) { String startLine = matchedLine.substring(0, matchInLine.getOffset()); textElement.appendChild(Elements.createTextNode(startLine)); SpanElement highlightElement = Elements.createSpanElement(resources.css().searchMatch()); highlightElement.setInnerText( matchedLine.substring( matchInLine.getOffset(), matchInLine.getOffset() + matchInLine.getLength())); textElement.appendChild(highlightElement); textElement.appendChild( Elements.createTextNode( matchedLine.substring(matchInLine.getOffset() + matchInLine.getLength()))); } else { textElement.appendChild(Elements.createTextNode("Can't find sources")); spanElement.appendChild(textElement);
private void initHintLabel() { final SpanElement upKeyLabel = createKeyLabel(); upKeyLabel.setInnerHTML(FontAwesome.ARROW_UP); final SpanElement downKeyLabel = createKeyLabel(); downKeyLabel.setInnerHTML(FontAwesome.ARROW_DOWN); final SpanElement enterKeyLabel = createKeyLabel(); enterKeyLabel.getStyle().setPadding("0px 1px 1px 4px"); enterKeyLabel.setInnerText(" Enter "); final DivElement hintElement = createDivElement(); hintElement.appendChild(upKeyLabel); hintElement.appendChild(downKeyLabel); hintElement.appendChild(createTextNode(" to select and ")); hintElement.appendChild(enterKeyLabel); hintElement.appendChild(createTextNode(" to execute")); hintLabel.getElement().appendChild((Element) hintElement); }
SpanElement newTerminalButton = Elements.createSpanElement(resources.getCss().newTerminalButton()); newTerminalButton.appendChild((Node) new SVGImage(resources.addTerminalIcon()).getElement()); root.appendChild(newTerminalButton); newTerminalButton.addEventListener( Event.CLICK, event -> { }; newTerminalButton.addEventListener(Event.MOUSEDOWN, blockMouseListener, true); newTerminalButton.addEventListener(Event.MOUSEUP, blockMouseListener, true); newTerminalButton.addEventListener(Event.CLICK, blockMouseListener, true); newTerminalButton.addEventListener(Event.DBLCLICK, blockMouseListener, true); sshButton.setTextContent("SSH"); root.appendChild(sshButton); sshButton.addEventListener( Event.CLICK, event -> { root.appendChild(monitorsElement); nameElement.setTextContent(machineName); Tooltip.create(nameElement, BOTTOM, MIDDLE, machineName); root.appendChild(nameElement);
/** {@inheritDoc} */ @Override public SpanElement renderNodeContents(Reference data) { SpanElement root = Elements.createSpanElement(css.referenceRoot()); SVGImage icon; if (data.getFullName().equals(MergePresenter.LOCAL_BRANCHES_TITLE)) { icon = new SVGImage(gitResources.checkoutReference()); } else if (data.getFullName().equals(MergePresenter.REMOTE_BRANCHES_TITLE)) { icon = new SVGImage(gitResources.remote()); } else { icon = new SVGImage(gitResources.branches()); } SpanElement label = Elements.createSpanElement(css.referenceLabel()); String content = data.getDisplayName(); label.setTextContent(content); root.appendChild((Node) icon.getSvgElement().getElement()); root.appendChild(label); return root; }
private SpanElement createCloseElement(final ProcessTreeNode node) { SpanElement closeButton = Elements.createSpanElement(resources.getCss().processesPanelCloseButtonForProcess()); ensureDebugId(closeButton, "close-terminal-node-button"); SVGImage icon = new SVGImage(partResources.closeIcon()); closeButton.appendChild((Node) icon.getElement()); Tooltip.create(closeButton, BOTTOM, MIDDLE, locale.viewCloseProcessOutputTooltip()); closeButton.addEventListener( Event.CLICK, event -> { if (stopProcessHandler != null) { stopProcessHandler.onCloseProcessOutputClick(node); } }, true); return closeButton; }
private SpanElement createCommandElement(ProcessTreeNode node) { SpanElement root = Elements.createSpanElement(resources.getCss().commandTreeNode()); root.appendChild(createCloseElement(node)); root.appendChild(createStopProcessElement(node)); SVGResource icon = node.getTitleIcon(); if (icon != null) { SpanElement iconElement = Elements.createSpanElement(resources.getCss().processIcon()); root.appendChild(iconElement); DivElement divElement = Elements.createDivElement(resources.getCss().processIconPanel()); iconElement.appendChild(divElement); divElement.appendChild((Node) new SVGImage(icon).getElement()); DivElement badgeElement = Elements.createDivElement(resources.getCss().processBadge()); divElement.appendChild(badgeElement); } Element nameElement = Elements.createSpanElement(); nameElement.setTextContent(node.getName()); nameElement.setClassName(resources.getCss().processName()); Tooltip.create(nameElement, BOTTOM, MIDDLE, node.getName()); root.appendChild(nameElement); Element spanElement = Elements.createSpanElement(); spanElement.setInnerHTML(" "); root.appendChild(spanElement); return root; }
@Override public NewNodePresentation getPresentation() { SpanElement spanElement = Elements.createSpanElement(styles.treeStylesCss().presentableTextContainer()); spanElement.setInnerHTML( "Usages of <span class=\"" + resources.css().searchMatch() + "\">" + response.getSearchedElement() + "</span> [" + calculateMatchCount(response) + " occurrences]"); return new NewNodePresentation.Builder().withUserElement((Element) spanElement).build(); }
@Override public NewNodePresentation getPresentation() { // Immutable part of node presentation is cached in nodePresentationBuilder field. // Every time here should be set variable parts of the node builder. if (changes > 0) { SpanElement spanElement = Elements.createSpanElement(gitResources.gitPanelCss().repositoryChangesLabel()); spanElement.setInnerText(CHANGES_PREFIX + changes); nodePresentationBuilder.withUserElement((Element) spanElement); } else { nodePresentationBuilder.withUserElement(null); // remove label from node } return nodePresentationBuilder.build(); }
/** Creates an html element for displaying keyboard key. */ private SpanElement createKeyLabel() { SpanElement element = createSpanElement(); element.getStyle().setFontWeight("bold"); element.getStyle().setPadding("0 4px 1px 4px"); element.getStyle().setMargin("0 3px"); element.getStyle().setBorderWidth("1px"); element.getStyle().setBorderStyle("solid"); element.getStyle().setProperty("border-radius", "3px"); return element; }
private SpanElement createStopProcessElement(final ProcessTreeNode node) { SpanElement stopProcessButton = Elements.createSpanElement(resources.getCss().processesPanelStopButtonForProcess()); ensureDebugId(stopProcessButton, "stop-process-button-element"); Tooltip.create(stopProcessButton, BOTTOM, MIDDLE, locale.viewStropProcessTooltip()); stopProcessButton.addEventListener( Event.CLICK, event -> { if (stopProcessHandler != null) { stopProcessHandler.onStopProcessClick(node); } }, true); return stopProcessButton; }
private SpanElement createCloseElement(final ProcessTreeNode node) { SpanElement closeButton = Elements.createSpanElement(resources.getCss().processesPanelCloseButtonForProcess()); ensureDebugId(closeButton, "close-command-node-button"); SVGImage icon = new SVGImage(partResources.closeIcon()); closeButton.appendChild((Node) icon.getElement()); Tooltip.create(closeButton, BOTTOM, MIDDLE, locale.viewCloseProcessOutputTooltip()); closeButton.addEventListener( Event.CLICK, event -> { if (stopProcessHandler != null) { stopProcessHandler.onCloseProcessOutputClick(node); } }, true); return closeButton; }
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 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; }
private void setTooltip(String newTooltipText, @Nullable CharCodeWithModifiers keyBinding) { if (newTooltipText.equals(tooltipText)) { return; } tooltipText = newTooltipText; if (tooltip != null) { tooltip.destroy(); } final DivElement divElement = Elements.createDivElement(); divElement.setInnerText(newTooltipText); if (keyBinding != null) { final String hotKey = getShortcutText(keyBinding); if (hotKey != null) { SpanElement spanElement = Elements.createSpanElement(); spanElement.getStyle().setMarginLeft("5px"); spanElement.getStyle().setColor("#aaaaaa"); spanElement.setInnerText("[" + hotKey + "]"); divElement.appendChild(spanElement); } } tooltip = Tooltip.create((Element) getElement(), BOTTOM, MIDDLE, divElement); }
label.setInnerHTML(proposal.getDisplayString()); element.appendChild(label);