added svn:ignores
[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.rocketcomponent.Rocket;
15 import net.sf.openrocket.rocketcomponent.RocketComponent;
16 import net.sf.openrocket.util.GUIUtil;
17
18 public class RocketConfig extends RocketComponentConfig {
19         
20         private TextFieldListener textFieldListener;
21         
22         private JTextArea designerTextArea;
23         private JTextArea revisionTextArea;
24         
25         private final Rocket rocket;
26         
27         public RocketConfig(RocketComponent c) {
28                 super(c);
29                 
30                 rocket = (Rocket) c;
31                 
32                 this.removeAll();
33                 setLayout(new MigLayout("fill"));
34                 
35                 this.add(new JLabel("Design name:"), "top, pad 4lp, gapright 10lp");
36                 this.add(componentNameField, "growx, wrap para");
37                 
38
39                 this.add(new JLabel("Designer:"), "top, pad 4lp, gapright 10lp");
40                 
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");
49                 
50
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");
53                 
54
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);
62                 
63                 this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
64                 
65
66                 addButtons();
67         }
68         
69         
70
71         private class TextFieldListener implements ActionListener, FocusListener {
72                 public void actionPerformed(ActionEvent e) {
73                         setName();
74                 }
75                 
76                 public void focusGained(FocusEvent e) {
77                 }
78                 
79                 public void focusLost(FocusEvent e) {
80                         setName();
81                 }
82                 
83                 private void setName() {
84                         if (!rocket.getDesigner().equals(designerTextArea.getText())) {
85                                 rocket.setDesigner(designerTextArea.getText());
86                         }
87                         if (!rocket.getRevision().equals(revisionTextArea.getText())) {
88                                 rocket.setRevision(revisionTextArea.getText());
89                         }
90                 }
91         }
92         
93
94
95 }