From 55a7608f865ca6345525cf369fac4aae3545d8f0 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Tue, 21 Oct 2014 19:13:20 +0400 Subject: [PATCH] PY-11180 Template Create dialog is too small PY-11959 Add inspection options to force pycharm inspection suggesting first current app template folder to create a new template file PY-13501 Wrong location on html template file creation option. --- .../openapi/ui/ComponentWithBrowseButton.java | 5 ++--- .../platform-api/src/com/intellij/ui/GuiUtils.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) 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; + } }