Jfreechart - Applet og JSP
Jeg står i en situation hvor jeg gerne vil have lavet noget statistik med JFreechart som jeg har tænkt mig skal køre over en jsp webside i en applet, men jeg har lidt problemer med at tilgå selve appletens metoder, dvs. at jeg gerne vil have hentet noget data fra model/domain-laget til jsp-siden som skal videresendes fødes til en metode i appleten eks. loadData( Dataset d ) som derefter skal opdateres..Mit problem er at jeg ikke ved hvordan man skal kunne få appleten til at loade de dataer, da man jo ikke kan kalde metoderne som sådan, kun med javascript og derved ikke kunne angive et dataset som parameter.
<% -- Kunne være smart hvis man kunne gøre sådan og at appleten kunne bruge det initierede objekt ;)
StatBarchart sbc = new StatBarchart(); // Appleten
sbc.loadData( et eller andet data );
%>
<applet code="StatBarchart.class" width="800" height="600"></applet>
---------
public void loadData( DefaultCategoryDataset data )
{
JFreeChart chart = ChartFactory.createStackedBarChart3D( null, "", "Cost", data, PlotOrientation.VERTICAL, false, true, false );
CategoryPlot plot = (CategoryPlot) chart.getPlot();
GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();
KeyToGroupMap map = new KeyToGroupMap( "G1" );
map.mapKeyToGroup( data.getRowKey( 0 ), "G1" ); // 2006 (Int)
map.mapKeyToGroup( data.getRowKey( 1 ), "G1" ); // 2006 (Ext)
map.mapKeyToGroup( data.getRowKey( 2 ), "G2" ); // 2007 (Int)
map.mapKeyToGroup( data.getRowKey( 3 ), "G2" ); // 2007 (Ext)
renderer.setSeriesToGroupMap( map );
renderer.setItemMargin( 0 );
SubCategoryAxis domainAxis = new SubCategoryAxis( null );
domainAxis.setCategoryMargin( 0.05 );
domainAxis.addSubCategory( "h" ); // 2006
domainAxis.addSubCategory( "c" ); // 2007
domainAxis.setLowerMargin( 0 );
domainAxis.setUpperMargin( 0 );
plot.setDomainAxis( domainAxis );
plot.setRenderer( renderer );
ChartPanel chartPanel = new ChartPanel( chart );
chartPanel.setPreferredSize( new java.awt.Dimension( 400, 300 ) );
setContentPane( chartPanel );
}
------
Det virker udmærket hvis jeg loader dataen i init metoden for appleten, men det kan da ikke passe at man skal til kringe sig ud i noget andet, det burde være lige til..
Håber i forstår mig..
