org.eclipse.swt.custom
Class TableEditor
java.lang.Object
org.eclipse.swt.custom.ControlEditor
org.eclipse.swt.custom.TableEditor
- public class TableEditor
- extends
ControlEditor
A TableEditor is a manager for a Control that appears above a cell in a Table and tracks with the
moving and resizing of that cell. It can be used to display a text widget above a cell
in a Table so that the user can edit the contents of that cell. It can also be used to display
a button that can launch a dialog for modifying the contents of the associated cell.
Here is an example of using a TableEditor:
final Table table = new Table(shell, SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
TableColumn column1 = new TableColumn(table, SWT.NONE);
TableColumn column2 = new TableColumn(table, SWT.NONE);
for (int i = 0; i < 10; i++) {
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] {"item " + i, "edit this value"});
}
column1.pack();
column2.pack();
final TableEditor editor = new TableEditor(table);
//The editor must have the same size as the cell and must
//not be any smaller than 50 pixels.
editor.horizontalAlignment = SWT.LEFT;
editor.grabHorizontal = true;
editor.minimumWidth = 50;
// editing the second column
final int EDITABLECOLUMN = 1;
table.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// Clean up any previous editor control
Control oldEditor = editor.getEditor();
if (oldEditor != null) oldEditor.dispose();
// Identify the selected row
TableItem item = (TableItem)e.item;
if (item == null) return;
// The control that will be the editor must be a child of the Table
Text newEditor = new Text(table, SWT.NONE);
newEditor.setText(item.getText(EDITABLECOLUMN));
newEditor.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
Text text = (Text)editor.getEditor();
editor.getItem().setText(EDITABLECOLUMN, text.getText());
}
});
newEditor.selectAll();
newEditor.setFocus();
editor.setEditor(newEditor, item, EDITABLECOLUMN);
}
});
Constructor Summary
|
TableEditor
(
Table table)
Creates a TableEditor for the specified Table. |
Method Summary
|
void
|
dispose
()
Removes all associations between the TableEditor and the cell in the table. |
int
|
getColumn
()
Returns the zero based index of the column of the cell being tracked by this editor. |
TableItem
|
getItem
()
Returns the TableItem for the row of the cell being tracked by this editor. |
void
|
layout
()
Lays out the control within the underlying composite. |
void
|
setColumn
(int column)
Sets the zero based index of the column of the cell being tracked by this editor. |
void
|
setEditor
(
Control editor)
Specify the Control that is to be displayed. |
void
|
setEditor
(
Control editor,
TableItem item,
int column)
Specify the Control that is to be displayed and the cell in the table that it is to be positioned above. |
void
|
setItem
(
TableItem item)
Specifies the TableItem that is to be edited. |
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
TableEditor
public TableEditor(
Table table)
- Creates a TableEditor for the specified Table.
-
Parameters:
-
table
- the Table Control above which this editor will be displayed
dispose
public void dispose()
- Removes all associations between the TableEditor and the cell in the table. The
Table and the editor Control are not disposed.
-
-
Overrides:
-
dispose
in class
ControlEditor
-
getColumn
public int getColumn()
- Returns the zero based index of the column of the cell being tracked by this editor.
-
-
Returns:
- the zero based index of the column of the cell being tracked by this editor
getItem
public
TableItem getItem()
- Returns the TableItem for the row of the cell being tracked by this editor.
-
-
Returns:
- the TableItem for the row of the cell being tracked by this editor
setColumn
public void setColumn(int column)
- Sets the zero based index of the column of the cell being tracked by this editor.
-
-
Parameters:
-
column
- the zero based index of the column of the cell being tracked by this editor
setItem
public void setItem(
TableItem item)
- Specifies the
TableItem
that is to be edited.
-
-
Parameters:
-
item
- the item to be edited
setEditor
public void setEditor(
Control editor)
-
Description copied from class:
ControlEditor
- Specify the Control that is to be displayed.
Note: The Control provided as the editor must be created with its
parent being the Composite specified in the ControlEditor constructor.
-
-
Overrides:
-
setEditor
in class
ControlEditor
-
-
Parameters:
-
editor
- the Control that is displayed above the composite being
edited
setEditor
public void setEditor(
Control editor,
TableItem item,
int column)
- Specify the Control that is to be displayed and the cell in the table that it is to be positioned above.
Note: The Control provided as the editor must be created with its parent being the Table control
specified in the TableEditor constructor.
-
-
Parameters:
-
editor
- the Control that is displayed above the cell being edited -
item
- the TableItem for the row of the cell being tracked by this editor -
column
- the zero based index of the column of the cell being tracked by this editor
layout
public void layout()
-
Description copied from class:
ControlEditor
- Lays out the control within the underlying composite. This method should be
called after changing one or more fields to force the Editor to resize.
-
-
Overrides:
-
layout
in class
ControlEditor
-
Copyright (c) Innoopract Informationssysteme GmbH and others 2002, 2008. All rights reserved.