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