001 package nl.cwi.sen1.visplugin.text;
002
003 import java.awt.BorderLayout;
004
005 import javax.swing.JPanel;
006 import javax.swing.JScrollPane;
007 import javax.swing.JTextArea;
008
009 import nl.cwi.sen1.relationstores.types.RTuple;
010 import nl.cwi.sen1.visplugin.VisualizationPluginWindow;
011
012 public class TextVisualizationWindow extends VisualizationPluginWindow {
013 private JTextArea m_text;
014 private VisPluginTextUnparsing unparser;
015 private static final long serialVersionUID = 1;
016
017 public TextVisualizationWindow(VisPluginTextUnparsing unparser) {
018 this.unparser = unparser;
019 }
020
021 public JPanel render(RTuple fact) {
022 JPanel controlArea = new JPanel(new BorderLayout());
023
024 try {
025 m_text = new JTextArea();
026 m_text.setEditable(false);
027 m_text.setWrapStyleWord(true);
028 m_text.setLineWrap(true);
029
030 /* asynchronous call to unparser, will continue with @see setText() */
031 unparser.unparseRTuple(this, fact);
032
033 // finally add the table to a pane and add it to the JPanel
034 JScrollPane pane = new JScrollPane(m_text);
035 controlArea.add(pane, BorderLayout.CENTER);
036 } catch (Exception ex) {
037 System.err.println(ex);
038 }
039
040 return controlArea;
041 }
042
043 public void setText(String text) {
044 m_text.setText(text);
045 }
046 }