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");
39 this.add(new JLabel("Designer:"), "top, pad 4lp, gapright 10lp");
41 textFieldListener = new TextFieldListener();
42 designerTextArea = new JTextArea(rocket.getDesigner());
43 designerTextArea.setLineWrap(true);
44 designerTextArea.setWrapStyleWord(true);
45 designerTextArea.setEditable(true);
46 GUIUtil.setTabToFocusing(designerTextArea);
47 designerTextArea.addFocusListener(textFieldListener);
48 this.add(new JScrollPane(designerTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
51 this.add(new JLabel("Comments:"), "top, pad 4lp, gapright 10lp");
52 this.add(new JScrollPane(commentTextArea), "wmin 400lp, height 155lp:155lp:, grow 100, wrap para");
55 this.add(new JLabel("Revision history:"), "top, pad 4lp, gapright 10lp");
56 revisionTextArea = new JTextArea(rocket.getRevision());
57 revisionTextArea.setLineWrap(true);
58 revisionTextArea.setWrapStyleWord(true);
59 revisionTextArea.setEditable(true);
60 GUIUtil.setTabToFocusing(revisionTextArea);
61 revisionTextArea.addFocusListener(textFieldListener);
63 this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
71 private class TextFieldListener implements ActionListener, FocusListener {
72 public void actionPerformed(ActionEvent e) {
76 public void focusGained(FocusEvent e) {
79 public void focusLost(FocusEvent e) {
83 private void setName() {
84 if (!rocket.getDesigner().equals(designerTextArea.getText())) {
85 rocket.setDesigner(designerTextArea.getText());
87 if (!rocket.getRevision().equals(revisionTextArea.getText())) {
88 rocket.setRevision(revisionTextArea.getText());