package edu.harvard.wcfia.yoshikoder.ui; import javax.swing.JCheckBox; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import edu.harvard.wcfia.yoshikoder.YKProject; import edu.harvard.wcfia.yoshikoder.Yoshikoder; import edu.harvard.wcfia.yoshikoder.util.Messages; /** * @author will */ public class NewProjectPanel extends CommitablePanel { private JTextField nameField; private JTextArea descArea; private JCheckBox useDocs; private Yoshikoder yoshikoder; public NewProjectPanel(Yoshikoder yk) { super(); yoshikoder = yk; nameField = new JTextField(15); nameField.setFont(yoshikoder.getDisplayFont()); nameField.addKeyListener(keyListener); // TODO check not doc descArea = new JTextArea(3, 15); descArea.setFont(yoshikoder.getDisplayFont()); descArea.addKeyListener(keyListener); // TODO check not doc useDocs = new JCheckBox(); useDocs.setSelected(false); addWidgetInline(Messages.getString("nameLabel"), nameField); addWidgetFixedDepth(Messages.getString("descriptionLabel"), new JScrollPane(descArea)); addWidgetInlineFixedWidth(Messages.getString("NewProjectPanel.copyDocs"), useDocs); } public void commit() throws CommitException { if ((nameField.getText() == null) || (nameField.getText().length() == 0)) { Exception e = new Exception(Messages.getString("noEntryName")); throw new CommitException(e); } String title = nameField.getText(); String desc = descArea.getText(); YKProject newp = null; if (useDocs.isSelected()) newp = new YKProject(title, desc, yoshikoder.getProject().getDocumentList()); else newp = new YKProject(title, desc); yoshikoder.getTokenizationCache().clear(); yoshikoder.setProject(newp); yoshikoder.setUnsavedChanges(true); } }