Skip to main content



      Home
Home » Eclipse Projects » Nebula » Nebula ViewerCell with custom image
Nebula ViewerCell with custom image [message #57177] Wed, 06 August 2008 08:28 Go to next message
Eclipse UserFriend
Originally posted by: johnny.hensegard.telia.com

Hi,

I'm trying to print an image to a cell in the nebula grid.
I've tried two ways without success. Or maybe there is another way??

1.
Using the method ViewerCell.setImage(Image)
My problem here is that the image will not cover the whole cell,
the cell always puts a block of white space to the left of the image
(I have tried with bigger width than the cell has with the same result)

Example code:
GridViewerColumn col = new GridViewerColumn(viewer, SWT.NONE);
col.getColumn().setWidth(30);
col.setLabelProvider(new CellLabelProvider() {

@Override
public void update(ViewerCell cell) {
cell.setImage(new Image(Display.getDefault(), imageData));
}
});


2.
Using the GC to instead of setImage in the code below
GC gc = new GC(viewer.getGrid());
gc.setBackground(Display.getDefault().getSystemColor(SWT.COL OR_BLUE));
gc.fillRectangle(cell.getBounds());
gc.dispose();
This will flash the color once and then replace it with the original table

Cheers
/Johnny
Re: Nebula ViewerCell with custom image [message #57205 is a reply to message #57177] Wed, 06 August 2008 08:43 Go to previous message
Eclipse UserFriend
Hi,

Solution 2 can't work because when ever the table issues a redraw you
image is gone. Solution 1 should use a ColumnLabelProvider and you are
leaking in the example a lot of images because you are always creating a
new one.

If you are not satisfied with the default rendering you'll have to
replace the DefaultCellRenderer directly on the Grid-Widget with your
implementation.

Tom

Johnny schrieb:
> Hi,
>
> I'm trying to print an image to a cell in the nebula grid.
> I've tried two ways without success. Or maybe there is another way??
>
> 1.
> Using the method ViewerCell.setImage(Image)
> My problem here is that the image will not cover the whole cell,
> the cell always puts a block of white space to the left of the image
> (I have tried with bigger width than the cell has with the same result)
>
> Example code:
> GridViewerColumn col = new GridViewerColumn(viewer, SWT.NONE);
> col.getColumn().setWidth(30);
> col.setLabelProvider(new CellLabelProvider() {
>
> @Override
> public void update(ViewerCell cell) {
> cell.setImage(new Image(Display.getDefault(), imageData));
> }
> });
>
>
> 2.
> Using the GC to instead of setImage in the code below
> GC gc = new GC(viewer.getGrid());
> gc.setBackground(Display.getDefault().getSystemColor(SWT.COL OR_BLUE));
> gc.fillRectangle(cell.getBounds());
> gc.dispose();
> This will flash the color once and then replace it with the original table
>
> Cheers
> /Johnny
>
>
>
>
>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Nebula ViewerCell with custom image [message #591514 is a reply to message #57177] Wed, 06 August 2008 08:43 Go to previous message
Eclipse UserFriend
Hi,

Solution 2 can't work because when ever the table issues a redraw you
image is gone. Solution 1 should use a ColumnLabelProvider and you are
leaking in the example a lot of images because you are always creating a
new one.

If you are not satisfied with the default rendering you'll have to
replace the DefaultCellRenderer directly on the Grid-Widget with your
implementation.

Tom

Johnny schrieb:
> Hi,
>
> I'm trying to print an image to a cell in the nebula grid.
> I've tried two ways without success. Or maybe there is another way??
>
> 1.
> Using the method ViewerCell.setImage(Image)
> My problem here is that the image will not cover the whole cell,
> the cell always puts a block of white space to the left of the image
> (I have tried with bigger width than the cell has with the same result)
>
> Example code:
> GridViewerColumn col = new GridViewerColumn(viewer, SWT.NONE);
> col.getColumn().setWidth(30);
> col.setLabelProvider(new CellLabelProvider() {
>
> @Override
> public void update(ViewerCell cell) {
> cell.setImage(new Image(Display.getDefault(), imageData));
> }
> });
>
>
> 2.
> Using the GC to instead of setImage in the code below
> GC gc = new GC(viewer.getGrid());
> gc.setBackground(Display.getDefault().getSystemColor(SWT.COL OR_BLUE));
> gc.fillRectangle(cell.getBounds());
> gc.dispose();
> This will flash the color once and then replace it with the original table
>
> Cheers
> /Johnny
>
>
>
>
>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Previous Topic:Nebula ViewerCell with custom image
Next Topic:How to traverse through PGroup without focusing toggle button
Goto Forum:
  


Current Time: Thu May 01 08:55:36 EDT 2025

Powered by FUDForum. Page generated in 0.05919 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top