<%// ChangeLine:%>

    <%
    // A graph's display properties (marker symbol, axis characteristics, and
    // so on) are general properties that are defined in the graph's model. The
    // line style for a needle lines is defined as a LineStyle that
    // is applied to the plot needles. Thus, to change the line style for needles,
    //    1) Get the ScatterPlot's model
    //    2) Define a LineStyle for the needle lines
    //    3) Set the LineStyle by calling setNeedleLineStyle()
    %>

    <%@page import="
      com.sas.servlet.tbeans.graphics.html.ScatterPlot,
      com.sas.graphics.components.scatterplot.ScatterPlotTableDataModel,
      com.sas.graphics.components.ClassificationVariable,
      com.sas.graphics.components.PlotVariable,
      com.sas.graphics.components.DataElementStyles,
      com.sas.graphics.components.GraphConstants,
      com.sas.graphics.components.MarkerStyle,
      com.sas.graphics.components.scatterplot.ScatterPlotModel,
      com.sas.graphics.components.LineStyle,
      com.sas.measures.BaseLength,
      com.sas.swing.models.TableModelAdapter,
      com.sas.models.SimpleTable,
      java.awt.Color"
    %>

    <%
     // Create a ScatterPlot instance
        ScatterPlot scatterPlot = new ScatterPlot();

     // Create a simple SAS table and add data to it
        SimpleTable table = new SimpleTable();
    %>

    <%@ include file="HeightWeightData.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
        ScatterPlotTableDataModel dataModel=
          new ScatterPlotTableDataModel(tma);

     // 1) Get the plot's graph model
        ScatterPlotModel graphModel=scatterPlot.getGraphModel();

     // 2) Define a LineStyle for the needle lines
        LineStyle lineStyle = new LineStyle(
          Color.red,
          new BaseLength(3, "pt"),
          GraphConstants.TRUE);

     // 3) Set the LineStyle on the needles
        graphModel.setNeedleLineStyle(lineStyle);

     // Enable interpolations and get the DataElementStyles
        graphModel.setInterpolationEnabled(true);
        DataElementStyles des = graphModel.getDataElementStyles() ;

     // Get the array of MarkerStyles
        MarkerStyle[] markerStyles = des.getMarkerStyles();

     // Specify the interpolation method
        markerStyles[0].setInterpolation(MarkerStyle.INTERPOLATION_VERTICAL_NEEDLES);

     // Assign the X and Y variable roles
        dataModel.setXVariable(
          new PlotVariable("Height"));
        dataModel.setYVariable(
          new PlotVariable("Weight"));
        dataModel.setGroupVariable(
          new ClassificationVariable("Gender"));

     // Assign the data model to the ScatterPlot
        scatterPlot.setDataModel(dataModel);

     // Set a graph title
        scatterPlot.getTitle1().setText(
         "Relation of Weight to Height");

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

     // Write the plot to the display
        scatterPlot.write(out);
    %>