weka.gui.arffviewer
Class ArffTableModel

java.lang.Object
  extended by weka.gui.arffviewer.ArffTableModel
All Implemented Interfaces:
javax.swing.table.TableModel, Undoable

public class ArffTableModel
extends java.lang.Object
implements javax.swing.table.TableModel, Undoable

The model for the Arff-Viewer.

Version:
$Revision: 7554 $
Author:
FracPete (fracpete at waikato dot ac dot nz)

Constructor Summary
ArffTableModel(Instances data)
          initializes the model with the given data
ArffTableModel(java.lang.String filename)
          initializes the object and loads the given file
 
Method Summary
 void addTableModelListener(javax.swing.event.TableModelListener l)
          adds a listener to the list that is notified each time a change to data model occurs
 void addUndoPoint()
          adds an undo point to the undo history, if the undo support is enabled
 void attributeAsClassAt(int columnIndex)
          sets the attribute at the given col index as the new class attribute, i.e.
 boolean canUndo()
          returns whether an undo is possible, i.e.
 void clearUndo()
          removes the undo history
 void deleteAttributeAt(int columnIndex)
          deletes the attribute at the given col index.
 void deleteAttributeAt(int columnIndex, boolean notify)
          deletes the attribute at the given col index
 void deleteAttributes(int[] columnIndices)
          deletes the attributes at the given indices
 void deleteInstanceAt(int rowIndex)
          deletes the instance at the given index
 void deleteInstanceAt(int rowIndex, boolean notify)
          deletes the instance at the given index
 void deleteInstances(int[] rowIndices)
          deletes the instances at the given positions
 Attribute getAttributeAt(int columnIndex)
          returns the attribute at the given index, can be NULL if not an attribute column
 int getAttributeColumn(java.lang.String name)
          returns the column of the given attribute name, -1 if not found
 java.lang.Class getColumnClass(int columnIndex)
          returns the most specific superclass for all the cell values in the column (always String)
 int getColumnCount()
          returns the number of columns in the model
 java.lang.String getColumnName(int columnIndex)
          returns the name of the column at columnIndex
 Instances getInstances()
          returns the data
 double getInstancesValueAt(int rowIndex, int columnIndex)
          returns the double value of the underlying Instances object at the given position, -1 if out of bounds
 int getRowCount()
          returns the number of rows in the model
 int getType(int columnIndex)
          returns the TYPE of the attribute at the given position
 int getType(int rowIndex, int columnIndex)
          returns the TYPE of the attribute at the given position
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
          returns the value for the cell at columnindex and rowIndex
 boolean isCellEditable(int rowIndex, int columnIndex)
          returns true if the cell at rowindex and columnindexis editable
 boolean isMissingAt(int rowIndex, int columnIndex)
          checks whether the value at the given position is missing
 boolean isNotificationEnabled()
          returns whether the notification of changes is enabled
 boolean isReadOnly()
          returns whether the model is read-only
 boolean isUndoEnabled()
          returns whether undo support is enabled
 void notifyListener(javax.swing.event.TableModelEvent e)
          notfies all listener of the change of the model
 void removeTableModelListener(javax.swing.event.TableModelListener l)
          removes a listener from the list that is notified each time a change to the data model occurs
 void renameAttributeAt(int columnIndex, java.lang.String newName)
          renames the attribute at the given col index
 void setInstances(Instances data)
          sets the data
 void setNotificationEnabled(boolean enabled)
          sets whether the notification of changes is enabled
 void setReadOnly(boolean value)
          sets whether the model is read-only
 void setUndoEnabled(boolean enabled)
          sets whether undo support is enabled
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
          sets the value in the cell at columnIndex and rowIndex to aValue.
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex, boolean notify)
          sets the value in the cell at columnIndex and rowIndex to aValue.
 void sortInstances(int columnIndex)
          sorts the instances via the given attribute
 void undo()
          undoes the last action
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArffTableModel

public ArffTableModel(java.lang.String filename)
initializes the object and loads the given file

Parameters:
filename - the file to load

ArffTableModel

public ArffTableModel(Instances data)
initializes the model with the given data

Parameters:
data - the data to use
Method Detail

isNotificationEnabled

public boolean isNotificationEnabled()
returns whether the notification of changes is enabled

Returns:
true if notification of changes is enabled

setNotificationEnabled

public void setNotificationEnabled(boolean enabled)
sets whether the notification of changes is enabled

Parameters:
enabled - enables/disables the notification

isUndoEnabled

public boolean isUndoEnabled()
returns whether undo support is enabled

Specified by:
isUndoEnabled in interface Undoable
Returns:
true if undo support is enabled

setUndoEnabled

public void setUndoEnabled(boolean enabled)
sets whether undo support is enabled

Specified by:
setUndoEnabled in interface Undoable
Parameters:
enabled - whether to enable/disable undo support

isReadOnly

public boolean isReadOnly()
returns whether the model is read-only

Returns:
true if model is read-only

setReadOnly

public void setReadOnly(boolean value)
sets whether the model is read-only

Parameters:
value - if true the model is set to read-only

setInstances

public void setInstances(Instances data)
sets the data

Parameters:
data - the data to use

getInstances

public Instances getInstances()
returns the data

Returns:
the current data

getAttributeAt

public Attribute getAttributeAt(int columnIndex)
returns the attribute at the given index, can be NULL if not an attribute column

Parameters:
columnIndex - the index of the column
Returns:
the attribute at the position

getType

public int getType(int columnIndex)
returns the TYPE of the attribute at the given position

Parameters:
columnIndex - the index of the column
Returns:
the attribute type

getType

