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.l10n.Translator;
15 import net.sf.openrocket.rocketcomponent.Rocket;
16 import net.sf.openrocket.rocketcomponent.RocketComponent;
17 import net.sf.openrocket.startup.Application;
18 import net.sf.openrocket.util.GUIUtil;
20 public class RocketConfig extends RocketComponentConfig {
21 private static final Translator trans = Application.getTranslator();
23 private TextFieldListener textFieldListener;
25 private JTextArea designerTextArea;
26 private JTextArea revisionTextArea;
28 private final Rocket rocket;
30 public RocketConfig(RocketComponent c) {
36 setLayout(new MigLayout("fill"));
39 this.add(new JLabel(trans.get("RocketCfg.lbl.Designname")), "top, pad 4lp, gapright 10lp");
40 this.add(componentNameField, "growx, wrap para");
43 this.add(new JLabel(trans.get("RocketCfg.lbl.Designer")), "top, pad 4lp, gapright 10lp");
45 textFieldListener = new TextFieldListener();
46 designerTextArea = new JTextArea(rocket.getDesigner());
47 designerTextArea.setLineWrap(true);
48 designerTextArea.setWrapStyleWord(true);
49 designerTextArea.setEditable(true);
50 GUIUtil.setTabToFocusing(designerTextArea);
51 designerTextArea.addFocusListener(textFieldListener);
52 this.add(new JScrollPane(designerTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
55 this.add(new JLabel(trans.get("RocketCfg.lbl.Comments")), "top, pad 4lp, gapright 10lp");
56 this.add(new JScrollPane(commentTextArea), "wmin 400lp, height 155lp:155lp:, grow 100, wrap para");
58 //// Revision history:
59 this.add(new JLabel(trans.get("RocketCfg.lbl.Revisionhistory")), "top, pad 4lp, gapright 10lp");
60 revisionTextArea = new JTextArea(rocket.getRevision());
61 revisionTextArea.setLineWrap(true);
62 revisionTextArea.setWrapStyleWord(true);
63 revisionTextArea.setEditable(true);
64 GUIUtil.setTabToFocusing(revisionTextArea);
65 revisionTextArea.addFocusListener(textFieldListener);
67 this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
75 private class TextFieldListener implements ActionListener, FocusListener {
77 public void actionPerformed(ActionEvent e) {
82 public void focusGained(FocusEvent e) {
86 public void focusLost(FocusEvent e) {
90 private void setName() {
91 if (!rocket.getDesigner().equals(designerTextArea.getText())) {
92 rocket.setDesigner(designerTextArea.getText());
94 if (!rocket.getRevision().equals(revisionTextArea.getText())) {
95 rocket.setRevision(revisionTextArea.getText());