|
|
|
|
|
|
|
Re: Aligment in a TableViewer [message #890011 is a reply to message #889797] |
Wed, 20 June 2012 14:51 |
Joaquin Morcate Messages: 52 Registered: March 2010 |
Member |
|
|
Hi,
Still I am not able to find a good solution to my problem. If I use a OwnerDrawLabelProvider as Grant suggested yesterday, I get a good rendering of my values (i.e. the text entries are aligned to the left without space for the images). This is the code:
valueColumn.setLabelProvider(new OwnerDrawLabelProvider() {
@Override
public void update(ViewerCell cell) {
ReadoutEntry entry = (ReadoutEntry) cell.getElement();
cell.setText(entry.getStringValue());
cell.setImage(entry.getImageValue(Display.getDefault()));
}
@Override
protected void paint(Event event, Object element) {
ReadoutEntry entry = (ReadoutEntry) element;
GC gc = event.gc;
Table table = (Table) event.widget;
int width = table.getColumn(0).getWidth();
if (entry.getImageValue(table) != null) {
gc.drawImage(entry.getImageValue(Display.getDefault()),
width + 2, event.y + 2);
} else {
gc.drawText(entry.getStringValue(), width + 2, event.y + 2,
true);
}
}
@Override
protected void erase(Event event, Object element) {
event.detail &= ~SWT.FOREGROUND;
}
@Override
protected void measure(Event event, Object element) {
}
});
But if I enable the editors they are placed in the space defined by textBounds. This is a snapshot:
The problem, I guess, is that I am not able to modify the image and text bounds in the TableItem's. But I'm really confused now. May be there is a simpler solution or I'm doing something wrong.
Any help?
Joaquin
|
|
|
|
Powered by
FUDForum. Page generated in 0.04074 seconds