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 }