1 package net.sf.openrocket.gui.configdialog;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.awt.event.FocusEvent;
7 import java.awt.event.FocusListener;
9 import javax.swing.JLabel;
10 import javax.swing.JScrollPane;
11 import javax.swing.JTextArea;
13 import net.miginfocom.swing.MigLayout;
14 import net.sf.openrocket.rocketcomponent.Rocket;
15 import net.sf.openrocket.rocketcomponent.RocketComponent;
16 import net.sf.openrocket.util.GUIUtil;
18 public class RocketConfig extends RocketComponentConfig {
20 private TextFieldListener textFieldListener;
22 private JTextArea designerTextArea;
23 private JTextArea revisionTextArea;
25 private final Rocket rocket;
27 public RocketConfig(RocketComponent c) {
33 setLayout(new MigLayout("fill"));
35 this.add(new JLabel("Design name:"), "top, pad 4lp, gapright 10lp");
36 this.add(componentNameField, "growx, wrap para");
40 this.add(new JLabel("Designer:"), "top, pad 4lp, gapright 10lp");
42 textFieldListener = new TextFieldListener();
43 designerTextArea = new JTextArea(rocket.getDesigner());
44 designerTextArea.setLineWrap(true);
45 designerTextArea.setWrapStyleWord(true);
46 designerTextArea.setEditable(true);
47 GUIUtil.setTabToFocusing(designerTextArea);
48 designerTextArea.addFocusListener(textFieldListener);
49 this.add(new JScrollPane(designerTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
52 this.add(new JLabel("Comments:"), "top, pad 4lp, gapright 10lp");
53 this.add(new JScrollPane(commentTextArea), "wmin 300lp, hmin 105lp, grow 100, wrap para");
56 this.add(new JLabel("Revision history:"), "top, pad 4lp, gapright 10lp");
57 revisionTextArea = new JTextArea(rocket.getRevision());
58 revisionTextArea.setLineWrap(true);
59 revisionTextArea.setWrapStyleWord(true);
60 revisionTextArea.setEditable(true);
61 GUIUtil.setTabToFocusing(revisionTextArea);
62 revisionTextArea.addFocusListener(textFieldListener);
64 this.add(new JScrollPane(revisionTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
72 private class TextFieldListener implements ActionListener, FocusListener {
73 public void actionPerformed(ActionEvent e) {
76 public void focusGained(FocusEvent e) { }
77 public void focusLost(FocusEvent e) {
80 private void setName() {
81 if (!rocket.getDesigner().equals(designerTextArea.getText())) {
82 rocket.setDesigner(designerTextArea.getText());
84 if (!rocket.getRevision().equals(revisionTextArea.getText())) {
85 rocket.setRevision(revisionTextArea.getText());