View Javadoc

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);	// hide the Frame
36              		src.dispose();			// free the system resources
37              		System.exit(0);		// close the application
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  }