PY-11180 Template Create dialog is too small
authorIlya.Kazakevich <Ilya.Kazakevich@jetbrains.com>
Tue, 21 Oct 2014 15:13:20 +0000 (19:13 +0400)
committerIlya.Kazakevich <Ilya.Kazakevich@jetbrains.com>
Tue, 21 Oct 2014 15:13:20 +0000 (19:13 +0400)
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.

platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java
platform/platform-api/src/com/intellij/ui/GuiUtils.java

index 906e2496296ea04d3d44cbd0ec1a63bafedcda64..5ee7a73b73a614e019c8019a796502d5385ac589 100644 (file)
@@ -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<Comp extends JComponent> 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));
index d0bd138ec31fe67106c3e2da9417154950dab2a4..ce60c6b53de594863ff0ba5def6d2561277b200b 100644 (file)
@@ -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;
+  }
 }