All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Components |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sas.graphics.components.piechart
Class PieChart

    com.sas.graphics.components.piechart.PieChart

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    public class PieChart

The PieChart component is a Swing component that produces pie charts that support the visualization of multiple response variables. Pie charts use the size of pie slices to graphically represent the value of a statistic for a data range; they are useful for examining how the values of a variable contribute to the whole and for comparing the values of several variables.

Note. This class can be used to render client-side graphs in Java applications or applets. The com.sas.servlet.tbeans.graphics.html.PieChart class can be used to render server-side graphs in Java servlets or JavaServer Pages (JSP). Both classes use the models in the com.sas.graphics.components package.

Topics:
  Minimum Specification
  Functional Overview
  Data Access
  Display Properties
  Titles and Footnotes
  Usage Examples
  Behavior
  Swing-based Samples

Since:
  SAS 9.1
See Also:
  `Graph`, `GraphStyle`, `NoteModel`, `PieChartModel`, `PieChartDataModel`, `PieChartTableDataModel`, `PieChartOLAPDataModel`, Serialized Form

Field Summary
`static java.lang.String` | `RB_KEY`

Fields inherited from class com.sas.graphics.components.Graph
`footnoteContainer, titleContainer`

Constructor Summary
`PieChart()` Construct a PieChart using the default GraphStyle (GraphStyle.STYLE_CONVENTION).
`PieChart(PieChartDataModel pieChartDataModel)` Construct a PieChart, assigning pieChartDataModel, and using the default GraphStyle (GraphStyle.STYLE_CONVENTION).
`PieChart(PieChartDataModel pieChartDataModel, GraphStyle defaultGraphStyle)` Construct a PieChart assigning pieChartDataModel and applying defaultGraphStyle.

Method Summary
`void` | `applyColorScheme(ColorScheme scheme)` Apply a color scheme to this graph's display attributes.
`protected void` | `applyDataModel()` Intended for internalUse only
`protected void` | `applyGraphModel()` For internal use only.
`void` | `applyGraphStyle(GraphStyle graphStyle)` Apply the GraphStyle display properties onto the PieChart.
`PieChartDataModel` | `getDataModel()` Returns the PieChartDataModel that provides a handle to the data along with any associated mapping properties.
`static com.sas.beans.ExtendedBeanInfo` | `getExtendedBeanInfo()` Returns information used by the `com.sas.beans.Introspector` to augment the automatically introspected information about this PieChart.
`PieChartModel` | `getGraphModel()` Returns the PieChartModel that encapsulates most of the PieChart's display properties.
`ChartImageMapInfo` | `getImageMapInfo()` Returns the image mapping of the pie chart.
`boolean` | `isAnimationEnabled()`
`boolean` | `isAutoRepaintEnabled()` Returns whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.
`void` | `prepareToPaint()` Notify this component that an application is about to call paint directly.
`protected void` | `selectionChanged()` Internal use only.
`void` | `setAnimationEnabled(boolean enabled)`
`void` | `setAutoRepaintEnabled(boolean b)` Sets whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.
`void` | `setDataModel(PieChartDataModel newDataModel)` Sets the PieChartDataModel which provides a handle to the data, along with associated mapping properties, to define the number and arrangement of data elements (that is slices).
`void` | `setGraphModel(PieChartModel newPieChartModel)` Sets a PieChartModel to define most of the PieChart's display properties.
`void` | `setLocale(java.util.Locale locale)` Sets the locale of this component.
`protected void` | `updateDataModelListeners()` Internal use only.

