Fix margins for TextFields in ColoredPanels

This commit is contained in:
Kirill Kirichenko
2018-05-16 12:00:52 +03:00
parent 9c700e9ff4
commit 41160a90cb
2 changed files with 14 additions and 1 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.ui;
import com.intellij.ui.components.JBTextField;
import com.intellij.util.ui.JBInsets;
import com.intellij.util.ui.JBUI;
import org.jetbrains.annotations.Nullable;
@@ -36,7 +37,7 @@ import static java.util.Locale.ENGLISH;
public class ColorPanel extends JComponent {
private static final RelativeFont MONOSPACED_FONT = RelativeFont.SMALL.family(Font.MONOSPACED);
private final List<ActionListener> myListeners = new CopyOnWriteArrayList<>();
private final JTextField myTextField = new JTextField(8);
private final JTextField myTextField = new JBTextField(8);
private boolean myEditable;
private ActionEvent myEvent;
private Color myColor;
@@ -112,4 +112,16 @@ public class JBTextField extends JTextField implements ComponentWithEmptyText, T
String text = ui == null ? null : ui.getToolTipText(this, event.getPoint());
return text != null ? text : getToolTipText();
}
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
int columns = getColumns();
if (columns != 0) {
Insets insets = getInsets();
Insets margins = getMargin(); // Account for margins
size.width = columns * getColumnWidth() + insets.left + margins.left + margins.right + insets.right;
}
return size;
}
}