com.sas.graphics.components.waterfallchart
Class WaterfallChartTableDataModel

com.sas.graphics.components.waterfallchart.WaterfallChartTableDataModel

public class WaterfallChartTableDataModel

A WaterfallChartTableDataModel encapsulates relational data from a javax.swing.table.TableModel and maps the TableModel's data columns onto a WaterfallChart 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 WaterfallChart displays the data.

By default when generating a graph, a WaterfallChart summarizes the data from a WaterfallChartTableDataModel.

Topics:
Basic Charts
Data Summarization and Statistic Calculation
Bar Styles Based on Data Values
Numeric Categorizations
Multiple Response Variables
Multiple Charts in Columns and/or Rows
Valid Variable Roles for a WaterfallChartTableDataModel
Behavior
Events
Error Handling
Samples:
Swing-based Samples
Servlet-based Samples

Since:
SAS 9.1
See Also:
WaterfallChartDataModel, WaterfallChart

Constructor Summary
WaterfallChartTableDataModel()
          Default Constructor
WaterfallChartTableDataModel(javax.swing.table.TableModel newModel)
          Constructor with assigned model
 
Method Summary
 void apply(WaterfallChartTableDataModel 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 WaterfallChartTableDataModel.
 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 WaterfallChart.
 Variable getOutsideBarLabelVariable()
          Returns the data column that was most recently set in the OutsideBarLabel role by the setOutsideBarLabelVariable() 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.
 int hashCode()
          Computes the hash code for this WaterfallChartTableDataModel.
 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 WaterfallChart 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 setModel(javax.swing.table.TableModel newModel)
          Sets the TableModel containing the data values to be displayed by the WaterfallChart.
 void setOutsideBarLabelVariable(Variable newVariable)
          Sets the data column whose values appear as bar labels drawn just outside of the bar element.
 void setResponseVariable(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 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.
 
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

WaterfallChartTableDataModel

public WaterfallChartTableDataModel()
Default Constructor


WaterfallChartTableDataModel

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

Method Detail

apply

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

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

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

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)

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 WaterfallChart 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. waterfallChartTableDataModel.setCategorySortVariable(waterfallChartTableDataModel.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 different response data when multiple response variables have been designated. For that reason, the styleByVaraible property is only applicable when there are 0 or 1 response variables assigned.

Please refer to the colorPaletteType property on the WaterfallChartModel 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(), WaterfallChartModel.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)

setResponseVariable

public void setResponseVariable(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 response axis.

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()

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)

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 WaterfallChartModel'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(), WaterfallChartModel.setOutsideBarLabelContent(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)

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");
    waterfallChart.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 WaterfallChart 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 WaterfallChartTableDataModel.

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

hashCode

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

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



Copyright © 2009 SAS Institute Inc. All Rights Reserved.