public int getType(int rowIndex,
                   int columnIndex)
returns the TYPE of the attribute at the given position

Parameters:
rowIndex - the index of the row
columnIndex - the index of the column
Returns:
the attribute type

deleteAttributeAt

public void deleteAttributeAt(int columnIndex)
deletes the attribute at the given col index. notifies the listeners.

Parameters:
columnIndex - the index of the attribute to delete

deleteAttributeAt

public void deleteAttributeAt(int columnIndex,
                              boolean notify)
deletes the attribute at the given col index

Parameters:
columnIndex - the index of the attribute to delete
notify - whether to notify the listeners

deleteAttributes

public void deleteAttributes(int[] columnIndices)
deletes the attributes at the given indices

Parameters:
columnIndices - the column indices

renameAttributeAt

public void renameAttributeAt(int columnIndex,
                              java.lang.String newName)
renames the attribute at the given col index

Parameters:
columnIndex - the index of the column
newName - the new name of the attribute

attributeAsClassAt

public void attributeAsClassAt(int columnIndex)
sets the attribute at the given col index as the new class attribute, i.e. it moves it to the end of the attributes

Parameters:
columnIndex - the index of the column

deleteInstanceAt

public void deleteInstanceAt(int rowIndex)
deletes the instance at the given index

Parameters:
rowIndex - the index of the row

deleteInstanceAt

public void deleteInstanceAt(int rowIndex,
                             boolean notify)
deletes the instance at the given index

Parameters:
rowIndex - the index of the row
notify - whether to notify the listeners

deleteInstances

public void deleteInstances(int[] rowIndices)
deletes the instances at the given positions

Parameters:
rowIndices - the indices to delete

sortInstances

public void sortInstances(int columnIndex)
sorts the instances via the given attribute

Parameters:
columnIndex - the index of the column

getAttributeColumn

public int getAttributeColumn(java.lang.String name)
returns the column of the given attribute name, -1 if not found

Parameters:
name - the name of the attribute
Returns:
the column index or -1 if not found

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
returns the most specific superclass for all the cell values in the column (always String)

Specified by:
getColumnClass in interface javax.swing.table.TableModel
Parameters:
columnIndex - the column index
Returns:
the class of the column

getColumnCount

public int getColumnCount()
returns the number of columns in the model

Specified by:
getColumnCount in interface javax.swing.table.TableModel
Returns:
the number of columns

getColumnName

public java.lang.String getColumnName(int columnIndex)
returns the name of the column at columnIndex

Specified by:
getColumnName in interface javax.swing.table.TableModel
Parameters:
columnIndex - the index of the column
Returns:
the name of the column

getRowCount

public int getRowCount()
returns the number of rows in the model

Specified by:
getRowCount in interface javax.swing.table.TableModel
Returns:
the number of rows

isMissingAt

public boolean isMissingAt(int rowIndex,
                           int columnIndex)
checks whether the value at the given position is missing

Parameters:
rowIndex - the row index
columnIndex - the column index
Returns:
true if the value at the position is missing

getInstancesValueAt

public double getInstancesValueAt(int rowIndex,
                                  int columnIndex)
returns the double value of the underlying Instances object at the given position, -1 if out of bounds

Parameters:
rowIndex - the row index
columnIndex - the column index
Returns:
the underlying value in the Instances object

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)
returns the value for the cell at columnindex and rowIndex

Specified by:
getValueAt in interface javax.swing.table.TableModel
Parameters:
rowIndex - the row index
columnIndex - the column index
Returns:
the value at the position

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
returns true if the cell at rowindex and columnindexis editable

Specified by:
isCellEditable in interface javax.swing.table.TableModel
Parameters:
rowIndex - the index of the row
columnIndex - the index of the column
Returns:
true if the cell is editable

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int rowIndex,
                       int columnIndex)
sets the value in the cell at columnIndex and rowIndex to aValue. but only the value and the value can be changed

Specified by:
setValueAt in interface javax.swing.table.TableModel
Parameters:
aValue - the new value
rowIndex - the row index
columnIndex - the column index

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int rowIndex,
                       int columnIndex,
                       boolean notify)
sets the value in the cell at columnIndex and rowIndex to aValue. but only the value and the value can be changed

Parameters:
aValue - the new value
rowIndex - the row index
columnIndex - the column index
notify - whether to notify the listeners

addTableModelListener

public void addTableModelListener(javax.swing.event.TableModelListener l)
adds a listener to the list that is notified each time a change to data model occurs

Specified by:
addTableModelListener in interface javax.swing.table.TableModel
Parameters:
l - the listener to add

removeTableModelListener

public void removeTableModelListener(javax.swing.event.TableModelListener l)
removes a listener from the list that is notified each time a change to the data model occurs

Specified by:
removeTableModelListener in interface javax.swing.table.TableModel
Parameters:
l - the listener to remove

notifyListener

public void notifyListener(javax.swing.event.TableModelEvent e)
notfies all listener of the change of the model

Parameters:
e - the event to send to the listeners

clearUndo

public void clearUndo()
removes the undo history

Specified by:
clearUndo in interface Undoable

canUndo

public boolean canUndo()
returns whether an undo is possible, i.e. whether there are any undo points saved so far

Specified by:
canUndo in interface Undoable
Returns:
returns TRUE if there is an undo possible

undo

public void undo()
undoes the last action

Specified by:
undo in interface Undoable

addUndoPoint

public void addUndoPoint()
adds an undo point to the undo history, if the undo support is enabled

Specified by:
addUndoPoint in interface Undoable
See Also:
isUndoEnabled(), setUndoEnabled(boolean)