/* */ import java.awt.Dimension;
/* */ import java.awt.FlowLayout;
/* */ import java.awt.Frame;
/* */ import java.awt.GridBagLayout;
/* */ import java.awt.GridLayout;
/* */ import java.awt.event.ActionEvent;
/* */ import java.awt.event.ActionListener;
/* */ import java.util.ArrayList;
/* */ import javax.swing.BoxLayout;
/* */ import javax.swing.JButton;
/* */ import javax.swing.JDialog;
/* */ import javax.swing.JLabel;
/* */ import javax.swing.JPanel;
/* */ import javax.swing.JScrollPane;
/* */ import javax.swing.JTextField;
/* */ import javax.swing.JViewport;
/* */
/* */ public class EquationDialog extends JDialog
/* */ implements GraphTypeStateChangedListener, ActionListener
/* */ {
/* */ private JScrollPane scroll;
/* */ private JTextField[] equations;
/* */ private JLabel[] equationNames;
/* */ private JPanel[] packages;
/* */ private JPanel holder;
/* */ private JPanel fullPanel;
/* */ private JButton ok;
/* */ private JButton cancel;
/* */ private JPanel okButtons;
/* */ private Graph2D graph;
/* */
/* */ public EquationDialog(Frame parent, Graph2D graph)
/* */ {
/* 25 */ super(parent, true);
/* 26 */ this.graph = graph;
/* 27 */ setLayout(new GridBagLayout());
/* 28 */ this.ok = new JButton("Apply");
/* 29 */ this.cancel = new JButton("Cancel");
/* 30 */ this.okButtons = new JPanel(new FlowLayout());
/* 31 */ this.okButtons.add(this.ok);
/* 32 */ this.okButtons.add(this.cancel);
/* 33 */ this.ok.addActionListener(this);
/* 34 */ this.cancel.addActionListener(this);
/* 35 */ this.holder = new JPanel();
/* */
/* 37 */ this.equations = new JTextField[10];
/* 38 */ this.equationNames = new JLabel[10];
/* 39 */ this.scroll = new JScrollPane();
/* 40 */ this.holder.setLayout(new GridLayout(this.equations.length, 1));
/* 41 */ this.scroll.setPreferredSize(new Dimension(200, 200));
/* 42 */ this.packages = new JPanel[10];
/* 43 */ for (int i = 0; i < this.equations.length; i++) {
/* 44 */ this.equations[i] = new JTextField("", 10);
/* 45 */ this.equations[i].setFocusable(true);
/* 46 */ this.equationNames[i] = new JLabel("y" + i + "(x)=");
/* 47 */ this.packages[i] = new JPanel(new FlowLayout());
/* 48 */ this.packages[i].add(this.equationNames[i]);
/* 49 */ this.packages[i].add(this.equations[i]);
/* 50 */ this.packages[i].setPreferredSize(new Dimension(150, 65));
/* 51 */ this.holder.add(this.packages[i]);
/* */ }
/* 53 */ this.scroll.getViewport().add(this.holder);
/* 54 */ this.fullPanel = new JPanel();
/* 55 */ this.fullPanel.setLayout(new BoxLayout(this.fullPanel, 1));
/* 56 */ this.fullPanel.add(this.scroll);
/* 57 */ this.fullPanel.add(this.okButtons);
/* 58 */ add(this.fullPanel);
/* */
/* 60 */ pack();
/* */ }
/* */
/* */ public void setEquations(String[] args) {
/* 64 */ for (int i = 0; (i < args.length) && (i < this.equations.length); i++)
/* 65 */ this.equations[i].setText(args[i].replaceAll("", GraphTypeHolder.getInstance().getGraphPointMaker().getIndependentVariable()));
/* */ }
/* */
/* */ public void setVisible(boolean visible) {
/* 69 */ if (visible) {
/* 70 */ setEquations(this.graph.getEquations());
/* */ }
/* 72 */ super.setVisible(visible);
/* */ }
/* */ public void applyEquations() {
/* 75 */ this.graph.setEquations(getEquations());
/* 76 */ ModulusThreads.addThread("Remaking Points", this.graph.getThread());
/* */ }
/* */ public String[] getEquations() {
/* 79 */ ArrayList strs = new ArrayList();
/* 80 */ for (JTextField jtf : this.equations) {
/* 81 */ if (jtf.getText().length() != 0)
/* 82 */ strs.add(parseEquation(jtf.getText()));
/* */ }
/* 84 */ String[] ret = new String[strs.size()];
/* 85 */ for (int i = 0; i < strs.size(); i++) ret[i] = ((String)strs.get(i));
/* 86 */ return ret;
/* */ }
/* */ public static String parseEquation(String equation) {
/* 89 */ if (equation.equals("")) return "";
/* 90 */ if (equation.length() == 1) return equation.charAt(0) == GraphTypeHolder.getInstance().getGraphPointMaker().getIndependentVariable() ? "" : equation;
/* 91 */ Point2DMaker maker = GraphTypeHolder.getInstance().getGraphPointMaker();
/* 92 */ String ret = "";
/* 93 */ for (int i = 0; i < equation.length(); i++) {
/* 94 */ char next = equation.charAt(i);
/* 95 */ if (next == maker.getIndependentVariable()) {
/* 96 */ if (i == 0) {
/* 97 */ if (!Character.isLowerCase(equation.charAt(i + 1))) {
/* 98 */ ret = ret + "";
/* 99 */ continue;
/* */ }
/* */ }
/* 102 */ else if (i == equation.length() - 1) {
/* 103 */ if (!Character.isLowerCase(equation.charAt(i - 1))) {
/* 104 */ ret = ret + "";
/* 105 */ continue;
/* */ }
/* */ }
/* 108 */ else if ((!Character.isLowerCase(equation.charAt(i - 1))) && (!Character.isLowerCase(equation.charAt(i + 1)))) {
/* 109 */ ret = ret + "";
/* 110 */ continue;
/* */ }
/* */ }
/* 113 */ ret = ret + equation.charAt(i);
/* */ }
/* 115 */ return ret;
/* */ }
/* */ public void graphTypeChanged(Point2DMaker maker) {
/* 118 */ for (int i = 0; i < this.equationNames.length; i++)
/* 119 */ this.equationNames[i].setText("" + maker.getDependentVariable() + "" + i + "(" + GraphTypeHolder.getInstance().getGraphPointMaker().getIndependentVariable() + ") =");
/* */ }
/* */
/* */ public void actionPerformed(ActionEvent e)
/* */ {
/* 124 */ setVisible(false);
/* 125 */ if (e.getSource() == this.ok)
/* 126 */ applyEquations();
/* */ }
/* */ }
/* Location: Modulus.jar
* Qualified Name: EquationDialog
* JD-Core Version: 0.6.2
*/