Package weka.gui.arffviewer

# Class ArffTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
weka.gui.arffviewer.ArffTableModel

All Implemented Interfaces:
  `Serializable`, `TableModel`, `Undoable`

public class ArffTableModel extends DefaultTableModel implements Undoable
The model for the Arff-Viewer.

Version:
  $Revision: 15572 $
Author:
  FracPete (fracpete at waikato dot ac dot nz)
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ArffTableModel(String filename, AbstractFileLoader... loaders)`
  initializes the object and loads the given file
  `ArffTableModel(Instances data)`
  initializes the model with the given data

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addTableModelListener(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(String name)`
  returns the column of the given attribute name, -1 if not found
  `int`
  `getAttributeIndex(int columnIndex)`
  Returns the attribute index for the given column index.
  `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
  `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
  `boolean`
  `getShowAttributeIndex()`
  Returns whether to display the attribute index in the header.
  `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
  `Object`
  `getValueAt(int rowIndex, int columnIndex)`
  returns the value for the cell at columnIndex and rowIndex
  `void`
  `insertInstance(int index)`
  `void`
  `insertInstance(int index, boolean notify)`
  `boolean`
  `isAttribute(int columnIndex)`
  Check if given index is in range of column indices for attributes
  `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(TableModelEvent e)`
  notfies all listener of the change of the model
  `void`
  `removeTableModelListener(TableModelListener l)`
  removes a listener from the list that is notified each time a change to the data model occurs
  `void`
  `renameAttributeAt(int columnIndex, String newName)`
  renames the attribute at the given col index
  `void`
  `setAttributeWeightAt(int columnIndex, double weight)`
  set the attribute weight at the given col index
  `void`
  `setInstances(Instances data)`
  sets the data
  `void`
  `setInstanceWeight(int index, double weight)`
  `void`
  `setInstanceWeight(int index, double weight, boolean notify)`
  `void`
  `setNotificationEnabled(boolean enabled)`
  sets whether the notification of changes is enabled
  `void`
  `setReadOnly(boolean value)`
  sets whether the model is read-only
  `void`
  `setShowAttributeIndex(boolean value)`
  Sets whether to display the attribute index in the header.
  `void`
  `setUndoEnabled(boolean enabled)`
  sets whether undo support is enabled
  `void`
  `setValueAt(Object aValue, int rowIndex, int columnIndex)`
  sets the value in the cell at columnIndex and rowIndex to aValue.
  `void`
  `setValueAt(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 (ascending)
  `void`
  `sortInstances(int columnIndex, boolean ascending)`
  sorts the instances via the given attribute
  `void`
  `undo()`
  undoes the last action

  ### Methods inherited from class javax.swing.table.DefaultTableModel

  `addColumn, addColumn, addColumn, addRow, addRow, getDataVector, insertRow, insertRow, moveRow, newDataAvailable, newRowsAdded, removeRow, rowsRemoved, setColumnCount, setColumnIdentifiers, setColumnIdentifiers, setDataVector, setDataVector, setNumRows, setRowCount`

  ### Methods inherited from class javax.swing.table.AbstractTableModel

  `findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ArffTableModel

    public ArffTableModel(String filename, AbstractFileLoader... loaders)
    initializes the object and loads the given file
    Parameters:
      `filename` - the file to load
      `loaders` - optional varargs for a loader to use

  - ### ArffTableModel

    public ArffTableModel(Instances data)
    initializes the model with the given data
    Parameters:
      `data` - the data to use

- ## Method Details

  - ### 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

  - ### getAttributeIndex

    public int getAttributeIndex(int columnIndex)
    Returns the attribute index for the given column index.
    Parameters:
      `columnIndex` - the column index
    Returns:
      the attribute index

  - ### isAttribute

    public boolean isAttribute(int columnIndex)
    Check if given index is in range of column indices for attributes
    Parameters:
      `columnIndex` - the column index
    Returns:
      true if the column corresponds to attribute

  - ### 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, String newName)
    renames the attribute at the given col index
    Parameters:
      `columnIndex` - the index of the column
      `newName` - the new name of the attribute

  - ### setAttributeWeightAt

    public void setAttributeWeightAt(int columnIndex, double weight)
    set the attribute weight at the given col index
    Parameters:
      `columnIndex` - the index of the column
      `weight` - the new weight 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

  - ### setInstanceWeight

    public void setInstanceWeight(int index, double weight)

  - ### setInstanceWeight

    public void setInstanceWeight(int index, double weight, boolean notify)

  - ### insertInstance

    public void insertInstance(int index)

  - ### insertInstance

    public void insertInstance(int index, boolean notify)

  - ### 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 (ascending)
    Parameters:
      `columnIndex` - the index of the column

  - ### sortInstances

    public void sortInstances(int columnIndex, boolean ascending)
    sorts the instances via the given attribute
    Parameters:
      `columnIndex` - the index of the column
      `ascending` - ascending if true, otherwise descending

  - ### getAttributeColumn

    public int getAttributeColumn(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 Class<?> getColumnClass(int columnIndex)
    returns the most specific superclass for all the cell values in the column (always String)
    Specified by:
      `getColumnClass` in interface `TableModel`
    Overrides:
      `getColumnClass` in class `AbstractTableModel`
    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 `TableModel`
    Overrides:
      `getColumnCount` in class `DefaultTableModel`
    Returns:
      the number of columns

  - ### getColumnName

    public String getColumnName(int columnIndex)
    returns the name of the column at columnIndex
    Specified by:
      `getColumnName` in interface `TableModel`
    Overrides:
      `getColumnName` in class `DefaultTableModel`
    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 `TableModel`
    Overrides:
      `getRowCount` in class `DefaultTableModel`
    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 Object getValueAt(int rowIndex, int columnIndex)
    returns the value for the cell at columnIndex and rowIndex
    Specified by:
      `getValueAt` in interface `TableModel`
    Overrides:
      `getValueAt` in class `DefaultTableModel`
    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 `TableModel`
    Overrides:
      `isCellEditable` in class `DefaultTableModel`
    Parameters:
      `rowIndex` - the index of the row
      `columnIndex` - the index of the column
    Returns:
      true if the cell is editable

  - ### setValueAt

    public void setValueAt(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 `TableModel`
    Overrides:
      `setValueAt` in class `DefaultTableModel`
    Parameters:
      `aValue` - the new value
      `rowIndex` - the row index
      `columnIndex` - the column index

  - ### setValueAt

    public void setValueAt(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(TableModelListener l)
    adds a listener to the list that is notified each time a change to data model occurs
    Specified by:
      `addTableModelListener` in interface `TableModel`
    Overrides:
      `addTableModelListener` in class `AbstractTableModel`
    Parameters:
      `l` - the listener to add

  - ### removeTableModelListener

    public void removeTableModelListener(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 `TableModel`
    Overrides:
      `removeTableModelListener` in class `AbstractTableModel`
    Parameters:
      `l` - the listener to remove

  - ### notifyListener

    public void notifyListener(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)`

  - ### setShowAttributeIndex

    public void setShowAttributeIndex(boolean value)
    Sets whether to display the attribute index in the header.
    Parameters:
      `value` - if true then the attribute indices are displayed in the table header

  - ### getShowAttributeIndex

    public boolean getShowAttributeIndex()
    Returns whether to display the attribute index in the header.
    Returns:
      true if the attribute indices are displayed in the table header