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 }