Package weka.gui

# Class CostMatrixEditor

java.lang.Object
weka.gui.CostMatrixEditor

All Implemented Interfaces:
  `PropertyEditor`

public class CostMatrixEditor extends Object implements PropertyEditor
Class for editing CostMatrix objects. Brings up a custom editing panel with which the user can edit the matrix interactively, as well as save load cost matrices from files.

Version:
  $Revision: 7059 $
Author:
  Richard Kirkby (rkirkby@cs.waikato.ac.nz)

## Constructor Summary

Constructors
Constructor
Description
`CostMatrixEditor()`
Constructs a new CostMatrixEditor.

## Method Summary

Modifier and Type
Method
Description
`void`
`addPropertyChangeListener(PropertyChangeListener listener)`
Adds an object to the list of those that wish to be informed when the cost matrix changes.
`String`
`getAsText()`
Some objects can be represented as text, but a cost matrix cannot.
`Component`
`getCustomEditor()`
Gets a GUI component with which the user can edit the cost matrix.
`String`
`getJavaInitializationString()`
Returns the Java code that generates an object the same as the one being edited.
`String[]`
`getTags()`
Some objects can return tags, but a cost matrix cannot.
`Object`
`getValue()`
Gets the cost matrix that is being edited.
`boolean`
`isPaintable()`
Indicates whether the object can be represented graphically.
`void`
`paintValue(Graphics gfx, Rectangle box)`
Paints a graphical representation of the object.
`void`
`removePropertyChangeListener(PropertyChangeListener listener)`
Removes an object from the list of those that wish to be informed when the cost matrix changes.
`void`
`setAsText(String text)`
Some objects can be represented as text, but a cost matrix cannot.
`void`
`setValue(Object value)`
Sets the value of the CostMatrix to be edited.
`boolean`
`supportsCustomEditor()`
Indicates whether the cost matrix can be edited in a GUI, which it can.

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

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

## Constructor Details

### CostMatrixEditor

public CostMatrixEditor()
Constructs a new CostMatrixEditor.

## Method Details

### setValue

public void setValue(Object value)
Sets the value of the CostMatrix to be edited.

Specified by:
  `setValue` in interface `PropertyEditor`
Parameters:
  `value` - a CostMatrix object to be edited

### getValue

public Object getValue()
Gets the cost matrix that is being edited.

Specified by:
  `getValue` in interface `PropertyEditor`
Returns:
  the edited CostMatrix object

### isPaintable

public boolean isPaintable()
Indicates whether the object can be represented graphically. In this case it can.

Specified by:
  `isPaintable` in interface `PropertyEditor`
Returns:
  true

### paintValue

public void paintValue(Graphics gfx, Rectangle box)
Paints a graphical representation of the object. For the cost matrix it prints out the text "X x X matrix", where X is the size of the matrix.

Specified by:
  `paintValue` in interface `PropertyEditor`
Parameters:
  `gfx` - the graphics context to draw the representation to
  `box` - the bounds within which the representation should fit.

### getJavaInitializationString

public String getJavaInitializationString()
Returns the Java code that generates an object the same as the one being edited. Unfortunately this can't be done in a single line of code, so the code returned will only build a default cost matrix of the same size.

Specified by:
  `getJavaInitializationString` in interface `PropertyEditor`
Returns:
  the initialization string

### getAsText

public String getAsText()
Some objects can be represented as text, but a cost matrix cannot.

Specified by:
  `getAsText` in interface `PropertyEditor`
Returns:
  null

### setAsText

public void setAsText(String text)
Some objects can be represented as text, but a cost matrix cannot.

Specified by:
  `setAsText` in interface `PropertyEditor`
Parameters:
  `text` - ignored
Throws:
  `IllegalArgumentException` - always throws an IllegalArgumentException

### getTags

public String[] getTags()
Some objects can return tags, but a cost matrix cannot.

Specified by:
  `getTags` in interface `PropertyEditor`
Returns:
  null

### getCustomEditor

public Component getCustomEditor()
Gets a GUI component with which the user can edit the cost matrix.

Specified by:
  `getCustomEditor` in interface `PropertyEditor`
Returns:
  an editor GUI component

### supportsCustomEditor

public boolean supportsCustomEditor()
Indicates whether the cost matrix can be edited in a GUI, which it can.

Specified by:
  `supportsCustomEditor` in interface `PropertyEditor`
Returns:
  true

### addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
Adds an object to the list of those that wish to be informed when the cost matrix changes.

Specified by:
  `addPropertyChangeListener` in interface `PropertyEditor`
Parameters:
  `listener` - a new listener to add to the list

### removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Removes an object from the list of those that wish to be informed when the cost matrix changes.

Specified by:
  `removePropertyChangeListener` in interface `PropertyEditor`
Parameters:
  `listener` - the listener to remove from the list