Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Liutauras Vilda
  • Paul Clapham
  • Bear Bibeault
  • Jeanne Boyarsky
  • Ron McLeod
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Carey Brown
  • salvin francis
  • Scott Selikoff
  • fred rosenberger

SWT tableitem, image not displaying properly.

Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a tableItem in an swtTable where I use an image in the first cell *with indent*.

A few problems -
first, I discovered the table background color bug, where the background behind my image is reverting to the *table* bgColor, and not the table *item* bgColor (result is that even though my row is blue, the image column has a black background (black is the table background color, also the area that is 'indented' is the same black color.

Second, i figured that the easiest way would be to custom draw the indented image (instead of using tableitem.setImageIndent()) with the indent already in the image, and just setting the image into the tableitem and drawing the background correctly, on the fly.
this does not work either, because now, even though the background color behind the image is correct, the column has a black border between all the cells. this only affects the column with the image, and it looks very ugly.

Third, i tried just manually drawing the image using the table's GC (gc = new GC(table)), which actually looks good (i guess the black borders above were coming from code in the standard item drawing, whereas here i am actually drawing 'over' the table, hence it is not subject to any of those issues.)
HOWEVER, now, when i select a row, the image i draw gets clobbered when the row selection highlight is drawn in. i have some listeners in place to take care of redrawing , but here's the catch - we have DND (drag and drop) enabled on this table, which hangs the redrawing until the drag is done. so when you click on a row, you get these ugly flickers while the mouse is down (and windows is waiting to see if a drag is going to start, during which it eats event and drawing is halted).

any of those solutions would work fine if not for a small issue. can anyone help?

P.S. i forgot - I also tried one other strategy, which was drawing in the background manually, using an EraseItem listener. this looks fine, but is very slow (we have upwards of 50 columns, potentially more) when scrolling horizontally.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    Bookmark Topic Watch Topic
  • New Topic