<%// FillAreas:%>


<%
// When the specification on the data model generates multiple plot lines,
// the areas between the lines can be filled by calling the
// LineChartModel's setFillAreaEnabled() method with the argument value
// true. Optionally, you can define a fill for the areas and set the
// fill on the DataElementStyles. This sample uses the SubgroupVariable
// role to generate multiple plot lines.
%>

<%@page import="com.sas.models.SimpleTable,
        com.sas.swing.models.TableModelAdapter,
        com.sas.servlet.tbeans.graphics.html.LineChart,
        com.sas.graphics.components.linechart.LineChartTableDataModel,
        com.sas.graphics.components.AnalysisVariable,
        com.sas.graphics.components.ClassificationVariable,
        com.sas.graphics.components.linechart.LineChartModel,
        com.sas.graphics.components.DataElementStyles,
        com.sas.graphics.components.FillStyle,
        java.awt.Color"
%>
<%
  // Create a LineChart instance
     LineChart lineChart = new LineChart();
  // Create a simple SAS table and add data to it
     SimpleTable table = new SimpleTable();
%>
         <%@ include file="SubGroupSampleData.jsp" %>

<%
  // Convert a simple SAS table to a simple Java Swing table
     TableModelAdapter tma = new TableModelAdapter(table);
     tma.setFormattedDataUsed(false);

  // Create a data model and attach the data source to it
     LineChartTableDataModel lineChartDataModel=
        new LineChartTableDataModel(tma);

  // Get the plot's graph model and enable filled areas
     LineChartModel graphModel=lineChart.getGraphModel();
     graphModel.setFillAreaEnabled(true);

  // Create transparent fills for the filled areas
     FillStyle[] transparencies=new FillStyle[] {
       new FillStyle(new Color(204,0,102,100) ),    // red transparency
       new FillStyle(new Color(102,153,102,100) ),  // green transparency
       new FillStyle(new Color(51,102,255,100) ) }; // blue transparency

  // Set the fills on the plot areas
     graphModel.getDataElementStyles().setFillStyles(transparencies);

  // Assign the SubgroupVariable role so there are multiple plots
     lineChartDataModel.setSubgroupVariable(
       new ClassificationVariable("City"));

  // Assign the Category and Response variable roles
     lineChartDataModel.setCategoryVariable(
        new ClassificationVariable("Month"));
     lineChartDataModel.setResponseVariable(
        new AnalysisVariable("Temp"));
     lineChartDataModel.setSubgroupVariable(
        new ClassificationVariable("City"));


  // Assign the data model to the BarChart
     lineChart.setDataModel(lineChartDataModel);

  // Set a title
     lineChart.getTitle1().setText("Raleigh Monthly Temperatures");

  // Set HTTP-specific response and request functionality
     lineChart.setResponse(response);
     lineChart.setRequest(request);

  // Write the chart to the display
     lineChart.write(out);
%>