home *** CD-ROM | disk | FTP | other *** search
- package webeq3;
-
- import java.awt.AWTEvent;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.CheckboxMenuItem;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dialog;
- import java.awt.FileDialog;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Label;
- import java.awt.Menu;
- import java.awt.MenuBar;
- import java.awt.MenuItem;
- import java.awt.Panel;
- import java.awt.TextField;
- import java.awt.Window;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.io.DataInputStream;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.EventObject;
- import java.util.Vector;
- import webeq3.app.Handler;
- import webeq3.app.PEquation;
- import webeq3.fonts.FontBroker;
- import webeq3.parser.Parser;
- import webeq3.parser.mathml.P2CConverter;
- import webeq3.schema.Box;
- import webeq3.schema.ContentBox;
- import webeq3.schema.Normalizer;
- import webeq3.util.ErrorHandler;
- import webeq3.util.OutputHandler;
-
- public class TestDrive extends Frame implements ActionListener, ItemListener {
- Vector mathMLVector = new Vector();
- Vector descVector = new Vector();
- int idx = 0;
- Parser parser;
- P2CConverter p2cconverter;
- // $FF: renamed from: eq webeq3.app.PEquation
- PEquation field_0;
- Handler handler;
- ErrorHandler err;
- Button nextButton;
- Button prevButton;
- Button speedButton;
- TextField ansInput;
- TextField numInput;
- Label description;
- Frame rawframe = new Frame("Raw MathML Source");
- Frame presentationframe = new Frame("Presentation Source");
- Frame normalizedframe = new Frame("Normalized Presentation Source");
- Frame contentframe = new Frame("Converted Content Source");
- OutputHandler oh_raw;
- OutputHandler oh_presentation;
- OutputHandler oh_normalized;
- OutputHandler oh_content;
- static long time = 0L;
- // $FF: renamed from: rt java.lang.Runtime
- Runtime field_1;
- boolean report;
- Box rawRoot;
- Box presentationRoot;
- Box normalizedRoot;
- Box contentRoot;
- String ansfile;
-
- public TestDrive() {
- this.oh_raw = new OutputHandler(this.rawframe);
- this.oh_presentation = new OutputHandler(this.presentationframe);
- this.oh_normalized = new OutputHandler(this.normalizedframe);
- this.oh_content = new OutputHandler(this.contentframe);
- this.field_1 = Runtime.getRuntime();
- this.report = false;
- this.ansfile = "answers.txt";
- }
-
- public void actionPerformed(ActionEvent var1) {
- String var2 = var1.getActionCommand();
- if (var2.equals("Open")) {
- FileDialog var3 = new FileDialog(this, "WebEQ: Open", 0);
- var3.setDirectory("c:\\");
- ((Dialog)var3).show();
- if (var3.getDirectory() != null && var3.getFile() != null) {
- String var4 = var3.getFile();
- if (var4.endsWith(".*.*")) {
- var3.setFile(var4.substring(0, var4.length() - 4));
- }
-
- String var5 = var3.getDirectory();
- System.out.println("Loading from file: " + var5 + var4);
- this.initFromFile(var5 + var4);
- ((Component)this).repaint();
- }
- } else if (var2.equals("Raw MathML Source")) {
- this.oh_raw.show();
- } else if (var2.equals("Presentation Source")) {
- this.oh_presentation.show();
- } else if (var2.equals("Normalized Source")) {
- this.oh_normalized.show();
- } else if (var2.equals("Content Source")) {
- this.oh_content.show();
- } else if (var2.equals("Exit")) {
- System.exit(0);
- } else if (((long)((AWTEvent)var1).getID() & 8L) != 0L) {
- this.idx = Integer.parseInt(var2);
- this.setEquation(this.idx);
- ((Component)this).repaint();
- }
-
- }
-
- private void initFromFile(String var1) {
- this.descVector.removeAllElements();
- this.mathMLVector.removeAllElements();
- this.idx = 0;
-
- try {
- DataInputStream var2 = new DataInputStream(new FileInputStream(var1));
- String var3 = var2.readLine();
- boolean var4 = true;
-
- for(String var5 = ""; var3 != null; var3 = var2.readLine()) {
- if (var4) {
- if (!"".equals(var3)) {
- this.descVector.addElement(var3);
- var4 = false;
- }
- } else {
- int var6 = var3.indexOf("</math>");
- if (var6 != -1) {
- var5 = var5 + var3.substring(0, var6 + 7);
- this.mathMLVector.addElement(var5);
- var5 = var3.substring(var6 + 7);
- var4 = true;
- } else {
- var5 = var5 + var3;
- }
- }
- }
- } catch (IOException var7) {
- System.out.println("Problems reading options from file: " + var1);
- System.out.println("Going on anyway...");
- }
-
- this.setEquation(this.idx);
- }
-
- void initTests(String[] var1) {
- if (var1.length == 0) {
- this.descVector.addElement("x + y z");
- this.mathMLVector.addElement("<math>><mi>x</mi><mo>+</mo><mi>y</mi><mi>z</mi></math>");
- this.descVector.addElement("x + 2");
- this.mathMLVector.addElement("<math><mrow><mi>x</mi><mo>+</mo><mn>2</mn></mrow></math>");
- this.descVector.addElement("2 ^ 2");
- this.mathMLVector.addElement("<math><mrow><msup><mn>2</mn><mn>2</mn></msup></mrow></math>");
- this.descVector.addElement("a + b - c");
- this.mathMLVector.addElement("<apply><plus/><ci>a</ci><apply><minus/><ci>b</ci><ci>c</ci></apply></apply>");
- this.descVector.addElement("sin(a + b)");
- this.mathMLVector.addElement("<apply><sin/><apply><plus/><ci>a</ci><ci>b</ci></apply></apply>");
- this.descVector.addElement("(x + y) ^ (n - 3)");
- this.mathMLVector.addElement("<apply><power/><apply><plus/><ci> x </ci><ci> y </ci></apply><apply><minus/><cn> n </cn><cn> 3 </cn></apply></apply>");
- } else {
- this.initFromFile(var1[0]);
- }
-
- }
-
- public void itemStateChanged(ItemEvent var1) {
- CheckboxMenuItem var2 = (CheckboxMenuItem)((EventObject)var1).getSource();
- if (((MenuItem)var2).getLabel().equals("Linebreaks")) {
- this.field_0.linebreak = var2.getState();
- } else if (((MenuItem)var2).getLabel().equals("Allow Cut")) {
- this.field_0.allow_cut = var2.getState();
- }
-
- ((Component)this).repaint();
- }
-
- public static void main(String[] var0) {
- time = System.currentTimeMillis();
- TestDrive var1 = new TestDrive();
- var1.start(var0);
- }
-
- public void paint(Graphics var1) {
- long var2 = System.currentTimeMillis();
- this.field_0.redraw();
- this.field_0.repaint();
- this.presentationRoot = this.field_0.root.getCopy();
-
- try {
- this.normalizedRoot = this.field_0.root.getCopy();
- Normalizer.normalize(this.normalizedRoot);
- } catch (Exception var6) {
- System.out.println("Normalization failed: " + var6);
- }
-
- try {
- this.p2cconverter.convert(this.normalizedRoot, this.field_0.markupRoot);
- this.contentRoot = this.field_0.markupRoot.getCopy();
- } catch (Exception var5) {
- System.out.println("Conversion failed: " + var5);
- }
-
- this.oh_raw.reset();
- this.rawRoot.printDebug("", this.oh_raw);
- this.oh_presentation.reset();
- this.presentationRoot.printDebug("", this.oh_presentation);
- this.oh_normalized.reset();
- this.normalizedRoot.printDebug("", this.oh_normalized);
- this.oh_content.reset();
- this.contentRoot.print("", this.oh_content);
- if (this.report) {
- System.out.println(" redraw/repaint: " + (System.currentTimeMillis() - var2));
- this.field_1.gc();
- System.out.println(" free memory: " + this.field_1.freeMemory() + " out of " + this.field_1.totalMemory());
- }
-
- }
-
- public void setEquation(int var1) {
- this.numInput.setText("" + var1);
- String var2 = (String)this.descVector.elementAt(var1);
- short var3 = 200;
- if (var2.length() < var3) {
- for(int var4 = 0; var4 < var3 - var2.length(); ++var4) {
- var2 = var2 + " ";
- }
- }
-
- this.description.setText(var2);
- String var9 = (String)this.mathMLVector.elementAt(var1);
- this.field_0.setRoot(new Box(this.field_0), new ContentBox(this.field_0));
- this.field_0.initBG();
- long var5 = System.currentTimeMillis();
-
- try {
- this.parser.parse(var9, "", this.field_0.markupRoot, this.err);
- this.field_0.registerActions();
- } catch (Exception var8) {
- System.out.println(var8);
- ((Throwable)var8).printStackTrace();
- }
-
- if (this.report) {
- System.out.println(" parsing took: " + (System.currentTimeMillis() - var5));
- }
-
- this.rawRoot = this.field_0.markupRoot.getCopy();
- }
-
- void start(String[] var1) {
- System.out.println(" starting GUI init: " + (System.currentTimeMillis() - time));
- ((Window)this).addWindowListener(new TDWindowAdapter(this));
- ((Container)this).setLayout(new BorderLayout(5, 5));
- ((Component)this).setSize(600, 400);
- ((Component)this).setBackground(Color.white);
- MenuBar var2 = new MenuBar();
- Menu var3 = new Menu("File");
- var3.add(new MenuItem("Open"));
- var3.add(new MenuItem("-"));
- var3.add(new MenuItem("Exit"));
- ((MenuItem)var3).addActionListener(this);
- var2.add(var3);
- Menu var4 = new Menu("Parameters");
- CheckboxMenuItem var5 = new CheckboxMenuItem("Linebreaks");
- var5.addItemListener(this);
- var4.add(var5);
- var5 = new CheckboxMenuItem("Allow Cut");
- var5.addItemListener(this);
- var4.add(var5);
- var2.add(var4);
- Menu var6 = new Menu("View");
- var6.add(new MenuItem("Raw MathML Source"));
- var6.add(new MenuItem("Presentation Source"));
- var6.add(new MenuItem("Normalized Source"));
- var6.add(new MenuItem("Content Source"));
- ((MenuItem)var6).addActionListener(this);
- var2.add(var6);
- ((Frame)this).setMenuBar(var2);
- Color var7 = new Color(255, 245, 197);
- this.oh_raw.setBackground(var7);
- this.oh_raw.setColor(var7);
- this.oh_raw.setTitle("Raw MathML Source");
- this.oh_raw.setSize(400, 300);
- this.oh_presentation.setBackground(var7);
- this.oh_presentation.setColor(var7);
- this.oh_presentation.setTitle("Presentation Source");
- this.oh_presentation.setSize(400, 300);
- this.oh_normalized.setBackground(var7);
- this.oh_normalized.setColor(var7);
- this.oh_normalized.setTitle("Normalized Source");
- this.oh_normalized.setSize(400, 300);
- this.oh_content.setBackground(var7);
- this.oh_content.setColor(var7);
- this.oh_content.setTitle("Content Source");
- this.oh_content.setSize(400, 300);
- Panel var8 = new Panel();
- ((Container)var8).setLayout(new FlowLayout(0));
- ((Component)var8).setBackground(new Color(220, 220, 220));
- String var9 = "prev";
- this.prevButton = new Button(var9);
- this.prevButton.setFont(new Font("TimesRoman", 0, 14));
- this.prevButton.addMouseListener(new TDButtonAdapter(this, var9));
- ((Container)var8).add(this.prevButton);
- var9 = "next";
- this.nextButton = new Button(var9);
- this.nextButton.setFont(new Font("TimesRoman", 0, 14));
- this.nextButton.addMouseListener(new TDButtonAdapter(this, var9));
- ((Container)var8).add(this.nextButton);
- var9 = "write answers";
- this.speedButton = new Button(var9);
- this.speedButton.setFont(new Font("TimesRoman", 0, 14));
- this.speedButton.addMouseListener(new TDButtonAdapter(this, var9));
- ((Container)var8).add(this.speedButton);
- Label var10 = new Label("Test #");
- var10.setAlignment(2);
- ((Container)var8).add(var10);
- this.numInput = new TextField(3);
- this.numInput.setFont(new Font("TimesRoman", 0, 14));
- this.numInput.addActionListener(this);
- ((Container)var8).add(this.numInput);
- Label var11 = new Label("Answer File:");
- ((Container)var8).add(var11);
- this.ansInput = new TextField(20);
- this.ansInput.setFont(new Font("TimesRoman", 0, 14));
- ((Container)var8).add(this.ansInput);
- this.description = new Label();
- this.description.setAlignment(0);
- ((Container)var8).add(this.description);
- ((Container)this).add(var8, "North");
- System.out.println(" starting WebEQ init: " + (System.currentTimeMillis() - time));
- this.handler = new Handler();
- this.handler.setParameters(this, var1);
- this.err = new ErrorHandler();
- this.field_0 = new PEquation(this.handler);
- this.field_0.linebreak = false;
- this.field_0.setControls(true);
- this.field_0.setPadding(5);
- this.field_0.allow_cut = false;
- this.field_0.registerControls();
- this.field_0.setPointSize(36);
- this.field_0.fixSize(400, 200);
- FontBroker.initialize(true);
- ((Container)this).add(this.field_0, "Center");
-
- try {
- this.parser = (Parser)Class.forName("webeq3.parser.mathml.mathml").newInstance();
- this.parser.init(this.handler);
- } catch (InstantiationException var15) {
- System.out.println(var15);
- } catch (IllegalAccessException var16) {
- System.out.println(var16);
- } catch (ClassNotFoundException var17) {
- System.out.println(var17);
- }
-
- this.p2cconverter = new P2CConverter();
- this.initTests(var1);
- System.out.println(" finished reading test file: " + (System.currentTimeMillis() - time));
- this.setEquation(this.idx);
- ((Window)this).show();
- System.out.println(" finished all initialization: " + (System.currentTimeMillis() - time));
- ((Component)this).repaint();
- System.out.println("total elapsed time: " + (System.currentTimeMillis() - time));
- }
- }
-