From 6afc89bbe7955d0da7b5dd4e2a71dab3d62e0b16 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 3 May 2018 00:54:34 +0300 Subject: [PATCH] reuse JBTextField empty-text; solve AA problem --- .../options/TargetOptionsComponent.java | 34 ++----------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/options/TargetOptionsComponent.java b/java/compiler/impl/src/com/intellij/compiler/options/TargetOptionsComponent.java index 7156632fcfad..a9d66f36d371 100644 --- a/java/compiler/impl/src/com/intellij/compiler/options/TargetOptionsComponent.java +++ b/java/compiler/impl/src/com/intellij/compiler/options/TargetOptionsComponent.java @@ -8,6 +8,7 @@ import com.intellij.ui.JBColor; import com.intellij.ui.TableSpeedSearch; import com.intellij.ui.TableUtil; import com.intellij.ui.ToolbarDecorator; +import com.intellij.ui.components.JBTextField; import com.intellij.ui.table.JBTable; import com.intellij.util.ArrayUtil; import com.intellij.util.ObjectUtils; @@ -94,7 +95,8 @@ public class TargetOptionsComponent extends JPanel { combo.setEditor(new BasicComboBoxEditor() { @Override protected JTextField createEditorComponent() { - HintTextField editor = new HintTextField(COMPILER_DEFAULT, 12); + JBTextField editor = new JBTextField(COMPILER_DEFAULT, 12); + editor.getEmptyText().setText(COMPILER_DEFAULT); editor.setBorder(null); return editor; } @@ -164,34 +166,4 @@ public class TargetOptionsComponent extends JPanel { return component; } } - - private static class HintTextField extends JTextField { - private final char[] myHint; - - private HintTextField(String hint, int columns) { - super(hint, columns); - myHint = hint.toCharArray(); - } - - @Override - protected void paintComponent(Graphics g) { - super.paintComponent(g); - boolean isFocused = isFocusOwner(); - if (!isFocused && getText().isEmpty()) { - Color oldColor = g.getColor(); - Font oldFont = g.getFont(); - try { - g.setColor(JBColor.GRAY); - FontMetrics metrics = g.getFontMetrics(); - int x = Math.abs(getWidth() - metrics.charsWidth(myHint, 0, myHint.length)) / 2; - int y = Math.abs(getHeight() - metrics.getHeight()) / 2 + metrics.getAscent(); - g.drawChars(myHint, 0, myHint.length, x, y); - } - finally { - g.setColor(oldColor); - g.setFont(oldFont); - } - } - } - } } \ No newline at end of file