# Class TableEditor

java.lang.Object
java.beans.PropertyEditorSupport
org.apache.jmeter.testbeans.gui.TableEditor

All Implemented Interfaces:
  `FocusListener, PropertyEditor, EventListener, TableModelListener, TestBeanPropertyEditor`

public class TableEditor extends PropertyEditorSupport implements FocusListener, TestBeanPropertyEditor, TableModelListener
Table editor for TestBean GUI properties. Currently only works for:

- property type Collection of `String`s, where there is a single header entry

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CLASSNAME`
attribute name for class name of a table row; value must be java.lang.String, or a class which supports set and get/is methods for the property name.
`static final String`
`HEADERS`
attribute name for table headers, value must be a String array.
`static final String`
`OBJECT_PROPERTIES`
attribute name for property names within the `CLASSNAME`, value must be String array

## Constructor Summary

Constructors
Constructor
Description
`TableEditor()`

## Method Summary

Modifier and Type
Method
Description
`void`
`focusGained(FocusEvent e)`
`void`
`focusLost(FocusEvent e)`
`String`
`getAsText()`
`Component`
`getCustomEditor()`
`Object`
`getValue()`
`void`
`setAsText(String text)`
`void`
`setDescriptor(PropertyDescriptor descriptor)`
For the table editor, the CLASSNAME attribute must simply be the name of the class of object it will hold where each row holds one object.
`void`
`setValue(Object value)`
`boolean`
`supportsCustomEditor()`
`void`
`tableChanged(TableModelEvent e)`

### Methods inherited from class PropertyEditorSupport

`addPropertyChangeListener, firePropertyChange, getJavaInitializationString, getSource, getTags, isPaintable, paintValue, removePropertyChangeListener, setSource`

### Methods inherited from class Object

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

### Methods inherited from interface PropertyEditor

`addPropertyChangeListener, getJavaInitializationString, getTags, isPaintable, paintValue, removePropertyChangeListener`

## Field Details

### CLASSNAME

public static final String CLASSNAME
attribute name for class name of a table row; value must be java.lang.String, or a class which supports set and get/is methods for the property name.

See Also:
  - Constant Field Values

### HEADERS

public static final String HEADERS
attribute name for table headers, value must be a String array. If `CLASSNAME` is java.lang.String, there must be only a single entry.

See Also:
  - Constant Field Values

### OBJECT_PROPERTIES

public static final String OBJECT_PROPERTIES
attribute name for property names within the `CLASSNAME`, value must be String array

See Also:
  - Constant Field Values

## Constructor Details

### TableEditor

public TableEditor()

## Method Details

### getAsText

public String getAsText()

Specified by:
  `getAsText` in interface `PropertyEditor`
Overrides:
  `getAsText` in class `PropertyEditorSupport`

### getCustomEditor

public Component getCustomEditor()

Specified by:
  `getCustomEditor` in interface `PropertyEditor`
Overrides:
  `getCustomEditor` in class `PropertyEditorSupport`

### getValue

public Object getValue()

Specified by:
  `getValue` in interface `PropertyEditor`
Overrides:
  `getValue` in class `PropertyEditorSupport`

### setAsText

public void setAsText(String text) throws IllegalArgumentException

Specified by:
  `setAsText` in interface `PropertyEditor`
Overrides:
  `setAsText` in class `PropertyEditorSupport`
Throws:
  `IllegalArgumentException`

### setValue

public void setValue(Object value)

Specified by:
  `setValue` in interface `PropertyEditor`
Overrides:
  `setValue` in class `PropertyEditorSupport`

### supportsCustomEditor

public boolean supportsCustomEditor()

Specified by:
  `supportsCustomEditor` in interface `PropertyEditor`
Overrides:
  `supportsCustomEditor` in class `PropertyEditorSupport`

### setDescriptor

public void setDescriptor(PropertyDescriptor descriptor)
For the table editor, the CLASSNAME attribute must simply be the name of the class of object it will hold where each row holds one object.

Specified by:
  `setDescriptor` in interface `TestBeanPropertyEditor`

### tableChanged

public void tableChanged(TableModelEvent e)

Specified by:
  `tableChanged` in interface `TableModelListener`

### focusGained

public void focusGained(FocusEvent e)

Specified by:
  `focusGained` in interface `FocusListener`

### focusLost

public void focusLost(FocusEvent e)

Specified by:
  `focusLost` in interface `FocusListener`