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 }