View Javadoc

1   package fr.ove.openmath.mathematica;
2   
3   import javax.swing.*;
4   import java.awt.*;
5   import java.awt.event.*;
6   
7   /***
8   * A frame to visualize the different OpenMath objects.
9   */
10  public class OpenMathViewer extends JFrame {
11      /***
12      * The OpenMath display of the request.
13      */
14      private JTextArea omRequest;
15      
16      /***
17      * The OpenMath display of the result.
18      */
19      private JTextArea omResult;
20      
21      /***
22      * The WorkBook to operate with.
23      */
24      private WorkBook workBook;
25      
26      /***
27      * The Constructor.
28      */
29      public OpenMathViewer(WorkBook wBook) {
30          super("OpenMath Viewer");
31          workBook = wBook;
32          
33          addWindowListener(
34              new WindowAdapter() {
35                  public void windowClosing(WindowEvent we) {
36                      setVisible(false);
37                  }
38              }
39          );
40          
41          Container contentPane = getContentPane();
42          contentPane.setLayout(new BorderLayout());
43          
44          final JTabbedPane tabbedPane = new JTabbedPane();
45          contentPane.add(tabbedPane, BorderLayout.CENTER);
46          
47          omRequest = new JTextArea(20, 30);
48          JScrollPane scrollPane = new JScrollPane(omRequest);
49          tabbedPane.addTab("Request", scrollPane);
50          
51          omResult = new JTextArea(20, 30);
52          omResult.setEditable(false);
53          scrollPane = new JScrollPane(omResult);
54          tabbedPane.addTab("Result", scrollPane);
55          
56          Box command = new Box(BoxLayout.X_AXIS);
57          
58          Insets insets = new Insets(2, 2, 2, 2);
59          JButton button = new JButton("Get Selection");
60          button.setMargin(insets);
61          button.setToolTipText("Get the OpenMath object of the selection");
62          button.addActionListener(
63              new ActionListener() {
64                  public void actionPerformed(ActionEvent ae) {
65                      JInternalFrame jif = workBook.getActiveInternalFrame();
66                      OMWorkSheet omSheet = (OMWorkSheet) jif.getContentPane();
67                      PanelJomes panelJomes = omSheet.getCurrentElement();
68                      
69                      if (tabbedPane.getSelectedIndex() == 0)
70                          omRequest.setText(panelJomes.getJomeRequest().getOpenMathSelection());
71                      else
72                          omResult.setText(panelJomes.getJomeResult().getOpenMathSelection());
73                  }
74              }
75          );
76          command.add(button);
77          
78          command.add(Box.createHorizontalGlue());
79          
80          button = new JButton("Set");
81          button.setMargin(insets);
82          button.setToolTipText("Sets the current OpenMath object");
83          button.addActionListener(
84              new ActionListener() {
85                  public void actionPerformed(ActionEvent ae) {
86                      JInternalFrame jif = workBook.getActiveInternalFrame();
87                      OMWorkSheet omSheet = (OMWorkSheet) jif.getContentPane();
88                      PanelJomes panelJomes = omSheet.getCurrentElement();
89                      panelJomes.setOpenMathRequest(omRequest.getText());
90                  }
91              }
92          );
93          command.add(button);
94          
95          contentPane.add(command, BorderLayout.SOUTH);
96  
97          pack();
98      }
99      
100     /***
101     * Sets the OpenMath object of the request.
102     * @param omObj the OpenMath object.
103     */
104     public void setOpenMathRequest(String omObj) {
105         omRequest.setText(omObj);
106     }
107     
108     /***
109     * Sets the OpenMath object of the result.
110     * @param omObj the OpenMath object.
111     */
112     public void setOpenMathResult(String omObj) {
113         omResult.setText(omObj);
114     }
115     
116     /***
117     * Clears the viewer.
118     */
119     public void clear() {
120         omRequest.setText("");
121         omResult.setText("");
122     }
123 }