Programmazione:Java/Eclipse RCP/SWT Table: Tooltip per cella
Per poter pilotare i tooltip anzichè per tabella per cella intera JFace mette a disposizione uno dei suoi innumerevoli provider (org.eclipse.jface.viewers.CellLabelProvider), la cui estensione è molto semplice...
public class MenuCellLabelProvider extends CellLabelProvider {
@Override
public void update(ViewerCell cell) {
cell.setText(cell.getElement().toString());
}
@Override
public Point getToolTipShift(Object object) {
return new Point(5, 5);
}
@Override
public int getToolTipDisplayDelayTime(Object object) {
return 500;
}
@Override
public int getToolTipTimeDisplayed(Object object) {
return 1000;
}
@Override
public String getToolTipText(Object element) {
return "Tooltipo ('" + element + "')";
}
}
...e il suo utilizzo ancora di più...
MenuCellLabelProvider provider = new MenuCellLabelProvider();
FormToolkit ft = new FormToolkit(parent.getDisplay());
Table t = ft.createTable(parent, SWT.FULL_SELECTION | SWT.SINGLE);
t.setHeaderVisible(true);
t.setLinesVisible(true);
TableViewer viewer = new TableViewer(t);
viewer.setContentProvider(this);
ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);
TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.NONE);
column1.setLabelProvider(provider);
column1.getColumn().setText("Column 1");
column1.getColumn().setWidth(100);
viewer.setInput("");