com.sas.graphics.components.linechart
Class LineChartTableDataModel

com.sas.graphics.components.linechart.LineChartTableDataModel

public class LineChartTableDataModel

A LineChartTableDataModel encapsulates relational data from a javax.swing.table.TableModel and maps the TableModel's data columns onto a LineChart component. To do the mapping, it assigns variable roles to the columns that will be used in the graph, and the assigned roles determine how the LineChart displays the data.

When generating a graph, a LineChart summarizes the data from a LineChartTableDataModel.

Topics:
Basic LineCharts
Plot Markers
Labels for Plot Points
Data Summarization and Statistic Calculation
Numeric Categorizations
Data Subgroups
Multiple Response Variables
Multiple LineCharts in Columns and/or Rows
Valid Variable Roles for a LineChartTableDataModel
Behavior
Events
Error Handling
Samples:
Swing-based Samples
Servlet-based Samples

Since:
SAS 9.1
See Also:
LineChartDataModel, LineChart

Constructor Summary
LineChartTableDataModel()
          Default Constructor
LineChartTableDataModel(javax.swing.table.TableModel newModel)
          Constructor with assigned model
 
Method Summary
 void apply(LineChartTableDataModel theOtherModel)
          Utility method to convey properties contained in "theOtherModel" to this object.
 boolean equals(java.lang.Object obj)
          Determines whether another object is equal to this LineChartTableDataModel.
 Variable[] getAuxiliaryVariable()
          Returns the array of data columns that was most recently set by the setAuxiliaryVariable() method.
 Variable getCategorySortVariable()
          Returns the data column that was most recently set in the CategorySort role by the setCategorySortVariable() method.
 ClassificationVariable getCategoryVariable()
          Returns the data column that was most recently set in the Category role by the setCategoryVariable() method.
 ClassificationVariable getColumnVariable()
          Returns the data column that was most recently set in the Column role by the setColumnVariable() method.
 Variable[] getDataTipVariable()
          Returns the array of data columns that was most recently set by the setDataTipVariable() method.
 javax.swing.table.TableModel getModel()
          Returns the TableModel containing the data values to be displayed by the LineChart.
 Variable getOutsideMarkerLabelVariable()
          Returns the data column that was most recently set in the OutsideMarkerLabel role by the setOutsideMarkerLabelVariable() method.
 AnalysisVariable getResponse2Variable()
          Returns the data column that was most recently set in the Response2 role by the setResponse2Variable() method.
 AnalysisVariable getResponseVariable()
          Returns the data column that was most recently set in the Response role by the setResponseVariable() method.
 ClassificationVariable getRowVariable()
          Returns the data column that was most recently set in the Row role by the setRowVariable() method.
 javax.swing.ListSelectionModel getSelectionModel()
          Returns the ListSelectionModel that indicates which data values are selected.
 Variable getStyleByVariable()
          Returns the data column that was most recently set in the StyleBy role by the setStyleByVariable() method.
 ClassificationVariable getSubgroupVariable()
          Returns the data column that was most recently set in the Subgroup role by the setSubgroupVariable() method.
 int hashCode()
          Computes the hash code for this LineChartTableDataModel.
 boolean isStatisticEnabled()
          Returns whether or not to summarize the data.
 void setAuxiliaryVariable(Variable[] newVariables)
          Specifies an array of Variables that are included among the variables that are passed in the events on the LineChart data elements.
 void setCategorySortVariable(Variable newVariable)
          Sets the variable model that controls the order in which the values are placed along the category axis.
 void setCategoryVariable(ClassificationVariable newVariable)
          Sets the variable model used to identify the data column in the model whose values are used to produce the line vertices along the category axis.
 void setColumnVariable(ClassificationVariable newVariable)
          Sets the variable model(s) used to identify the data column(s) in the model whose values are used to horizontally group the data elements.
 void setDataTipVariable(Variable[] newVariables)
          Specifies an array of Variables to be displayed in the data tip.
 void setModel(javax.swing.table.TableModel newModel)
          Sets the TableModel containing the data values to be displayed by the LineChart.
 void setOutsideMarkerLabelVariable(Variable newVariable)
          Sets the data column whose values appear as labels above the marker locations (line vertices).
 void setResponse2Variable(AnalysisVariable newVariable)
          Sets the data column(s) in the model whose values are to be used to determine the placement of the line vertices associated with the response2 (right) axis.
 void setResponseVariable(AnalysisVariable newVariable)
          Sets the data column(s) in the model whose values are to be used to determine the placement of the line vertices associated with the response axis.
 void setRowVariable(ClassificationVariable newVariable)
          Sets the variable model(s) used to identify the data column(s) in the model whose values are used to vertically group the data elements.
 void setSelectionModel(javax.swing.ListSelectionModel newModel)
          Sets the ListSelectionModel which indicates which data values are selected.
 void setStatisticEnabled(boolean newStatisticEnabled)
          Sets whether or not to summarize the data.
 void setStyleByVariable(Variable newVariable)
          Sets the variable whose associated values will be used to define the color mapping on the marker data elements.
 void setSubgroupVariable(ClassificationVariable newVariable)
          Sets the variable model used to identify the data column in the model whose values are used sub-divide the line verticies per category value.
 
