summaryrefslogtreecommitdiff
path: root/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java')
-rw-r--r--python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
index d2c453e785d2..6196b54c9465 100644
--- a/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
+++ b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
@@ -10,6 +10,9 @@ import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.io.File;
import java.util.List;
public class TemplateLanguagePanel extends JPanel {
@@ -17,7 +20,7 @@ public class TemplateLanguagePanel extends JPanel {
private JPanel myMainPanel;
private JLabel myTemplatesFolderLabel;
private JComboBox myTemplateLanguage;
-
+ private boolean myTemplateFolderModified = false;
private static final String DEFAULT_TEMPLATES_FOLDER = "templates";
public TemplateLanguagePanel() {
@@ -33,6 +36,15 @@ public class TemplateLanguagePanel extends JPanel {
myTemplateLanguage.addItem(configuration);
}
myTemplatesFolder.setText(DEFAULT_TEMPLATES_FOLDER);
+ myTemplatesFolder.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyTyped(KeyEvent e) {
+ final int dot = myTemplatesFolder.getCaret().getDot();
+ final int index = myTemplatesFolder.getText().indexOf(File.separator);
+ if (index >= dot)
+ myTemplateFolderModified = true;
+ }
+ });
}
public String getTemplatesFolder() {
@@ -58,6 +70,19 @@ public class TemplateLanguagePanel extends JPanel {
myTemplatesFolder.setText(folder);
}
+ public void locationChanged(@NotNull final String baseLocation) {
+ final String templatesFolder = myTemplatesFolder.getText();
+ final int index = templatesFolder.indexOf(File.separator);
+ final String templateFolderName = index >= 0 ? templatesFolder.substring(index) : File.separator + "templates";
+ final String oldBase = index >= 0 ? templatesFolder.substring(0, index) : "";
+ if (oldBase.equals(baseLocation)) {
+ myTemplateFolderModified = false;
+ }
+ if (!myTemplateFolderModified) {
+ myTemplatesFolder.setText(baseLocation + templateFolderName);
+ }
+ }
+
public Dimension getLabelSize() {
return new JBLabel("Template language:").getPreferredSize();
}