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    }