Methods inherited from class com.sas.graphics.components.DataModel
apply, getLocale, getRulesContext, getSortStrategy, setLocale, setRulesContext, setSortStrategy
 
Methods inherited from class com.sas.graphics.components.ModelBase
addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, removePropertyChangeListener, setContainedModel
 

Constructor Detail

LineChartTableDataModel

public LineChartTableDataModel()
Default Constructor


LineChartTableDataModel

public LineChartTableDataModel(javax.swing.table.TableModel newModel)
Constructor with assigned model

Method Detail

setSelectionModel

public void setSelectionModel(javax.swing.ListSelectionModel newModel)
Sets the ListSelectionModel which indicates which data values are selected.

Parameters:
newModel - the ListSelectionModel containing the indices of the selected data values.
Throws:
java.lang.IllegalArgumentException - if newModel is null.
See Also:
getSelectionModel()

getSelectionModel

public javax.swing.ListSelectionModel getSelectionModel()
Returns the ListSelectionModel that indicates which data values are selected.

Returns:
the ListSelectionModel containing the indices of the selected data values.
See Also:
setSelectionModel(javax.swing.ListSelectionModel)

apply

public void apply(LineChartTableDataModel theOtherModel)
Utility method to convey properties contained in "theOtherModel" to this object.
Note: Contained "models" (i.e. properties that are subclasses of ModelBase) will in turn be called on to convey their properties to the like contained models in the other object. In that respect this can be considered a "tree" type copy.
Also Note: This is a deep copy. Thus after the copy, mutable properties will not be shared by the two instances.


setModel

public void setModel(javax.swing.table.TableModel newModel)
Sets the TableModel containing the data values to be displayed by the LineChart.

Parameters:
newModel - the TableModel containing the data values.
See Also:
getModel()

getModel

public javax.swing.table.TableModel getModel()
Returns the TableModel containing the data values to be displayed by the LineChart.

See Also:
setModel(javax.swing.table.TableModel)

setStatisticEnabled

public void setStatisticEnabled(boolean newStatisticEnabled)
Sets whether or not to summarize the data. The default is true meaning to summarize the data. The only time that this should be set to false is when the Swing TableModel contains summarized data and all the classification variables have been properly assigned.

Parameters:
newStatisticEnabled - whether or not to summarize the data
See Also:
isStatisticEnabled()

isStatisticEnabled

public boolean isStatisticEnabled()
Returns whether or not to summarize the data.

See Also:
setStatisticEnabled(boolean)

setColumnVariable

public void setColumnVariable(ClassificationVariable newVariable)
Sets the variable model(s) used to identify the data column(s) in the model whose values are used to horizontally group the data elements.

Advanced: An ClassificationVariableList may be used to assign multiple variables for this property. Multiple variables will form a hierarchy of classification values in the graph.

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getColumnVariable()

getColumnVariable

public ClassificationVariable getColumnVariable()
Returns the data column that was most recently set in the Column role by the setColumnVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setColumnVariable(com.sas.graphics.components.ClassificationVariable)

setRowVariable

public void setRowVariable(ClassificationVariable newVariable)
Sets the variable model(s) used to identify the data column(s) in the model whose values are used to vertically group the data elements.

Advanced: An ClassificationVariableList may be used to assign multiple variables for this property. Multiple variables will form a hierarchy of classification values in the graph.

Parameters:
newVariable - the variable(s) identifying the TableModel data column and associated properties
See Also:
getRowVariable()

getRowVariable

public ClassificationVariable getRowVariable()
Returns the data column that was most recently set in the Row role by the setRowVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setRowVariable(com.sas.graphics.components.ClassificationVariable)