Methods inherited from class com.sas.graphics.components.Graph
`addActionListener, addMouseListener, addMouseMotionListener, addMouseMotionListener, clearSelection, firePropertyChange, getActionProvider, getAppliedColorSchemeName, getAppliedGraphStyleName, getBackground, getBrushBounds, getChannel, getContentsChangedListener, getDefaultGraphStyle, getDefaultHeight, getDefaultWidth, getDisplayPolicy, getFooter, getFootnote, getFootnote1, getFootnote2, getHeader, getListSelectionListener, getLocale, getMessageModel, getMinimumSize, getPreferredSize, getTableModelListener, getTitle, getTitle1, getTitle2, getTitle3, getTitle4, isAppliedGraphStyleModified, paint, paintAll, paintBackground, pick, pick, pickSelected, removeActionListener, select, select, select, select, setActionProvider, setBackground, setBounds, setDisplayPolicy, setFooter, setFootnote, setFootnote1, setFootnote2, setHeader, setMessageModel, setPaintContext, setTitle, setTitle1, setTitle2, setTitle3, setTitle4, update, updateDataModelListeners, validateTree`

Field Detail

### RB_KEY

    public static final java.lang.String RB_KEY

See Also:
  Constant Field Values

Constructor Detail

### PieChart

    public PieChart()

  Construct a PieChart using the default GraphStyle (GraphStyle.STYLE_CONVENTION).

  See Also:
    `GraphStyle`

### PieChart

    public PieChart(PieChartDataModel pieChartDataModel)

  Construct a PieChart, assigning pieChartDataModel, and using the default GraphStyle (GraphStyle.STYLE_CONVENTION). The PieChartDataModel is accessible via the getDataModel method.

  A null PieChartDataModel parameter is equivalent to using the default constructor.

  Parameters:
    `pieChartDataModel` - the data to be used by this graph
  See Also:
    `GraphStyle`, `PieChartTableDataModel`, `PieChartOLAPDataModel`

### PieChart

    public PieChart(PieChartDataModel pieChartDataModel,
                    GraphStyle defaultGraphStyle)

  Construct a PieChart assigning pieChartDataModel and applying defaultGraphStyle. The PieChartDataModel is accessible via the getDataModel method. The PieChartModel (whose properties are affected by the GraphStyle application) is accessible via the getGraphModel method. The NoteModels (whose properties are affected by the GraphStyle application) are accessible via the getTitle and getFootnote methods. A null PieChartDataModel parameter is equivalent to setDataModel(null); If GraphStyle is null then GraphStyle.STYLE_CONVENTION will be applied.

  Parameters:
    `pieChartDataModel` - provides a data handle with associated mapping properties
    `defaultGraphStyle` - the set of graph display properties
  See Also:
    `NoteModel`, `PieChartModel`, `PieChartTableDataModel`, `PieChartOLAPDataModel`

Method Detail

### setAnimationEnabled

    public void setAnimationEnabled(boolean enabled)

### isAnimationEnabled

    public boolean isAnimationEnabled()

### prepareToPaint

    public void prepareToPaint()

  Notify this component that an application is about to call paint directly. This method is useful when attempting to get the Graph to draw into an image (or other application provided GraphicsContext).

  As per java standard practices; "paint" should never be called directly by an application. However if it is necessary to render the Graph directly then the use of paintAll(Graphics) or printAll(Graphics) is acceptable.

  Graphs asynchronously update to keep their view in sync with their model properties (Graphmodel, DataModel, NoteModel etc.). A direct call to paintAll or printAll does not allow for the graph to asynchronously sync up with their model proeprties. prepareToPaint provides this synchronization point necessary for the Graphs to update their component structure as needed.

  Note: Used in a headless environment, Graphs will never asynchronously update and therefore require a call to prepareToPaint to render into a GraphicsContext.

  The headless and non-headless cases can be handled slightly differently. In the non-headless case the asynchronous updating needs to be halted. This is done by setting the "autoRepaintEnabled" property to false. The default for autoRepaintEnabled is true, allowing the graph to automatically resync and repaint as model properties are modified.

  Example writing to an image. Note for readability exception handling has been ignored.

       static public void main(String args[])
       {
          BufferedImage bi = new BufferedImage(640,480,BufferedImage.TYPE_INT_RGB);
          Graphics ig = bi.createGraphics();

          // Create Graph
          PieChart graph = new PieChart();

          // This call is not necessary if you are running in a headless environment.
          graph.setAutoRepaintEnabled(false);

          // ... assign data and model properties here ...
          graph.setDataModel(newGraphData());

          {// Render sequence
              graph.setBounds(0,0,bi.getWidth(null),bi.getHeight(null)); // Define the size of the Graph
              graph.addNotify(); // Makes the component displayable.
              graph.prepareToPaint(); // do property synchronization
              graph.paintAll(ig); // render into some graphics context
          }

          // Dispose of image graphics context
          ig.dispose();

          // Save immage to disk
          File file = new File("graph.jpg");
          try
          {
              ImageIO.write(bi, "jpg", file);
          }
          catch (IOException e)
          {
              System.out.println("ImageIO.write failed.");
          }
       }

  Specified by:
    `prepareToPaint` in class `Graph`

