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 }