diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java index 906e2496296e..5ee7a73b73a6 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java @@ -32,6 +32,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.GuiUtils; import com.intellij.ui.UIBundle; import com.intellij.util.Consumer; import com.intellij.util.ui.UIUtil; @@ -88,9 +89,7 @@ public class ComponentWithBrowseButton extends JPanel i public void setTextFieldPreferredWidth(final int charCount) { final Comp comp = getChildComponent(); - Dimension size = comp.getPreferredSize(); - FontMetrics fontMetrics = comp.getFontMetrics(comp.getFont()); - size.width = fontMetrics.charWidth('a') * charCount; + Dimension size = GuiUtils.getSizeByChars(charCount, comp); comp.setPreferredSize(size); final Dimension preferredSize = myBrowseButton.getPreferredSize(); setPreferredSize(new Dimension(size.width + preferredSize.width + 2, UIUtil.isUnderAquaLookAndFeel() ? preferredSize.height : preferredSize.height + 2)); diff --git a/platform/platform-api/src/com/intellij/ui/GuiUtils.java b/platform/platform-api/src/com/intellij/ui/GuiUtils.java index d0bd138ec31f..ce60c6b53de5 100644 --- a/platform/platform-api/src/com/intellij/ui/GuiUtils.java +++ b/platform/platform-api/src/com/intellij/ui/GuiUtils.java @@ -390,4 +390,18 @@ public class GuiUtils { public static JTextField createUndoableTextField() { return new JBTextField(); } + + /** + * Returns dimension with width required to type certain number of chars in provided component + * @param charCount number of chars + * @param comp component + * @return dimension with width enough to insert provided number of chars into component + */ + @NotNull + public static Dimension getSizeByChars(int charCount, @NotNull JComponent comp) { + Dimension size = comp.getPreferredSize(); + FontMetrics fontMetrics = comp.getFontMetrics(comp.getFont()); + size.width = fontMetrics.charWidth('a') * charCount; + return size; + } }