001    package nl.cwi.sen1.visplugin.linechart;
002    
003    import javax.swing.JFrame;
004    import javax.swing.JPanel;
005    
006    import nl.cwi.sen1.relationstores.Factory;
007    import nl.cwi.sen1.relationstores.types.RTuple;
008    import nl.cwi.sen1.visplugin.VisualizationFactorySingleton;
009    
010    /**
011     * lineChart Demo/Example class
012     * @author Raymond Bergen
013     */
014    
015    public class LineChartExample {
016    
017            /**
018             * @param args
019             */
020            public static void main(String[] args) {
021                    // create visualization
022                    RTuple fact = buildRTuple();
023                    
024                    Factory m_factory = VisualizationFactorySingleton.getFactoryInstance();
025    
026            LCVisualizationController controller = new LCVisualizationController();
027            LCVisualizationWindow visualization = (LCVisualizationWindow) controller.createWindow();
028    
029                    visualization.setFactory(m_factory);
030    
031                    JPanel barPanel = visualization.render(fact);
032                    showLineChart("Line Chart Visualization", barPanel);
033            }
034    
035            private static RTuple buildRTuple() {
036                    RTuple rTuple = createRTuple();
037                    System.out.println(rTuple.toString());
038    
039            return rTuple;
040            }
041    
042            private static RTuple createRTuple() {
043            Factory factory = VisualizationFactorySingleton.getFactoryInstance();
044            
045            RTuple rTuple = factory.RTupleFromString("rtuple(\"StatementHistogram\",relation([int,int]),set([tuple([int(nat-con(7)),int(nat-con(7))]), tuple([int(nat-con(2)),int(nat-con(2))])]))");
046           
047                    return rTuple;
048                    
049            }
050            
051            /**
052             * Show a panel on screen.
053             * 
054             * @param panel
055             */
056            private static void showLineChart(String windowTitle, JPanel panel) {
057                    // create and set up the window.
058                    JFrame frame = new JFrame(windowTitle);
059                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
060    
061                    // show chart
062                    frame.setContentPane(panel);
063                    frame.pack();
064                    frame.setVisible(true);
065            }
066    }