setCategoryVariable

public void setCategoryVariable(ClassificationVariable newVariable)
Sets the variable model used to identify the data column in the model whose values are used to produce the line vertices along the category axis. If this property is null the LineChart will attempt to automatically select a data column from the TableModel (otherwise a graph could not be produced).

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getCategoryVariable()

getCategoryVariable

public ClassificationVariable getCategoryVariable()
Returns the data column that was most recently set in the Category role by the setCategoryVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setCategoryVariable(com.sas.graphics.components.ClassificationVariable)

setCategorySortVariable

public void setCategorySortVariable(Variable newVariable)
Sets the variable model that controls the order in which the values are placed along the category axis. The categoryVariable's sort property defines the direction of the values (data order, ascending, descending). If the categorySortVariable property is null (the default) then the data values designated by the categoryVariable are used to determine the category axis' value order. However if a categorySortVariable is specified then the data values designated by the categorySortVariable are used to determine the category axis' value order. Note: specifying a categorySortVariable does not change the category axis values, it only affects the order that they appear. Also note: that no category sort variable be applied if a cumulative statistic is specified on any of either the response or data labels. Also note: this property is ignored by the line chart if the line chart's graph model's uniformEnabled property is true.

A typical use of this property is to assign the resposeVariable as the categorySortVariable which will cause the data elements to be ordered by their response value. (ex. lineChartTableDataModel.setCategorySortVariable(lineChartTableDataModel.getResponseVariable());) The direction (tallest to shortest or shortest to tallest) comes from the categoryVariable's sort property (GraphConstatnes.SORT_DESCENDING or GraphConstatnes.SORT_ASCENDING).

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getCategorySortVariable()

getCategorySortVariable

public Variable getCategorySortVariable()
Returns the data column that was most recently set in the CategorySort role by the setCategorySortVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setCategorySortVariable(com.sas.graphics.components.Variable)

setStyleByVariable

public void setStyleByVariable(Variable newVariable)
Sets the variable whose associated values will be used to define the color mapping on the marker data elements. The values associated with the column specified by the styleByVaraible will be used to color the data elements.
Note: color is used to distinguish between subgroup values if a subgroupVaraible has been designated. Similarly, color is used to distinguish between different response data when multiple response variables have been designated. For those reasons, the styleByVaraible property is only applicable when both
(1) no subgroupVaraible has been specified and
(2) when there are 0 or 1 response variables assigned.

Please refer to the colorPaletteType property on the LineChartModel to view available options to control the type of color mapping.

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getStyleByVariable(), LineChartModel.setColorPaletteType(int)

getStyleByVariable

public Variable getStyleByVariable()
Returns the data column that was most recently set in the StyleBy role by the setStyleByVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setStyleByVariable(com.sas.graphics.components.Variable)

setSubgroupVariable

public void setSubgroupVariable(ClassificationVariable newVariable)
Sets the variable model used to identify the data column in the model whose values are used sub-divide the line verticies per category value.

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getSubgroupVariable()

getSubgroupVariable

public ClassificationVariable getSubgroupVariable()
Returns the data column that was most recently set in the Subgroup role by the setSubgroupVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setSubgroupVariable(com.sas.graphics.components.ClassificationVariable)

setResponseVariable

public void setResponseVariable(AnalysisVariable newVariable)
Sets the data column(s) in the model whose values are to be used to determine the placement of the line vertices associated with the response axis.

Advanced: An AnalysisVariableList may be used to assign multiple variables for this property. Multiple variables would result in multiple vertices per category.

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getResponseVariable(), setResponse2Variable(com.sas.graphics.components.AnalysisVariable)

getResponseVariable

public AnalysisVariable getResponseVariable()
Returns the data column that was most recently set in the Response role by the setResponseVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setResponseVariable(com.sas.graphics.components.AnalysisVariable), getResponse2Variable()

setResponse2Variable

public void setResponse2Variable(AnalysisVariable newVariable)
Sets the data column(s) in the model whose values are to be used to determine the placement of the line vertices associated with the response2 (right) axis.

Advanced: An AnalysisVariableList may be used to assign multiple variables for this property. Multiple variables would result in multiple vertices per category.

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getResponse2Variable(), setResponseVariable(com.sas.graphics.components.AnalysisVariable)

getResponse2Variable

