weka.gui.arffviewer

## Class ArffPanel

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - weka.gui.arffviewer.ArffPanel

- All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, Undoable

      public class ArffPanel
      extends javax.swing.JPanel
      implements java.awt.event.ActionListener, javax.swing.event.ChangeListener, java.awt.event.MouseListener, Undoable

  A Panel representing an ARFF-Table and the associated filename.
  Version:
    $Revision: 14908 $
  Author:
    FracPete (fracpete at waikato dot ac dot nz)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.BaselineResizeBehavior`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `TAB_INSTANCES` the name of the tab for instances that were set directly

    - ### Fields inherited from class javax.swing.JComponent

      `TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ArffPanel()` initializes the panel with no data
    `ArffPanel(Instances data)` initializes the panel with the given data
    `ArffPanel(java.lang.String filename, AbstractFileLoader... loaders)` initializes the panel and loads the specified file

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionPerformed(java.awt.event.ActionEvent e)` invoked when an action occurs
    `void` | `addChangeListener(javax.swing.event.ChangeListener l)` Adds a ChangeListener to the panel
    `void` | `addInstance()` Add an instance at the currently selected index.
    `void` | `addInstanceAtEnd()` Add an instance at the end of the dataset
    `void` | `addUndoPoint()` adds the current state of the instances to the undolist
    `void` | `attributeAsClass()` sets the current attribute as class attribute, i.e.
    `boolean` | `canUndo()` returns whether an undo is possible
    `void` | `clearSearch()` clears the search, i.e.
    `void` | `clearUndo()` removes the undo history
    `void` | `copyContent()` copies the content of the selection to the clipboard
    `void` | `deleteAttribute()` deletes the currently selected attribute
    `void` | `deleteAttributes()` deletes the chosen attributes
    `void` | `deleteInstance()` deletes the currently selected instance
    `void` | `deleteInstances()` deletes all the currently selected instances
    `java.util.Vector<java.lang.String>` | `getAttributes()` returns a list with the attributes
    `java.lang.String` | `getFilename()` returns the filename
    `Instances` | `getInstances()` returns the instances of the panel, if none then NULL
    `boolean` | `getShowAttributeIndex()` Returns whether to display the attribute index in the header.
    `ArffTable` | `getTable()` returns the table component
    `java.lang.String` | `getTitle()` returns the title for the Tab, i.e.
    `boolean` | `isChanged()` returns whether the content of the panel was changed
    `boolean` | `isReadOnly()` returns whether the model is read-only
    `boolean` | `isUndoEnabled()` returns whether undo support is enabled
    `void` | `mouseClicked(java.awt.event.MouseEvent e)` Invoked when a mouse button has been pressed and released on a component
    `void` | `mouseEntered(java.awt.event.MouseEvent e)` Invoked when the mouse enters a component.
    `void` | `mouseExited(java.awt.event.MouseEvent e)` Invoked when the mouse exits a component
    `void` | `mousePressed(java.awt.event.MouseEvent e)` Invoked when a mouse button has been pressed on a component
    `void` | `mouseReleased(java.awt.event.MouseEvent e)` Invoked when a mouse button has been released on a component.
    `void` | `notifyListener()` notfies all listener of the change
    `void` | `removeChangeListener(javax.swing.event.ChangeListener l)` Removes a ChangeListener from the panel
    `void` | `renameAttribute()` renames the current attribute
    `void` | `search()` searches for a string in the cells
    `void` | `setAttributeWeight()` sets the weight for the current attribute
    `void` | `setChanged(boolean changed)` can only reset the changed state to FALSE
    `void` | `setFilename(java.lang.String filename)` sets the filename
    `void` | `setInstances(Instances data)` displays the given instances, i.e.
    `void` | `setInstanceWeight()` Allows setting the weight of the instance at the selected row.
    `void` | `setOptimalColWidth()` calculates the optimal column width for the current column
    `void` | `setOptimalColWidths()` calculates the optimal column widths for all columns
    `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` | `sortInstances()` sorts the instances via the currently selected column
    `void` | `stateChanged(javax.swing.event.ChangeEvent e)` Invoked when the target of the listener has changed its state.
    `void` | `undo()` performs an undo action

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- - ### Field Detail

    - #### TAB_INSTANCES

          public static final java.lang.String TAB_INSTANCES

      the name of the tab for instances that were set directly
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ArffPanel

          public ArffPanel()

      initializes the panel with no data

    - #### ArffPanel

          public ArffPanel(java.lang.String filename,
                           AbstractFileLoader... loaders)

      initializes the panel and loads the specified file
      Parameters:
        `filename` - the file to load
        `loaders` - optional varargs loader to use

    - #### ArffPanel

          public ArffPanel(Instances data)

      initializes the panel with the given data
      Parameters:
        `data` - the data to use

  - ### Method Detail

    - #### getTable

          public ArffTable getTable()

      returns the table component
      Returns:
        the table

    - #### getTitle

          public java.lang.String getTitle()

      returns the title for the Tab, i.e. the filename
      Returns:
        the title for the tab

    - #### getFilename

          public java.lang.String getFilename()

      returns the filename
      Returns:
        the filename

    - #### setFilename

          public void setFilename(java.lang.String filename)

      sets the filename
      Parameters:
        `filename` - the new filename

    - #### getInstances

          public Instances getInstances()

      returns the instances of the panel, if none then NULL
      Returns:
        the instances of the panel

    - #### setInstances

          public void setInstances(Instances data)

      displays the given instances, i.e. creates a tab with the title TAB_INSTANCES. if one already exists it closes it.
      if a different instances object is used here, don't forget to clear the undo-history by calling `clearUndo()`
      Parameters:
        `data` - the instances to display
      See Also:
        `TAB_INSTANCES`, `clearUndo()`

    - #### getAttributes

          public java.util.Vector<java.lang.String> getAttributes()

      returns a list with the attributes
      Returns:
        a list of the attributes

    - #### setChanged

          public void setChanged(boolean changed)

      can only reset the changed state to FALSE
      Parameters:
        `changed` - if false, resets the changed state

    - #### isChanged

          public boolean isChanged()

      returns whether the content of the panel was changed
      Returns:
        true if the content was changed

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

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

    - #### isUndoEnabled

          public boolean isUndoEnabled()

      returns whether undo support is enabled
      Specified by:
        `isUndoEnabled` in interface `Undoable`
      Returns:
        true if undo 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

    - #### clearUndo

          public void clearUndo()

      removes the undo history
      Specified by:
        `clearUndo` in interface `Undoable`

    - #### canUndo

          public boolean canUndo()

      returns whether an undo is possible
      Specified by:
        `canUndo` in interface `Undoable`
      Returns:
        true if undo is possible

    - #### undo

          public void undo()

      performs an undo action
      Specified by:
        `undo` in interface `Undoable`

    - #### addUndoPoint

          public void addUndoPoint()

      adds the current state of the instances to the undolist
      Specified by:
        `addUndoPoint` in interface `Undoable`

    - #### deleteAttribute

          public void deleteAttribute()

      deletes the currently selected attribute

    - #### deleteAttributes

          public void deleteAttributes()

      deletes the chosen attributes

    - #### attributeAsClass

          public void attributeAsClass()

      sets the current attribute as class attribute, i.e. it moves it to the end of the attributes

    - #### renameAttribute

          public void renameAttribute()

      renames the current attribute

    - #### setAttributeWeight

          public void setAttributeWeight()

      sets the weight for the current attribute

    - #### deleteInstance

          public void deleteInstance()

      deletes the currently selected instance

    - #### addInstance

          public void addInstance()

      Add an instance at the currently selected index. If no instance is selected then adds a new instance at the end of the dataset.

    - #### setInstanceWeight

          public void setInstanceWeight()

      Allows setting the weight of the instance at the selected row.

    - #### addInstanceAtEnd

          public void addInstanceAtEnd()

      Add an instance at the end of the dataset

    - #### deleteInstances

          public void deleteInstances()

      deletes all the currently selected instances

    - #### sortInstances

          public void sortInstances()

      sorts the instances via the currently selected column

    - #### copyContent

          public void copyContent()

      copies the content of the selection to the clipboard

    - #### search

          public void search()

      searches for a string in the cells

    - #### clearSearch

          public void clearSearch()

      clears the search, i.e. resets the found cells

    - #### setOptimalColWidth

          public void setOptimalColWidth()

      calculates the optimal column width for the current column

    - #### setOptimalColWidths

          public void setOptimalColWidths()

      calculates the optimal column widths for all columns

    - #### actionPerformed

          public void actionPerformed(java.awt.event.ActionEvent e)

      invoked when an action occurs
      Specified by:
        `actionPerformed` in interface `java.awt.event.ActionListener`
      Parameters:
        `e` - the action event

    - #### mouseClicked

          public void mouseClicked(java.awt.event.MouseEvent e)

      Invoked when a mouse button has been pressed and released on a component
      Specified by:
        `mouseClicked` in interface `java.awt.event.MouseListener`
      Parameters:
        `e` - the mouse event

    - #### mouseEntered

          public void mouseEntered(java.awt.event.MouseEvent e)

      Invoked when the mouse enters a component.
      Specified by:
        `mouseEntered` in interface `java.awt.event.MouseListener`
      Parameters:
        `e` - the mouse event

    - #### mouseExited

          public void mouseExited(java.awt.event.MouseEvent e)

      Invoked when the mouse exits a component
      Specified by:
        `mouseExited` in interface `java.awt.event.MouseListener`
      Parameters:
        `e` - the mouse event

    - #### mousePressed

          public void mousePressed(java.awt.event.MouseEvent e)

      Invoked when a mouse button has been pressed on a component
      Specified by:
        `mousePressed` in interface `java.awt.event.MouseListener`
      Parameters:
        `e` - the mouse event

    - #### mouseReleased

          public void mouseReleased(java.awt.event.MouseEvent e)

      Invoked when a mouse button has been released on a component.
      Specified by:
        `mouseReleased` in interface `java.awt.event.MouseListener`
      Parameters:
        `e` - the mouse event

    - #### stateChanged

          public void stateChanged(javax.swing.event.ChangeEvent e)

      Invoked when the target of the listener has changed its state.
      Specified by:
        `stateChanged` in interface `javax.swing.event.ChangeListener`
      Parameters:
        `e` - the change event

    - #### notifyListener

          public void notifyListener()

      notfies all listener of the change

    - #### addChangeListener

          public void addChangeListener(javax.swing.event.ChangeListener l)

      Adds a ChangeListener to the panel
      Parameters:
        `l` - the listener to add

    - #### removeChangeListener

          public void removeChangeListener(javax.swing.event.ChangeListener l)

      Removes a ChangeListener from the panel
      Parameters:
        `l` - the listener to remove