1 package fr.ove.openmath.jome.ctrl.mml;
2
3 import java.awt.*;
4 import java.awt.event.*;
5 import java.io.*;
6
7 import fr.ove.openmath.jome.ctrl.linear.events.*;
8 import fr.ove.openmath.jome.ctrl.mml.*;
9
10 public class TestMMLParser extends Frame {
11 MathMLParser parser = new MathMLParser();
12
13 TextArea mml = new TextArea() {
14 public Dimension getPreferredSize() {
15 Dimension dim = super.getPreferredSize();
16 dim.width /= 1.5;
17
18 return dim;
19 }
20 };
21
22 EventViewer events = new EventViewer();
23 Button parse = new Button("Parse");
24
25
26 public TestMMLParser() {
27 parser.addLinearParserListener(events);
28 setBounds(50, 50, 640, 480);
29 setLayout(new BorderLayout());
30
31 addWindowListener(
32 new WindowAdapter() {
33 public void windowClosing(WindowEvent evt) {
34 Frame src = (Frame) evt.getSource();
35 src.setVisible(false);
36 src.dispose();
37 System.exit(0);
38 }
39 }
40 );
41
42 add(mml, "West");
43 add(events, "Center");
44 add(parse, "South");
45
46 parse.addActionListener(
47 new ActionListener() {
48 public void actionPerformed(ActionEvent ae) {
49 events.setText("");
50 String mmlObject = mml.getText();
51 ByteArrayInputStream in = new ByteArrayInputStream(mmlObject.getBytes());
52 try {
53 parser.parse(in);
54 }
55 catch(IOException ioe) {
56 ioe.printStackTrace();
57 }
58 }
59 }
60 );
61 }
62
63 public static void main(String args[]) {
64 (new TestMMLParser()).setVisible(true);
65 }
66 }
67
68
69 class EventViewer extends TextArea implements LinearParserListener {
70 /***
71 * Treats the event received.
72 * @param linearParserEvent the event received.
73 */
74 public void consumeLinearParserEvent(LinearParserEvent linearParserEvent) {
75 append(linearParserEvent.toString() + "\n");
76 }
77
78 }