### setAutoRepaintEnabled

    public void setAutoRepaintEnabled(boolean b)

  Sets whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed. The default value is true.

  The setting of this property to false implies that the application will be responsible for synchronizing the graph with its models using the prepareToPaint method.

  This method was added to support rendering into an off screen graphics context such as an image.

  Specified by:
    `setAutoRepaintEnabled` in class `Graph`
  Parameters:
    `b` - true means to automatically update
  See Also:
    `isAutoRepaintEnabled()`

### isAutoRepaintEnabled

    public boolean isAutoRepaintEnabled()

  Returns whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.

  Specified by:
    `isAutoRepaintEnabled` in class `Graph`
  See Also:
    `setAutoRepaintEnabled(boolean)`

### getExtendedBeanInfo

    public static com.sas.beans.ExtendedBeanInfo getExtendedBeanInfo()

  Returns information used by the `com.sas.beans.Introspector` to augment the automatically introspected information about this PieChart.

  Returns:
    the ExtendedBeanInfo for this class

### setLocale

    public void setLocale(java.util.Locale locale)

  Sets the locale of this component. This is a bound property.

  Overrides:
    `setLocale` in class `java.awt.Component`
  Parameters:
    `locale` - the locale to become this component's locale
  See Also:
    `Graph.getLocale()`

### setGraphModel

    public void setGraphModel(PieChartModel newPieChartModel)
                       throws java.lang.IllegalArgumentException

  Sets a PieChartModel to define most of the PieChart's display properties. Modifying any PieChartModel property triggers the PieChart to update. The update is asynchronous and delayed so modifying multiple properties in quick succession will result in only a single update. Use the FullPaintInterface if greater control over the PieChart's paint behavior is necessary.

  Typically, applyGraphStyle is used to modify the graph's display properties.

  Parameters:
    `newPieChartModel` - the PieChartModel that encapsulates the PieChart's display properties
  Throws:
    `java.lang.IllegalArgumentException` - if newPieChartModel is null.
  See Also:
    `getGraphModel()`, `PieChartModel.apply(com.sas.graphics.components.piechart.PieChartModel)`, `GraphStyle`

### getGraphModel

    public PieChartModel getGraphModel()

  Returns the PieChartModel that encapsulates most of the PieChart's display properties.

  Returns:
    the PieChartModel that encapsulates most of the PieChart's display properties
  See Also:
    `setGraphModel(com.sas.graphics.components.piechart.PieChartModel)`, `PieChartModel.apply(com.sas.graphics.components.piechart.PieChartModel)`

