|
Components |
|
| |||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
com.sas.graphics.components.lineplot.LinePlot
public class LinePlot
The LinePlot component is a Swing component that produces line plots that support the visualization of multiple response variables. Line plots show the relationship of one variable to another.
When generating a graph, a LinePlot does not summarize the data from a LinePlotTableDataModel.
Note. A LinePlot is typically used to plot scientific data with X and Y variables that have continuous values. For generating more business-oriented graphs that plot response values against discrete categorical values, the LineChart is better suited than the LinePlot.
A LinePlot is similar to a ScatterPlot and differs as follows:
Note. This class can be used to render client-side graphs in Java applications or applets. The com.sas.servlet.tbeans.graphics.html.LinePlot 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.
Variable
,
VariableList
,
PlotVariable
,
PlotVariableList
,
ClassificationVariable
,
ClassificationVariableList
,
LinePlotModel
,
LinePlotDataModel
,
LinePlotTableDataModel
,
LinePlotOLAPDataModel
,
Serialized FormField Summary | |
---|---|
static java.lang.String |
RB_KEY
|
protected java.awt.event.MouseListener |
scrollBarListener
|
Fields inherited from class com.sas.graphics.components.Graph |
---|
footnoteContainer, titleContainer |
Constructor Summary | |
---|---|
LinePlot()
Construct a LinePlot using the default GraphStyle (GraphStyle.STYLE_CONVENTION). |
|
LinePlot(LinePlotDataModel linePlotDataModel)
Construct a LinePlot, assigning linePlotDataModel, and using the default GraphStyle (GraphStyle.STYLE_CONVENTION). |
|
LinePlot(LinePlotDataModel linePlotDataModel,
GraphStyle defaultGraphStyle)
Construct a LinePlot assigning linePlotDataModel and applying graphStyle. |
Method Summary | |
---|---|
void |
applyColorScheme(ColorScheme scheme)
Apply a color scheme on this Graph. |
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 LinePlot. |
LinePlotDataModel |
getDataModel()
Returns the LinePlotDataModel that contains 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 LinePlot. |
LinePlotModel |
getGraphModel()
Returns the LinePlotModel that encapsulates most of the LinePlot's display properties. |
PlotImageMapInfo |
getImageMapInfo()
The PlotImageMapInfo class encapsulates the mapping of regions associated with marker and line elements, labels (for both axes and legends) and values (for both axes and legends) as projected onto the display area along with their associated data. |
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(LinePlotDataModel newDataModel)
Sets the LinePlotDataModel which provides the data properties along with any associated mapping properties to define the number and arrangement of data elements (markers and lines), legends and axes. |
void |
setDisplayPolicy(int newDisplayPolicy)
Set how the graph is to utilize the display area. |
void |
setGraphModel(LinePlotModel newLinePlotModel)
Sets a LinePlotModel to define most of the LinePlot's display properties. |
void |
setLocale(java.util.Locale locale)
Sets the locale of this component. |
protected void |
updateDataModelListeners()
Internal use only. |
Field Detail |
---|
public static final java.lang.String RB_KEY
protected java.awt.event.MouseListener scrollBarListener
Constructor Detail |
---|
public LinePlot()
GraphStyle
public LinePlot(LinePlotDataModel linePlotDataModel)
A null LinePlotDataModel parameter is equivalent to using the default constructor.
linePlotDataModel
- the data to be used by this graphGraphStyle
,
LinePlotTableDataModel
,
LinePlotOLAPDataModel
public LinePlot(LinePlotDataModel linePlotDataModel, GraphStyle defaultGraphStyle)
linePlotDataModel
- provides a data handle with associated mapping propertiesdefaultGraphStyle
- the set of graph display propertiesNoteModel
,
LinePlotModel
,
LinePlotTableDataModel
,
LinePlotOLAPDataModel
Method Detail |
---|
public void setAnimationEnabled(boolean enabled)
public boolean isAnimationEnabled()
public void setDisplayPolicy(int newDisplayPolicy) throws java.lang.IllegalArgumentException
On the occasion when insufficient display area is available, the graph has to decide whether to use scroll bars and only display a portion of the graph or to draw the entire graph into the available space (shrinking and adjusting portions of the graph as best it can).
To allow scroll bars use the GraphConstants.DISPLAY_SCROLL_AS_NEEDED or specify GraphConstants.DISPLAY_FIT_TO_SCREEN to force the entire graph into the available display area. Specify GraphConstants.DISPLAY_SCROLL_ENABLED shows zoom scrollbars which appear when the display area is moused over and the chart is forced to show the entire graph in the available display area, however the use can then zoom and scroll to investigate the data further.
The default value is GraphConstants.DISPLAY_AUTOMATIC.
Valid values are:
GraphConstants.DISPLAY_FIT_TO_SCREEN
GraphConstants.DISPLAY_SCROLL_AS_NEEDED
GraphConstants.DISPLAY_SCROLL_ENABLED:
GraphConstants.DISPLAY_AUTOMATIC:
setDisplayPolicy
in class Graph
newDisplayPolicy
- how the Graph should utilize the dislay area
java.lang.IllegalArgumentException
- if newDisplayPolicy is invalid.Graph.getDisplayPolicy()
public void prepareToPaint()
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 LinePlot graph = new LinePlot(); // 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."); } }
prepareToPaint
in class Graph
public void setAutoRepaintEnabled(boolean b)
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.
setAutoRepaintEnabled
in class Graph
b
- true means to automatically updateisAutoRepaintEnabled()
public boolean isAutoRepaintEnabled()
isAutoRepaintEnabled
in class Graph
setAutoRepaintEnabled(boolean)
public static com.sas.beans.ExtendedBeanInfo getExtendedBeanInfo()
com.sas.beans.Introspector
to
augment the automatically introspected information about this LinePlot.
public void applyGraphStyle(GraphStyle graphStyle)
The GraphStyle enforces certain constraints that are not enforced on the Graph's display models (LinePlotModel and NoteModels). For example only one value text color may be specified on the GraphStyle, whereas the LinePlotModel 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 LinePlotModel and the title and footnote NoteModels. The LinePlot 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 LinePlot. Similarly modifying any of LinePlot's display properties after this method has been called will have no affect on the GraphStyle properties. To affect any change in the LinePlot display appearance the modified GraphStyle or a different GraphStyle would need to be applied again.
A blind PropertyChangeEvent is fired by the LinePlot after the apply is made.
No action is taken if a null GraphStyle is passed in.
applyGraphStyle
in class Graph
graphStyle
- the GraphStyle whose properties are conveyed to the LinePlotNoteModel
,
LinePlotModel
public void applyColorScheme(ColorScheme scheme)
applyColorScheme
in class Graph
scheme
- ColorScheme object containing a set of colors for the charts.public void setLocale(java.util.Locale locale)
setLocale
in class java.awt.Component
locale
- the locale to become this component's localeGraph.getLocale()
public void setGraphModel(LinePlotModel newLinePlotModel) throws java.lang.IllegalArgumentException
Typically applyGraphStyle is used to modify the graphs display properties.
newLinePlotModel
- the LinePlotModel that encapsulates the LinePlot's display properties
java.lang.IllegalArgumentException
- if newLinePlotModel is null.getGraphModel()
,
LinePlotModel.apply(com.sas.graphics.components.lineplot.LinePlotModel)
,
GraphStyle
public LinePlotModel getGraphModel()
setGraphModel(com.sas.graphics.components.lineplot.LinePlotModel)
,
LinePlotModel.apply(com.sas.graphics.components.lineplot.LinePlotModel)
public void setDataModel(LinePlotDataModel newDataModel)
Any change in the LinePlotDataModel properties will cause the LinePlot 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 LinePlot's paint behavior is needed.
Note: Data value changes will also trigger LinePlot to update.
A valid LinePlotDataModel is required to draw a graph.
newDataModel
- provides the data properties
along with any associated mapping propertiesgetDataModel()
,
LinePlotTableDataModel
,
LinePlotOLAPDataModel
public LinePlotDataModel getDataModel()
setDataModel(com.sas.graphics.components.lineplot.LinePlotDataModel)
,
LinePlotTableDataModel
,
LinePlotOLAPDataModel
public PlotImageMapInfo getImageMapInfo()
protected void applyDataModel()
Graph
applyDataModel
in class Graph
protected void applyGraphModel()
applyGraphModel
in class Graph
protected void selectionChanged()
selectionChanged
in class Graph
protected void updateDataModelListeners()
updateDataModelListeners
in class Graph
Graph.updateDataModelListeners(Object model, Object selectionModel)
|
Components |
|
| |||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |