Inheritance diagram for datavisualizer::StandTableDataRequest:
Public Member Functions | |
StandTableDataRequest (DetailedOutputFileManager oManager, String sChartName, int iTableType) | |
Constructor. | |
void | actionPerformed (java.awt.event.ActionEvent oEvent) |
Respons to the button clicks for this class's chart window. | |
boolean | WantAnyTreeFloats () |
This wants diameter values for all trees. | |
void | AddTreeFloatDataMemberCode (int iSpecies, int iType, String sLabel, int iCode) |
Accepts a tree float data member code. | |
void | AddTreeFloatData (int iSpecies, int iType, int iCode, float fVal) |
Accepts a tree float data member value. | |
Static Public Attributes | |
static final int | BASAL_AREA = 1 |
Basal area stand table. | |
static final int | DENSITY = 2 |
Density stand table. | |
Protected Member Functions | |
void | WriteTables () throws javawrapper.ModelException |
This writes the tables. | |
void | WriteChartDataToFile (java.io.FileWriter jOut) throws java.io. IOException |
Saves the data in the current table as a tab-delimited text file. | |
Package Functions | |
void | UpdateChart (Legend oLegend) throws javawrapper.ModelException |
Does nothing unless the number of timesteps is different, in which case the table is recreated. | |
JInternalFrame | DrawChart (Legend oLegend, String sChartTitle) throws javawrapper.ModelException |
Draws the table. | |
void | ClearData () throws javawrapper.ModelException |
Does nothing, because this table doesn't operate on the detailed output file timescale. | |
Private Member Functions | |
JPanel | MakeTablePanel (int iSpecies) throws javawrapper.ModelException |
Makes a panel with a table for a species. | |
JPanel | MakeSizeClassPanel () throws javawrapper.ModelException |
Makes the panel containing the size class and species controls. | |
Private Attributes | |
DetailedOutputLegend | m_oLegend = null |
The legend for the detailed output file whose data goes in the table. | |
Object[][][] | mp_oTableData = null |
The data we will put into the table; species by rows by columns. | |
int[][] | mp_iDbhCode |
Holds the data codes for DBH. | |
int[][] | mp_iHeightCode |
Holds the data codes for height. | |
JComboBox | m_jSpeciesBox |
Box that holds our species list. | |
String[] | mp_sHeaders |
Column headers. | |
JTextField | m_jNumSizeClasses = new JTextField("10") |
Field displaying the number of bins in the histogram. | |
JTextField | m_jSizeClassSize = new JTextField("5.0") |
Field displaying the bin size in the histogram. | |
float[] | mp_fSizeClasses |
List of size class upper boundaries. | |
float[][] | mp_fTallestTrees |
Sorted list of the tallest trees: array 1 = species, array 2 = list of trees. | |
float[] | mp_fTotalDBH |
Total of DBH, for calculating average, by species. | |
float[] | mp_fNumDBH |
Number of DBHs added, for calculating average, by species. | |
float | m_fPlotAreaInHectares |
Area of the plot, in hectares. | |
float | m_fSizeClassSize = (float) 5.0 |
Size of DBH size classes, in cm. | |
int | m_iNumSpecies |
Number of total species. | |
int | m_iNumSizeClasses = 10 |
Number of DBH size classes to display in table. | |
int | m_iCurrentTimestep = -1 |
The current timestep. | |
int | m_iNumTimesteps = -1 |
The total number of timesteps. | |
int | m_iTableType |
The type of table - either basal area or density. | |
boolean | m_bFirstTime = true |
So we can display the first time. |
The tabulation of density and basal area data is based on the DBH value for each tree life history stage (so seedlings aren't allowed). For density, the number of diameter values encountered is counted; for basal area, the individual basal areas calculated from DBH are totaled. All values are displayed in per hectare units. These values are broken up by size class as specified by the user. The average height of the tallest trees will also be included in the table if height was saved in the detailed output file.
This chart is different from other charts in that it displays data from all timesteps at once, instead of one timestep at a time. Thus, it tends to ignore normal chart drawing requests and has its own code to force parsing of all timestep files in a detailed output package at once.
Technically, density data could be extracted from any tree data member, since counting up the total is all that is required. I didn't do it that way because I'm a little lazy, and I'll wait for a hue and cry from the users before unnecessarily complicating my code.
Copyright: Copyright (c) Charles D. Canham 2003 Company: Institute of Ecosystem Studies
|
Constructor. Declares all the arrays.
Edit history: ------------------ October 29, 2004: Created (LEM) March 23, 2006: Updated with species-specific stuff (LEM) |
|
Respons to the button clicks for this class's chart window.
Reimplemented from datavisualizer::DataRequest. |
|
Accepts a tree float data member value. If it matches our code, we'll increment either the density count (if m_iTableType = DENSITY) or the basal area total.
Edit history: ------------------ October 29, 2004: Created (LEM) Reimplemented from datavisualizer::DataRequest. |
|
Accepts a tree float data member code. We're looking for DBH and height.
Edit history: ------------------ October 29, 2004: Created (LEM) Reimplemented from datavisualizer::DataRequest. |
|
Does nothing, because this table doesn't operate on the detailed output file timescale.
Edit history: ------------------ October 29, 2004: Created (LEM) Implements datavisualizer::DataRequest. |
|
Draws the table. Initially, there will be no table; just a place for a user to enter size class information.
Edit history: ------------------ October 29, 2004: Created (LEM) Implements datavisualizer::DataRequest. |
|
Makes the panel containing the size class and species controls.
|
|
Makes a panel with a table for a species.
|
|
Does nothing unless the number of timesteps is different, in which case the table is recreated. This chart does not respond to regular chart update events, since it already shows data for all timesteps.
Edit history: ------------------ October 29, 2004: Created (LEM) November 18, 2004: Updated for real-time data visualization (LEM) Implements datavisualizer::DataRequest. |
|
This wants diameter values for all trees.
Edit history: ------------------ October 29, 2004: Created (LEM) Reimplemented from datavisualizer::DataRequest. |
|
Saves the data in the current table as a tab-delimited text file.
Edit history: ------------------ November 2, 2004: Created (LEM) March 23, 2006: Changed to make species-specific (LEM) Implements datavisualizer::DataRequest. |
|
This writes the tables. It forces the DetailedOutputFileManager to move through each timestep so the data can be collected. Then it formats the table into the chart window.
|
|
The current timestep. This helps process an entire detailed output file. It also lets this class know when to ignore offered data - whenever this value is set to -1, some other chart event triggered the parse. |
|
The total number of timesteps. We keep track of this so we know if something has changed (as in real-time data visualization) so we can update appropriately. |
|
The type of table - either basal area or density. The value is either BASAL_AREA or DENSITY. |
|
List of size class upper boundaries. Sized m_iNumSizeClasses. |
|
Holds the data codes for DBH. Array indexes are #1 - type and #2 - species. |
|
Holds the data codes for height. Array indexes are #1 - type and #2 - species. |