|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectdata.DataSheet
public class DataSheet
A representation of the data imported from a text file.
Everytime the user imports data from a text file the data is stored in
a DataSheet. The data sheet is kind of wrapper class for the collection
of all rows in the text file. Each row represents one Design
.
In addition to storing the Designs and providing the possibility to display
them in a JTable by implementing TableModel, the DataSheet class also
keeps track of the Parameters in the data set. Each column represents one
Parameter
.
The third main function of this class is to actually read the data from a text file. While doing this, the DataSheet also collects some additional information, such as
Finally, the DataSheet also keeps track of all Cluster
s. However, it does not
store the information to which Cluster each Design belongs. This information is stored in
the Designs themselves. It is important to understand this because it means that whenever
updateData(String, boolean, ProgressMonitor)
is called this information is lost.
Field Summary | |
---|---|
private ClusterSet |
clusterSet
The cluster set. |
private java.util.Vector<Design> |
data
The Vector containing all Designs. |
private java.lang.String |
delimiter
The delimiter used for the data import. |
private java.util.Vector<javax.swing.event.TableModelListener> |
listeners
Table Model Listeners to enable updating the GUI. |
private java.util.Vector<Parameter> |
parameters
The parameters. |
(package private) static boolean |
printLog
Flag to enable debug message printing for this class. |
(package private) static long |
serialVersionUID
The version tracking unique identifier for Serialization. |
Constructor Summary | |
---|---|
DataSheet(java.lang.String pathToInputFile,
boolean dataHasHeaders,
Main mainWindow,
javax.swing.ProgressMonitor progressMonitor)
Instantiates a new data sheet and fills it with data from a given file. |
Method Summary | |
---|---|
void |
addDesign(Design design)
Adds a Design to the DataSheet. |
void |
addTableModelListener(javax.swing.event.TableModelListener l)
|
void |
evaluateBoundsForAllDesigns(Chart chart)
Evaluate each Design to check whether it is within all axis bounds. |
void |
fireTableChanged(int firstRow,
int lastRow,
int column,
boolean chartRebuildRequired,
boolean chartRepaintRequired,
boolean dataPanelUpdateRequired,
boolean[] axisAutofitRequired,
boolean[] axisResetFilterRequired,
boolean[] axisApplyFiltersRequired)
Fire table changed. |
ClusterSet |
getClusterSet()
Gets the cluster set. |
java.lang.Class<?> |
getColumnClass(int arg0)
|
int |
getColumnCount()
|
java.lang.String |
getColumnName(int columnIndex)
|
Design |
getDesign(int i)
Gets the Design with index i. |
int |
getDesignCount()
Gets the design count. |
private int |
getLineCount(java.lang.String pathToInputFile)
Opens a text file and counts the number of lines. |
double |
getMaxValueOf(Parameter param)
Gets the maximum value of a given Parameter in the DataSheet. |
double |
getMinValueOf(Parameter param)
Gets the minimum value of a given Parameter. |
Parameter |
getParameter(int index)
Gets the Parameter with the index index. |
Parameter |
getParameter(java.lang.String parameterName)
Gets the Parameter with the name parameterName. |
int |
getParameterCount()
Gets the Parameter count. |
java.lang.String |
getParameterName(int index)
Gets the Parameter name of the Parameter with index index. |
int |
getRowCount()
|
private java.lang.String |
getUniqueParameterName(java.lang.String nameSuggestion)
Checks whether a given String is a unique parameter name using isNameUnique(String) . |
java.lang.Object |
getValueAt(int rowIndex,
int columnIndex)
|
private void |
importData(java.lang.String pathToInputFile,
boolean dataHasHeaders,
javax.swing.ProgressMonitor progressMonitor)
Fills the DataSheet with data from a given file and assigns Parameter names.r If dataHasHeaders is true, the Parameter names are read from the first line. |
private boolean[] |
initialiseBooleanArray(boolean value)
Function to create an array of booleans set to a userdefined initial value with the same length as the number of parameters. |
boolean |
isCellEditable(int rowIndex,
int columnIndex)
|
private boolean |
isNameUnique(java.lang.String name)
Checks if a give String is a unique Parameter name. |
private void |
log(java.lang.String message)
Prints debug information to stdout when printLog is set to true. |
void |
moveParameter(int oldIndex,
int newIndex)
Function to reorder the parameters in the datasheet |
private void |
readDesignsFromFile(javax.swing.ProgressMonitor progressMonitor,
java.io.BufferedReader f,
int idCounter)
|
void |
removeDesigns(int[] designsToRemove)
Removes a Design from the DataSheet. |
Parameter |
removeParameter(java.lang.String parameterName)
Removes the Parameter with the name parameterName. |
void |
removeTableModelListener(javax.swing.event.TableModelListener l)
|
void |
setClusterSet(ClusterSet clusterSet)
Sets the cluster set. |
void |
setValueAt(java.lang.Object arg0,
int rowIndex,
int columnIndex)
|
void |
updateData(java.lang.String pathToInputFile,
boolean dataHasHeaders,
javax.swing.ProgressMonitor progressMonitor)
Updates the DataSheet with Data from a given file and assigns Parameter names. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static final long serialVersionUID
static final boolean printLog
private ClusterSet clusterSet
private java.util.Vector<Design> data
private java.util.Vector<Parameter> parameters
private transient java.util.Vector<javax.swing.event.TableModelListener> listeners
private java.lang.String delimiter
Constructor Detail |
---|
public DataSheet(java.lang.String pathToInputFile, boolean dataHasHeaders, Main mainWindow, javax.swing.ProgressMonitor progressMonitor) throws java.io.IOException
Uses importData(String, boolean, ProgressMonitor)
for the step of reading the data.
pathToInputFile
- the path to the input filedataHasHeaders
- specifies whether the data has headers to read the Parameter names from.
java.io.IOException
- Signals that an I/O exception has occurred.Method Detail |
---|
private void importData(java.lang.String pathToInputFile, boolean dataHasHeaders, javax.swing.ProgressMonitor progressMonitor) throws java.io.IOException
If dataHasHeaders is true, the Parameter names are read from the first line. Otherwise the parameter names are created automatically.
pathToInputFile
- the path to the input filedataHasHeaders
- specifies whether the data has headers to read the Parameter names from.progressMonitor
- the progress monitor.
java.io.IOException
- Signals that an I/O exception has occurred.public void updateData(java.lang.String pathToInputFile, boolean dataHasHeaders, javax.swing.ProgressMonitor progressMonitor) throws java.io.IOException, InconsistentDataException
If dataHasHeaders is true, the Parameter names are read from the first line. Otherwise the parameter names are created automatically.
The difference of updating vs. importing is that all Charts are kept. This requires the new data to have the same number of parameters as the previous one. Otherwise the InconsistentDataException is thrown.
pathToInputFile
- the path to the input filedataHasHeaders
- specifies whether the data has headers to read the Parameter names from.progressMonitor
- the progress monitor.
java.io.IOException
- Signals that an I/O exception has occurred.
InconsistentDataException
- if the user tries to import data that does not have the same number
of columns as the current DataSheet.private void readDesignsFromFile(javax.swing.ProgressMonitor progressMonitor, java.io.BufferedReader f, int idCounter) throws java.io.IOException
progressMonitor
- the Progress Monitor to be updated during importf
- a BufferedReaderidCounter
- The current value of the design id incremental counter
java.io.IOException
public java.lang.Class<?> getColumnClass(int arg0)
getColumnClass
in interface javax.swing.table.TableModel
public int getColumnCount()
getColumnCount
in interface javax.swing.table.TableModel
public int getRowCount()
getRowCount
in interface javax.swing.table.TableModel
public java.lang.String getColumnName(int columnIndex)
getColumnName
in interface javax.swing.table.TableModel
public java.lang.Object getValueAt(int rowIndex, int columnIndex)
getValueAt
in interface javax.swing.table.TableModel
public void setValueAt(java.lang.Object arg0, int rowIndex, int columnIndex)
setValueAt
in interface javax.swing.table.TableModel
public boolean isCellEditable(int rowIndex, int columnIndex)
isCellEditable
in interface javax.swing.table.TableModel
public void addTableModelListener(javax.swing.event.TableModelListener l)
addTableModelListener
in interface javax.swing.table.TableModel
public void removeTableModelListener(javax.swing.event.TableModelListener l)
removeTableModelListener
in interface javax.swing.table.TableModel
public void fireTableChanged(int firstRow, int lastRow, int column, boolean chartRebuildRequired, boolean chartRepaintRequired, boolean dataPanelUpdateRequired, boolean[] axisAutofitRequired, boolean[] axisResetFilterRequired, boolean[] axisApplyFiltersRequired)
private int getLineCount(java.lang.String pathToInputFile) throws java.io.FileNotFoundException, java.io.IOException
pathToInputFile
- the path to the input file
java.io.IOException
- Signals that an I/O exception has occurred.
java.io.FileNotFoundException
- Signals that the the file was not found under the given path
of columns as the current DataSheet.public Design getDesign(int i)
i
- the index
public void addDesign(Design design)
design
- the Designpublic void removeDesigns(int[] designsToRemove)
designsToRemove
- an array of indeces that indicate the designs to removepublic int getParameterCount()
public java.lang.String getParameterName(int index)
index
- the index
public Parameter getParameter(int index)
index
- the Parameter index
public Parameter getParameter(java.lang.String parameterName)
parameterName
- the Parameter name
public Parameter removeParameter(java.lang.String parameterName)
parameterName
- the Parameter name
public double getMaxValueOf(Parameter param)
param
- the Parameter
public double getMinValueOf(Parameter param)
param
- the parameter
public int getDesignCount()
private java.lang.String getUniqueParameterName(java.lang.String nameSuggestion)
isNameUnique(String)
. Returns a unique
name if the provided string is not unique and the unchanged String otherwise.
nameSuggestion
- the name that should be checked
private boolean isNameUnique(java.lang.String name)
name
- the name to check
private void log(java.lang.String message)
message
- the messagepublic ClusterSet getClusterSet()
public void setClusterSet(ClusterSet clusterSet)
clusterSet
- the new cluster setpublic void evaluateBoundsForAllDesigns(Chart chart)
chart
- the chartDesign
public void moveParameter(int oldIndex, int newIndex)
oldIndex
- the index of the parameter to be movednewIndex
- the target index for the parameter to be movedprivate boolean[] initialiseBooleanArray(boolean value)
value
- the initial value for all element
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |