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.document.OpenRocketDocument;
15 import net.sf.openrocket.gui.util.GUIUtil;
16 import net.sf.openrocket.l10n.Translator;
17 import net.sf.openrocket.rocketcomponent.Rocket;
18 import net.sf.openrocket.rocketcomponent.RocketComponent;
19 import net.sf.openrocket.startup.Application;
21 public class RocketConfig extends RocketComponentConfig {
22 private static final Translator trans = Application.getTranslator();
24 private TextFieldListener textFieldListener;
26 private JTextArea designerTextArea;
27 private JTextArea revisionTextArea;
29 private final Rocket rocket;
31 public RocketConfig(OpenRocketDocument d, RocketComponent c) {
37 setLayout(new MigLayout("fill"));
40 this.add(new JLabel(trans.get("RocketCfg.lbl.Designname")), "top, pad 4lp, gapright 10lp");
41 this.add(componentNameField, "growx, wrap para");
44 this.add(new JLabel(trans.get("RocketCfg.lbl.Designer")), "top, pad 4lp, gapright 10lp");
46 textFieldListener = new TextFieldListener();
47 designerTextArea = new JTextArea(rocket.getDesigner());
48 designerTextArea.setLineWrap(true);
49 designerTextArea.setWrapStyleWord(true);
50 designerTextArea.setEditable(true);
51 GUIUtil.setTabToFocusing(designerTextArea);
52 designerTextArea.addFocusListener(textFieldListener);
53 this.add(new JScrollPane(designerTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
56 this.add(new JLabel(trans.get("RocketCfg.lbl.Comments")), "top, pad 4lp, gapright 10lp");
57 this.add(new JScrollPane(commentTextArea), "wmin 400lp, height 155lp:155lp:, grow 100, wrap para");
59 //// Revision history:
60 this.add(new JLabel(trans.get("RocketCfg.lbl.Revisionhistory")), "top, pad 4lp, gapright 10lp");
61 revisionTextArea = new JTextArea(rocket.getRevision());
62 revisionTextArea.setLineWrap(true);
63 revisionTextArea.setWrapStyleWord(true);
64 revisionTextArea.setEditable(true);
65 GUIUtil.setTabToFocusing(revisionTextArea);
66 revisionTextArea.addFocusListener(textFieldListener);
68 this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
76 private class TextFieldListener implements ActionListener, FocusListener {
78 public void actionPerformed(ActionEvent e) {
83 public void focusGained(FocusEvent e) {
87 public void focusLost(FocusEvent e) {
91 private void setName() {
92 if (!rocket.getDesigner().equals(designerTextArea.getText())) {
93 rocket.setDesigner(designerTextArea.getText());
95 if (!rocket.getRevision().equals(revisionTextArea.getText())) {
96 rocket.setRevision(revisionTextArea.getText());