b3b141d6cb8c200e9b492905cc2f7a71c64e55da
[idea/community.git] / python / educational-core / 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     myDescription.setFont(myAuthorField.getFont());
31   }
32
33   public CCNewProjectPanel(String name, String author, String description) {
34     this();
35     myName.setText(name);
36     myAuthorField.setText(author);
37     myDescription.setText(description);
38   }
39
40   public JPanel getMainPanel() {
41     return myPanel;
42   }
43
44   @NotNull
45   public String getName() {
46     return StringUtil.notNullize(myName.getText());
47   }
48
49   @NotNull
50   public String getDescription() {
51     return StringUtil.notNullize(myDescription.getText());
52   }
53
54   @NotNull
55   public String[] getAuthors() {
56     return StringUtil.splitByLines(StringUtil.notNullize(myAuthorField.getText()));
57   }
58
59   public void registerValidators(FacetValidatorsManager manager) {
60     myValidationManager = manager;
61   }
62
63   private class MyValidator extends DocumentAdapter {
64
65     @Override
66     protected void textChanged(DocumentEvent e) {
67       if (myValidationManager != null) {
68         myValidationManager.validate();
69       }
70     }
71   }
72
73   public JTextField getAuthorField() {
74     return myAuthorField;
75   }
76
77   public JTextArea getDescriptionField() {
78     return myDescription;
79   }
80
81   public JTextField getNameField() {
82     return myName;
83   }
84 }