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.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
new file mode 100644
index 000000000000..d2c453e785d2
--- /dev/null
+++ b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplateLanguagePanel.java
@@ -0,0 +1,73 @@
+package com.jetbrains.python.templateLanguages;
+
+import com.intellij.facet.ui.FacetValidatorsManager;
+import com.intellij.openapi.fileChooser.FileChooserDescriptor;
+import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
+import com.intellij.ui.components.JBLabel;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.List;
+
+public class TemplateLanguagePanel extends JPanel {
+ private JTextField myTemplatesFolder;
+ private JPanel myMainPanel;
+ private JLabel myTemplatesFolderLabel;
+ private JComboBox myTemplateLanguage;
+
+ private static final String DEFAULT_TEMPLATES_FOLDER = "templates";
+
+ public TemplateLanguagePanel() {
+ super(new BorderLayout());
+ add(myMainPanel, BorderLayout.CENTER);
+ myTemplatesFolderLabel.setLabelFor(myTemplatesFolder);
+ FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
+ descriptor.withTreeRootVisible(true);
+ descriptor.setShowFileSystemRoots(true);
+ List<String> templateConfigurations = TemplatesService.getAllTemplateLanguages();
+ for (String configuration : templateConfigurations) {
+ if (!configuration.equals(TemplatesService.WEB2PY))
+ myTemplateLanguage.addItem(configuration);
+ }
+ myTemplatesFolder.setText(DEFAULT_TEMPLATES_FOLDER);
+ }
+
+ public String getTemplatesFolder() {
+ return myTemplatesFolder.getText();
+ }
+
+ public String getTemplateLanguage() {
+ final Object selectedItem = myTemplateLanguage.getSelectedItem();
+ return selectedItem != null ? (String)selectedItem : null;
+ }
+
+ public void setTemplateLanguage(String language) {
+ myTemplateLanguage.setSelectedItem(language);
+ }
+
+ public void saveSettings(TemplateSettingsHolder holder) {
+ holder.setTemplatesFolder(getTemplatesFolder());
+ final Object templateLanguage = getTemplateLanguage();
+ holder.setTemplateLanguage((String)templateLanguage);
+ }
+
+ public void setTemplatesFolder(@NotNull final String folder) {
+ myTemplatesFolder.setText(folder);
+ }
+
+ public Dimension getLabelSize() {
+ return new JBLabel("Template language:").getPreferredSize();
+ }
+
+ public void registerValidators(final FacetValidatorsManager validatorsManager) {
+ myTemplateLanguage.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ validatorsManager.validate();
+ }
+ });
+ }
+}