### setDataModel

    public void setDataModel(PieChartDataModel newDataModel)

  Sets the PieChartDataModel which provides a handle to the data, along with associated mapping properties, to define the number and arrangement of data elements (that is slices).

  Any change in the PieChartDataModel properties will cause the PieChart to update. The update is asynchronous and delayed so modifying multiple properties in quick succession will result in only a single update. The FullPaintInterface can be used if greater control over the PieChart's paint behavior is needed.

  Note: Data value changes will also trigger PieChart to update.

  A valid PieChartDataModel is required to draw a graph.

  Parameters:
    `newDataModel` - provides a handle to the data along with any associated mapping properties
  See Also:
    `getDataModel()`, `PieChartTableDataModel`, `PieChartOLAPDataModel`

### getDataModel

    public PieChartDataModel getDataModel()

  Returns the PieChartDataModel that provides a handle to the data along with any associated mapping properties.

  Returns:
    the PieChartDataModel that provides a handle to the data along with any associated mapping properties
  See Also:
    `setDataModel(com.sas.graphics.components.piechart.PieChartDataModel)`, `PieChartTableDataModel`, `PieChartOLAPDataModel`

### getImageMapInfo

    public ChartImageMapInfo getImageMapInfo()

  Returns the image mapping of the pie chart. The ChartImageMapInfo class encapsulates the mapping of regions associated with pie elements, labels and values as projected onto the display area along with their associated data. This is particularly useful with creating html imagemap information if the graph is used to create an image for an html document.

  Returns:
    the mapping of regions associated with graph elements

### applyDataModel

    protected void applyDataModel()

  Description copied from class: `Graph`
  Intended for internalUse only

  Specified by:
    `applyDataModel` in class `Graph`

### applyGraphModel

    protected void applyGraphModel()

  For internal use only.

  Overrides:
    `applyGraphModel` in class `Graph`

### applyGraphStyle

    public void applyGraphStyle(GraphStyle graphStyle)

  Apply the GraphStyle display properties onto the PieChart. The use of this method is a convenient way to quickly and easily affect the PieChart's appearance. The PieChartModel (accessible via the getGraphModel method) properties and the NoteModels (accessible via the getTitle and getFootnote methods) properties are modified by this method.

  The GraphStyle enforces certain constraints that are not enforced on the Graph's display models (PieChartModel and NoteModels). For example only one value text color may be specified on the GraphStyle, whereas the PieChartModel supports setting different value text colors between axes, legends and data element text. Most presentations only require a single color for all types of value text, which is easily achieved by applying a GraphStyle.

  Applying a GraphStyle will modify the display properties of the PieChartModel and the title and footnote NoteModels. The PieChart does not retain a link to the GraphStyle after this method has been called. Modifying any of the GraphStyle properties after this method has been called will have no affect on the PieChart. Similarly modifying any of PieChart's display properties after this method has been called will have no affect on the GraphStyle properties. To affect any change in the PieChart display appearance the modified GraphStyle or a different GraphStyle would need to be applied again.

  A blind PropertyChangeEvent is fired by the PieChart after the apply is made.

  No action is taken if a null GraphStyle is passed in.

  Overrides:
    `applyGraphStyle` in class `Graph`
  Parameters:
    `graphStyle` - the GraphStyle whose properties are conveyed to the PieChart
  See Also:
    `NoteModel`, `PieChartModel`

### applyColorScheme

    public void applyColorScheme(ColorScheme scheme)

  Apply a color scheme to this graph's display attributes. Note: ColorScheme is currently geared towards solid fill colors only. Changing gradient and image fills will have to be handled by the user directly on the graph models.

  Overrides:
    `applyColorScheme` in class `Graph`
  Parameters:
    `scheme` - ColorScheme object containing a set of colors for the charts.

### selectionChanged

    protected void selectionChanged()

  Internal use only.

  Specified by:
    `selectionChanged` in class `Graph`

### updateDataModelListeners

    protected void updateDataModelListeners()

  Internal use only.

  Specified by:
    `updateDataModelListeners` in class `Graph`
  See Also:
    `Graph.updateDataModelListeners(Object model, Object selectionModel)`

All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Components |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 SAS Institute Inc. All Rights Reserved.