Initial commit
[debian/openrocket] / src / net / sf / openrocket / gui / configdialog / RocketConfig.java
diff --git a/src/net/sf/openrocket/gui/configdialog/RocketConfig.java b/src/net/sf/openrocket/gui/configdialog/RocketConfig.java
new file mode 100644 (file)
index 0000000..2e31316
--- /dev/null
@@ -0,0 +1,92 @@
+package net.sf.openrocket.gui.configdialog;
+
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+
+import javax.swing.JLabel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.rocketcomponent.Rocket;
+import net.sf.openrocket.rocketcomponent.RocketComponent;
+import net.sf.openrocket.util.GUIUtil;
+
+public class RocketConfig extends RocketComponentConfig {
+
+       private TextFieldListener textFieldListener;
+       
+       private JTextArea designerTextArea;
+       private JTextArea revisionTextArea;
+
+       private final Rocket rocket;
+       
+       public RocketConfig(RocketComponent c) {
+               super(c);
+               
+               rocket = (Rocket)c;
+               
+               this.removeAll();
+               setLayout(new MigLayout("fill"));
+
+               this.add(new JLabel("Design name:"), "top, pad 4lp, gapright 10lp");
+               this.add(componentNameField, "growx, wrap para");
+               
+               
+               
+               this.add(new JLabel("Designer:"), "top, pad 4lp, gapright 10lp");
+               
+               textFieldListener = new TextFieldListener();
+               designerTextArea = new JTextArea(rocket.getDesigner());
+               designerTextArea.setLineWrap(true);
+               designerTextArea.setWrapStyleWord(true);
+               designerTextArea.setEditable(true);
+               GUIUtil.setTabToFocusing(designerTextArea);
+               designerTextArea.addFocusListener(textFieldListener);
+               this.add(new JScrollPane(designerTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
+               
+               
+               this.add(new JLabel("Comments:"), "top, pad 4lp, gapright 10lp");
+               this.add(new JScrollPane(commentTextArea), "wmin 300lp, hmin 105lp, grow 100, wrap para");
+               
+               
+               this.add(new JLabel("Revision history:"), "top, pad 4lp, gapright 10lp");
+               revisionTextArea = new JTextArea(rocket.getRevision());
+               revisionTextArea.setLineWrap(true);
+               revisionTextArea.setWrapStyleWord(true);
+               revisionTextArea.setEditable(true);
+               GUIUtil.setTabToFocusing(revisionTextArea);
+               revisionTextArea.addFocusListener(textFieldListener);
+               
+               this.add(new JScrollPane(revisionTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
+
+               
+               addButtons();
+       }
+       
+       
+
+       private class TextFieldListener implements ActionListener, FocusListener {
+               public void actionPerformed(ActionEvent e) {
+                       setName();
+               }
+               public void focusGained(FocusEvent e) { }
+               public void focusLost(FocusEvent e) {
+                       setName();
+               }
+               private void setName() {
+                       if (!rocket.getDesigner().equals(designerTextArea.getText())) {
+                               rocket.setDesigner(designerTextArea.getText());
+                       }
+                       if (!rocket.getRevision().equals(revisionTextArea.getText())) {
+                               rocket.setRevision(revisionTextArea.getText());
+                       }
+               }
+       }
+       
+       
+       
+}