create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / gui / configdialog / RocketConfig.java
1 package net.sf.openrocket.gui.configdialog;
2
3
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.awt.event.FocusEvent;
7 import java.awt.event.FocusListener;
8
9 import javax.swing.JLabel;
10 import javax.swing.JScrollPane;
11 import javax.swing.JTextArea;
12
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;
20
21 public class RocketConfig extends RocketComponentConfig {
22         private static final Translator trans = Application.getTranslator();
23         
24         private TextFieldListener textFieldListener;
25         
26         private JTextArea designerTextArea;
27         private JTextArea revisionTextArea;
28         
29         private final Rocket rocket;
30         
31         public RocketConfig(OpenRocketDocument d, RocketComponent c) {
32                 super(d, c);
33                 
34                 rocket = (Rocket) c;
35                 
36                 this.removeAll();
37                 setLayout(new MigLayout("fill"));
38                 
39                 //// Design name:
40                 this.add(new JLabel(trans.get("RocketCfg.lbl.Designname")), "top, pad 4lp, gapright 10lp");
41                 this.add(componentNameField, "growx, wrap para");
42                 
43                 //// Designer:
44                 this.add(new JLabel(trans.get("RocketCfg.lbl.Designer")), "top, pad 4lp, gapright 10lp");
45                 
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");
54                 
55                 //// Comments:
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");
58                 
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);
67                 
68                 this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
69                 
70
71                 addButtons();
72         }
73         
74         
75
76         private class TextFieldListener implements ActionListener, FocusListener {
77                 @Override
78                 public void actionPerformed(ActionEvent e) {
79                         setName();
80                 }
81                 
82                 @Override
83                 public void focusGained(FocusEvent e) {
84                 }
85                 
86                 @Override
87                 public void focusLost(FocusEvent e) {
88                         setName();
89                 }
90                 
91                 private void setName() {
92                         if (!rocket.getDesigner().equals(designerTextArea.getText())) {
93                                 rocket.setDesigner(designerTextArea.getText());
94                         }
95                         if (!rocket.getRevision().equals(revisionTextArea.getText())) {
96                                 rocket.setRevision(revisionTextArea.getText());
97                         }
98                 }
99         }
100         
101
102
103 }