public AnalysisVariable getResponse2Variable()
Returns the data column that was most recently set in the Response2 role by the setResponse2Variable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setResponseVariable(com.sas.graphics.components.AnalysisVariable), getResponseVariable()

setOutsideMarkerLabelVariable

public void setOutsideMarkerLabelVariable(Variable newVariable)
Sets the data column whose values appear as labels above the marker locations (line vertices). These data labels will appear if the LineChartModel's TopMarkerLabelContent property is set to GraphConstants.DATA_LABEL_AUTOMATIC.

Advanced: An AnalysisVariable, AnalysisVariableList, ClassificationVariable or ClassificationVariableList may also be specified. If analysis variables are used then the specified statistic will be applied to the label values (Note: AnalysisVaraibles should only point to numeric data columns). If a list is used then the line vertices will use the labels in the order specified (i.e. the 1st data label variable will be paired with the 1st line variable, the 2nd data label variable will be paired with the 2nd line variable, and same for the 3rd etc.) If more data label variables are specified than line variables then the excess data labels are ignored

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getOutsideMarkerLabelVariable(), LineChartModel.setOutsideMarkerLabelContent(int)

getOutsideMarkerLabelVariable

public Variable getOutsideMarkerLabelVariable()
Returns the data column that was most recently set in the OutsideMarkerLabel role by the setOutsideMarkerLabelVariable() method. Returns null if the variable role has not been set.

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setOutsideMarkerLabelVariable(com.sas.graphics.components.Variable)

setDataTipVariable

public void setDataTipVariable(Variable[] newVariables)
Specifies an array of Variables to be displayed in the data tip. By default, the variables specified on setDataTipVariable() are appended to the end of the default data tip display. To replace the default display with the list of variables in the Variable[] array, use the GraphModel to get the DataTipModel , and the call the DataTipModel's setContent() method with the value GraphConstants.DATA_TIP_REPLACE.

The following code fragment specifies two variables for the data tip display and uses them to replace the default data tip display:


 // Create an array of variables to set in the data tip display
    Variable dataTipVars[] = new Variable[2];
      dataTipVars[0] = new Variable("Task");
      dataTipVars[1] = new Variable("Duration");
    lineChart.getGraphModel().getDataTipModel().setContent(GraphConstants.DATA_TIP_REPLACE);
 

Parameters:
newVariables - array of variables to display in data tip
Throws:
java.lang.IllegalArgumentException - if a non-null array of zero length is passed in.
See Also:
getDataTipVariable(), setAuxiliaryVariable(com.sas.graphics.components.Variable[])

getDataTipVariable

public Variable[] getDataTipVariable()
Returns the array of data columns that was most recently set by the setDataTipVariable() method. Returns null if the data tip variables were not set.

Returns:
variables for data tip values
See Also:
setDataTipVariable(com.sas.graphics.components.Variable[])

setAuxiliaryVariable

public void setAuxiliaryVariable(Variable[] newVariables)
Specifies an array of Variables that are included among the variables that are passed in the events on the LineChart data elements. Auxiliary variables are not represented in the chart. By default, they are not displayed in the datatip, although they can be included in the array of variables set by setDataTipVariable().

Parameters:
newVariables - contains Variables for GraphActionEvent return.
Throws:
java.lang.IllegalArgumentException - if a non-null array of zero length is passed in.
See Also:
getAuxiliaryVariable(), setDataTipVariable(com.sas.graphics.components.Variable[])

getAuxiliaryVariable

public Variable[] getAuxiliaryVariable()
Returns the array of data columns that was most recently set by the setAuxiliaryVariable() method. Returns null if the auxiliary variables were not set.

Returns:
variables for Auxiliary values
See Also:
setAuxiliaryVariable(com.sas.graphics.components.Variable[]), setDataTipVariable(com.sas.graphics.components.Variable[])

equals

public boolean equals(java.lang.Object obj)
Determines whether another object is equal to this LineChartTableDataModel.

The result is true if and only if the argument is not null and is a LineChartTableDataModel object that has the same property values as this object.

Overrides:
equals in class DataModel
Parameters:
obj - the object to test for equality with this LineChartTableDataModel
Returns:
true if the objects are the same; false otherwise.

hashCode

public int hashCode()
Computes the hash code for this LineChartTableDataModel.

Overrides:
hashCode in class DataModel
Returns:
a hash code value for this object.



Copyright © 2009 SAS Institute Inc. All Rights Reserved.