@NotNull public static ColorKey createColorKey( @NonNls @NotNull String externalName, @Nullable Color defaultColor) { ColorKey key = createColorKey(externalName); if (key.getDefaultColor() == null) { key.myDefaultColor = defaultColor; } return key; }
private void writeColors(Element colorElements) { List<ColorKey> list = new ArrayList<ColorKey>(myColorsMap.keySet()); Collections.sort(list); for (ColorKey key : list) { if (haveToWrite(key)) { Color value = myColorsMap.get(key); Element element = new Element(OPTION_ELEMENT); element.setAttribute(NAME_ATTR, key.getExternalName()); element.setAttribute( VALUE_ELEMENT, value != null ? Integer.toString(value.getRGB() & 0xFFFFFF, 16) : ""); colorElements.addContent(element); } } }
private static void addEditorSettingDescription( @NotNull List<EditorSchemeAttributeDescriptor> array, String name, String group, @Nullable ColorKey backgroundKey, @Nullable ColorKey foregroundKey, EditorColorsScheme scheme) { String type = null; if (foregroundKey != null) { type = foregroundKey.getExternalName(); } else { if (backgroundKey != null) { type = backgroundKey.getExternalName(); } } ColorAndFontDescription descr = new EditorSettingColorDescription(name, group, backgroundKey, foregroundKey, type, scheme); array.add(descr); }
private void readColors(Element childNode) { for (final Object o : childNode.getChildren(OPTION_ELEMENT)) { Element colorElement = (Element) o; Color valueColor = readColorValue(colorElement); final String colorName = colorElement.getAttributeValue(NAME_ATTR); if (BACKGROUND_COLOR_NAME.equals(colorName)) { // This setting has been deprecated to usages of HighlighterColors.TEXT attributes. myDeprecatedBackgroundColor = valueColor; } ColorKey name = ColorKey.find(colorName); myColorsMap.put(name, valueColor); } }
private void paintSelection(Graphics2D g) { int selectionStartOffset = editor.getSelectionModel().getSelectionStart(); int selectionEndOffset = editor.getSelectionModel().getSelectionEnd(); int firstSelectedLine = coords.offsetToScreenSpace(selectionStartOffset); int firstSelectedCharacter = coords.offsetToCharacterInLine(selectionStartOffset); int lastSelectedLine = coords.offsetToScreenSpace(selectionEndOffset); int lastSelectedCharacter = coords.offsetToCharacterInLine(selectionEndOffset); g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.90f)); g.setColor( editor .getColorsScheme() .getColor(ColorKey.createColorKey("SELECTION_BACKGROUND", JBColor.BLUE))); if (firstSelectedLine == lastSelectedLine) { // Single line is easy g.fillRect( firstSelectedCharacter, firstSelectedLine, lastSelectedCharacter - firstSelectedCharacter, config.pixelsPerLine); } else { // Draw the line leading in g.fillRect( firstSelectedCharacter, firstSelectedLine, getWidth() - firstSelectedCharacter, config.pixelsPerLine); // Then the line at the end g.fillRect(0, lastSelectedLine, lastSelectedCharacter, config.pixelsPerLine); if (firstSelectedLine + 1 != lastSelectedLine) { // And if there is anything in between, fill it in g.fillRect( 0, firstSelectedLine + config.pixelsPerLine, getWidth(), lastSelectedLine - firstSelectedLine - config.pixelsPerLine); } } }
private void updatePreview() { ConnectionHandler connectionHandler = variablesBundle.getActiveConnection(); Project project = connectionHandler.getProject(); String previewText = variablesBundle.prepareStatementText(connectionHandler, this.statementText, true); for (StatementExecutionVariableValueForm variableValueForm : variableValueForms) { String errorText = variablesBundle.getError(variableValueForm.getVariable()); if (errorText == null) variableValueForm.hideErrorLabel(); else variableValueForm.showErrorLabel(errorText); } if (previewDocument == null) { PsiFileFactory psiFileFactory = PsiFileFactory.getInstance(project); SQLFile selectStatementFile = (SQLFile) psiFileFactory.createFileFromText( "filter.sql", connectionHandler.getLanguageDialect(SQLLanguage.INSTANCE), previewText); selectStatementFile.setActiveConnection(connectionHandler); selectStatementFile.setCurrentSchema(variablesBundle.getCurrentSchema()); previewDocument = DocumentUtil.getDocument(selectStatementFile); viewer = (EditorEx) EditorFactory.getInstance().createViewer(previewDocument, project); viewer.setEmbeddedIntoDialogWrapper(true); JScrollPane viewerScrollPane = viewer.getScrollPane(); SyntaxHighlighter syntaxHighlighter = connectionHandler.getLanguageDialect(SQLLanguage.INSTANCE).getSyntaxHighlighter(); EditorColorsScheme colorsScheme = viewer.getColorsScheme(); viewer.setHighlighter(HighlighterFactory.createHighlighter(syntaxHighlighter, colorsScheme)); viewer.setBackgroundColor(colorsScheme.getColor(ColorKey.find("CARET_ROW_COLOR"))); viewerScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); viewerScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); // viewerScrollPane.setBorder(null); viewerScrollPane.setViewportBorder( new LineBorder(CompatibilityUtil.getEditorBackgroundColor(viewer), 4, false)); EditorSettings settings = viewer.getSettings(); settings.setFoldingOutlineShown(false); settings.setLineMarkerAreaShown(false); settings.setLineNumbersShown(false); settings.setVirtualSpace(false); settings.setDndEnabled(false); settings.setAdditionalLinesCount(2); settings.setRightMarginShown(false); previewPanel.add(viewer.getComponent(), BorderLayout.CENTER); } else { final String finalPreviewText = previewText; new WriteActionRunner() { public void run() { previewDocument.setText(finalPreviewText); } }.start(); } }