001 package nl.cwi.sen1.visplugin.barchart;
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 * BarChart Demo/Example class
012 * Original code : PieChart plugin ( A. Belgraver, R. van Remortel )
013 * @author Srinivasan Tharmarajah
014
015 */
016
017 public class BarChartExample {
018
019 /**
020 * @param args
021 */
022 public static void main(String[] args) {
023 // create visualization
024 RTuple fact = buildRTuple();
025
026 Factory m_factory = VisualizationFactorySingleton.getFactoryInstance();
027
028 BCVisualizationController controller = new BCVisualizationController();
029 BCVisualizationWindow visualization = (BCVisualizationWindow) controller.createWindow();
030
031 visualization.setFactory(m_factory);
032
033 JPanel barPanel = visualization.render(fact);
034 showBarChart("Bar Chart Visualization", barPanel);
035 }
036
037 private static RTuple buildRTuple() {
038 RTuple rTuple = createRTuple();
039 System.out.println(rTuple.toString());
040
041 return rTuple;
042 }
043
044 private static RTuple createRTuple() {
045 Factory factory = VisualizationFactorySingleton.getFactoryInstance();
046 RTuple rTuple = factory.RTupleFromString("rtuple(\"StatementHistogram\",relation([str,int]),set([tuple([str(\"Assignment\"),int(nat-con(7))]), tuple([str(\"Assignment2\"),int(nat-con(6))]), tuple([str(\"Assignment3\"),int(nat-con(5))]), tuple([str(\"Assignment4\"),int(nat-con(2))])]))");
047
048 return rTuple;
049
050 }
051
052 /**
053 * Show a panel on screen.
054 *
055 * @param panel
056 */
057 private static void showBarChart(String windowTitle, JPanel panel) {
058 // create and set up the window.
059 JFrame frame = new JFrame(windowTitle);
060 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
061
062 // show chart
063 frame.setContentPane(panel);
064 frame.pack();
065 frame.setVisible(true);
066 }
067 }