/* Copyright 2006 by Daniel Kuebrich Licensed under the Academic Free License version 3.0 See the file "LICENSE" for more information */ // Class DrawUI package sim.app.lsystem; import java.awt.*; import java.awt.event.*; import javax.swing.*; import sim.util.gui.*; // This file contains the "Draw" pane of the Console public class DrawUI extends JPanel { private static final long serialVersionUID = 7502392279728858809L; // components JButton buttonSet = new JButton("Set"); JTextField distField = new JTextField("2", 2); JTextField angleField = new JTextField("90", 4); /* // unnecessary -- now in the Display2D Options JTextField xField = new JTextField("50", 4); JTextField yField = new JTextField("50", 4); */ // references to sim with ui, sim state LSystemWithUI lsui; LSystem ls; public DrawUI(LSystemWithUI nLsui) { lsui = nLsui; ls = (LSystem)lsui.state; try { init(); } catch (Exception e) { e.printStackTrace(); } } public void init() { // buttonSet sets the current drawing settings buttonSet.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // set draw parameters ls.l.segsize = Double.valueOf(distField.getText()).doubleValue(); ls.l.angle = Double.valueOf(angleField.getText()).doubleValue()*Math.PI/180; //ls.l.x = Double.valueOf(xField.getText()).doubleValue(); //ls.l.y = Double.valueOf(yField.getText()).doubleValue(); // reset current stats ls.l.theta = -Math.PI/2; } }); ///// OK // now build the actual UI this.setLayout(new BorderLayout()); // sim.display.LabelledList is a convenient way to draw lists of the format // text component // text component LabelledList list = new LabelledList() { private static final long serialVersionUID = -1043920050611225098L; Insets insets = new Insets(5, 5, 5, 5); public Insets getInsets() { return insets; } }; // so, the draw info: list.addLabelled("Distance: ", distField); list.addLabelled("Angle: ", angleField); // list.addLabelled("Start at:", new JLabel()); // list.addLabelled("x: ", xField); // list.addLabelled("y: ", yField); Box b = new Box(BoxLayout.X_AXIS) { private static final long serialVersionUID = 1868200221063009327L; Insets insets = new Insets(5, 5, 5, 5); public Insets getInsets() { return insets; } }; b.add(buttonSet); b.add(Box.createGlue()); list.addLabelled("",b); // add stuff to this this.add(list, BorderLayout.CENTER); setVisible(true); } }