added idea support
[idea/community.git] / python / educational / course-creator / src / com / jetbrains / edu / coursecreator / ui / CCNewProjectPanel.java
1 package com.jetbrains.edu.coursecreator.ui;
2
3 import com.intellij.facet.ui.FacetValidatorsManager;
4 import com.intellij.openapi.util.text.StringUtil;
5 import com.intellij.ui.DocumentAdapter;
6 import com.intellij.ui.JBColor;
7 import org.jetbrains.annotations.NotNull;
8
9 import javax.swing.*;
10 import javax.swing.event.DocumentEvent;
11
12 public class CCNewProjectPanel {
13   private JPanel myPanel;
14   private JTextArea myDescription;
15   private JTextField myName;
16   private JTextField myAuthorField;
17   private FacetValidatorsManager myValidationManager;
18
19
20   public CCNewProjectPanel() {
21     final String userName = System.getProperty("user.name");
22     if (userName != null) {
23       myAuthorField.setText(userName);
24     }
25     myName.getDocument().addDocumentListener(new MyValidator());
26     myDescription.getDocument().addDocumentListener(new MyValidator());
27     myAuthorField.getDocument().addDocumentListener(new MyValidator());
28
29     myDescription.setBorder(BorderFactory.createLineBorder(JBColor.border()));
30   }
31
32   public CCNewProjectPanel(String name, String author, String description) {
33     this();
34     myName.setText(name);
35     myAuthorField.setText(author);
36     myDescription.setText(description);
37   }
38
39   public JPanel getMainPanel() {
40     return myPanel;
41   }
42
43   @NotNull
44   public String getName() {
45     return StringUtil.notNullize(myName.getText());
46   }
47
48   @NotNull
49   public String getDescription() {
50     return StringUtil.notNullize(myDescription.getText());
51   }
52
53   @NotNull
54   public String getAuthor() {
55     return StringUtil.notNullize(myAuthorField.getText());
56   }
57
58   public void registerValidators(FacetValidatorsManager manager) {
59     myValidationManager = manager;
60   }
61
62   private class MyValidator extends DocumentAdapter {
63
64     @Override
65     protected void textChanged(DocumentEvent e) {
66       if (myValidationManager != null) {
67         myValidationManager.validate();
68       }
69     }
70   }
71
72   public JTextField getAuthorField() {
73     return myAuthorField;
74   }
75
76   public JTextArea getDescriptionField() {
77     return myDescription;
78   }
79
80   public JTextField getNameField() {
81     return myName;
82   }
83 }