source: other-projects/trunk/greenstone3-extension/mat/src/java/org/greenstone/gsdl3_extension/mat/DrawXYChart.java@ 17365

Last change on this file since 17365 was 17365, checked in by cc108, 16 years ago

Updating Mat Source Code

File size: 3.9 KB
Line 
1package org.greenstone.gsdl3_extension.mat;
2import java.awt.Dimension;
3import java.util.HashMap;
4import java.util.Iterator;
5import java.util.Set;
6
7import javax.swing.JPanel;
8
9import org.jfree.chart.ChartFactory;
10import org.jfree.chart.ChartPanel;
11import org.jfree.chart.JFreeChart;
12import org.jfree.chart.axis.CategoryAxis;
13import org.jfree.chart.axis.CategoryLabelPositions;
14import org.jfree.chart.plot.CategoryPlot;
15import org.jfree.chart.plot.PlotOrientation;
16import org.jfree.chart.renderer.category.BarRenderer;
17import org.jfree.chart.renderer.category.CategoryItemRenderer;
18import org.jfree.data.category.CategoryDataset;
19import org.jfree.data.category.DefaultCategoryDataset;
20import org.jfree.ui.ApplicationFrame;
21import org.jfree.ui.RefineryUtilities;
22
23public class DrawXYChart extends ApplicationFrame
24{
25 //private static String Title = null;
26 private static String Item = null;
27 private static HashMap map = new HashMap();
28
29 public DrawXYChart(String str1, String str2, HashMap hp, int operation) {
30 super("Frequency V.S "+str2);
31 //Title = str1;
32 Item = str2;
33 map = hp;
34
35 JPanel jpanel = createDemoPanel(operation);
36 jpanel.setPreferredSize(new Dimension(500, 270));
37 setContentPane(jpanel);
38
39 pack();
40 RefineryUtilities.centerFrameOnScreen(this);
41 setVisible(true);
42 }
43
44 private static CategoryDataset createDataset() {
45 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
46 //MetadataElement me = (MetadataElement) map.get(Item);
47 //Set tempMap = map.keySet();
48 Set s = map.keySet();
49 Iterator i = s.iterator();
50 //int counter = 1;
51
52 while(i.hasNext()){
53 String metaName = (String)i.next();
54 Integer in = (Integer)map.get(metaName);
55 int number = in.intValue();
56 defaultcategorydataset.addValue(number,metaName,metaName);
57 //counter++;
58 }
59
60 return defaultcategorydataset;
61 }
62
63 private static CategoryDataset createDataset2() {
64 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
65
66 Set s = map.keySet();
67 Iterator i = s.iterator();
68 int counter = 0;
69
70 while(i.hasNext()){
71 String metaName = (String)i.next();
72 Integer in = (Integer)map.get(metaName);
73 int number = in.intValue();
74 defaultcategorydataset.addValue(number , metaName, counter+"");
75 counter++;
76 }
77
78 return defaultcategorydataset;
79 }
80
81 private static JFreeChart createChart(CategoryDataset categorydataset) {
82 JFreeChart jfreechart
83 = ChartFactory.createBarChart3D("",Item,
84 "Frequency", categorydataset,
85 PlotOrientation.VERTICAL, false,
86 true, false);
87
88 CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
89 CategoryAxis categoryaxis = categoryplot.getDomainAxis();
90 categoryaxis.setCategoryLabelPositions
91 (CategoryLabelPositions
92 .createUpRotationLabelPositions(0.39269908169872414));
93 CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
94 categoryitemrenderer.setBaseItemLabelsVisible(true);
95 BarRenderer barrenderer = (BarRenderer) categoryitemrenderer;
96 barrenderer.setItemMargin(0.2);
97 return jfreechart;
98 }
99
100 public static JPanel createDemoPanel(int operation) {
101 JFreeChart jfreechart = createChart(createDataset());
102 if(operation == 2){
103 jfreechart = createChart(createDataset2());
104 }
105 return new ChartPanel(jfreechart);
106 }
107 /*
108 public static void main(String[] strings) {
109 DrawXYChart DrawXYChart
110 = new DrawXYChart("3D Bar Chart Demo 3", "title2",null,2);
111 DrawXYChart.pack();
112 RefineryUtilities.centerFrameOnScreen(DrawXYChart);
113 DrawXYChart.setVisible(true);
114 }
115 */
116 public void windowClosing(java.awt.event.WindowEvent event){
117 this.dispose();
118 }
119}
120
Note: See TracBrowser for help on using the repository browser.