com.sas.graphics.components.barchart
Class BarChartTableDataModel

com.sas.graphics.components.barchart.BarChartTableDataModel

public class BarChartTableDataModel

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

By default when generating a graph, a BarChart summarizes the data from a BarChartTableDataModel.

Topics:
Basic Charts
Data Summarization and Statistic Calculation
Numeric Categorizations
Data Subgroups
Multiple Response Variables
Target Values (and High-Low)
Multiple Charts in Columns and/or Rows
Valid Variable Roles for a BarChartTableDataModel
Behavior
Events
Error Handling
Samples:
Swing-based Samples
Servlet-based Samples

Since:
SAS 9.1
See Also:
BarChartDataModel, BarChart

Constructor Summary
BarChartTableDataModel()
          Default Constructor
BarChartTableDataModel(javax.swing.table.TableModel newModel)
          Constructor with assigned model
 
Method Summary
 void apply(BarChartTableDataModel 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 BarChartTableDataModel.
 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.
 Variable getInsideBarLabelVariable()
          Returns the data column that was most recently set in the InsideBarLabel role by the setInsideBarLabelVariable() method.
 javax.swing.table.TableModel getModel()
          Returns the TableModel containing the data values to be displayed by the BarChart.
 Variable getOutsideBarLabelVariable()
          Returns the data column that was most recently set in the OutsideBarLabel role by the setOutsideBarLabelVariable() method.
 AnalysisVariable getResponse2Variable()
          Returns the variable identifying the data column that was most recently set in the Response2 role via the setResponse2Variable() method.
 AnalysisVariable getResponseVariable()
          Returns the variable identifying the data column that was most recently specified in the Response role via 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 BarChartTableDataModel.
 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 BarChart 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 bar elements 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 setInsideBarLabelVariable(Variable newVariable)
          Sets the data column whose values appear as bar labels drawn just inside of the bar element.
 void setModel(javax.swing.table.TableModel newModel)
          Sets the TableModel containing the data values to be displayed by the BarChart.
 void setOutsideBarLabelVariable(Variable newVariable)
          Sets the data column whose values appear as bar labels drawn just outside of the bar element.
 void setResponse2Variable(AnalysisVariable newVariable)
          Sets the data column(s) in the model whose values are to be used to determine the extent (or length) of the bar elements associated with the response2 axis (the right axis in a vertical bar chart, or the bottom axis in a horizontal bar chart).
 void setResponseVariable(AnalysisVariable newVariable)
          Sets the data column(s) in the model whose values are to be used to determine the extent (i.e. ending location) of the bar elements 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 bar 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 bar elements 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

BarChartTableDataModel

public BarChartTableDataModel()
Default Constructor


BarChartTableDataModel

public BarChartTableDataModel(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 indicies 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 indicies of the selected data values.
See Also:
setSelectionModel(javax.swing.ListSelectionModel)

setModel

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

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 BarChart.

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: A 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: A 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 bar elements along the category axis. If this property is null the BarChart 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 bar chart if the bar 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. barChartTableDataModel.setCategorySortVariable(barChartTableDataModel.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 bar 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 BarChartModel 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(), BarChartModel.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 bar elements 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 extent (i.e. ending location) of the bar elements associated with the response axis.

This role also recognizes the highColumn, lowColumn and targetColumn AnalysisVaraible properties.

Advanced: An AnalysisVariableList may be used to assign multiple variables for this property. Multiple variables would result in multiple bar elements 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 variable identifying the data column that was most recently specified in the Response role via the setResponseVariable() method. null is returned 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 extent (or length) of the bar elements associated with the response2 axis (the right axis in a vertical bar chart, or the bottom axis in a horizontal bar chart).

This role also recognizes the highColumn, lowColumn and targetColumn AnalysisVaraible properties.

Advanced: An AnalysisVariableList may be used to assign multiple variables for this property. Multiple variables would result in multiple bar elements 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 variable identifying the data column that was most recently set in the Response2 role via the setResponse2Variable() method. null is returned 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()

setOutsideBarLabelVariable

public void setOutsideBarLabelVariable(Variable newVariable)
Sets the data column whose values appear as bar labels drawn just outside of the bar element. These bar data labels will appear if the BarChartModel's OutsideBarLabelContent property is set to GraphConstants.DATA_LABEL_AUTOMATIC.
Note: OutsideBarLabels only appear if the bars are not stacked.

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 bar elements will use the labels in the order specified (i.e. the 1st data label variable will be paired with the 1st bar variable, the 2nd data label variable will be paired with the 2nd bar variable, and same for the 3rd etc.) If more data label variables are specified than bar variables then the excess data labels are ignored

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getOutsideBarLabelVariable(), BarChartModel.setOutsideBarLabelContent(int), BarChartModel.setStackBarPolicy(int)

getOutsideBarLabelVariable

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

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

setInsideBarLabelVariable

public void setInsideBarLabelVariable(Variable newVariable)
Sets the data column whose values appear as bar labels drawn just inside of the bar element. These bar data labels will appear if the BarChartModel's InsideBarLabelContent 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 bar elements will use the labels in the order specified (i.e. the 1st data label variable will be paired with the 1st bar variable, the 2nd data label variable will be paired with the 2nd bar variable, and same for the 3rd etc.) If more data label variables are specified than bar variables then the excess data labels are ignored

Parameters:
newVariable - the variable identifying the TableModel data column and associated properties
See Also:
getInsideBarLabelVariable(), BarChartModel.setInsideBarLabelContent(int)

getInsideBarLabelVariable

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

Returns:
the variable identifying the TableModel data column and associated properties
See Also:
setInsideBarLabelVariable(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");
    barChart.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 BarChart 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[])

apply

public void apply(BarChartTableDataModel 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.


equals

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

The result is true if and only if the argument is not null and is a BarChartTableDataModel 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 BarChartTableDataModel
Returns:
true if the objects are the same; false otherwise.

hashCode

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

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



Copyright © 2009 SAS Institute Inc. All Rights Reserved.