Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » Custom-Drawing in first Tree-Column problem on Windows
Custom-Drawing in first Tree-Column problem on Windows [message #655126] Fri, 18 February 2011 12:28 Go to next message
Manuel Steurer is currently offline Manuel SteurerFriend
Messages: 37
Registered: July 2009
Member
This is a multipart message in MIME format

--Xananews.1.2.3

Hi,

I've modified the SWT Snippet 230 to use a Tree instead of a Table and
also mixed in the drawing logic from Jface Snippet 51 to draw an image
in the center of each column, see attached snippet. When you resize the
columns the Image moves along with it in all columns but the first.
Once you "dip" the window outside the screen and get it back it is
correctly painted.

The problem does not exist on Linux, and also not when using a Table
instead of a Tree.

Is this a known Windows bug I have to live with or is this something
that can be fixed in SWT?

Greetings,
Manuel

--Xananews.1.2.3
Content-Type: Application/Octet-Stream; name=Snippet230Tree.java
Content-Transfer-Encoding: base64

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioNCiAqIENvcHlyaWdodCAoYykgMjAw MCwgMjAwNiBJQk0g
Q29ycG9yYXRpb24gYW5kIG90aGVycy4NCiAqIEFsbCByaWdodHMgcmVzZXJ2 ZWQuIFRoaXMgcHJv
Z3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAqIGFyZSBt YWRlIGF2YWlsYWJs
ZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vu c2UgdjEuMA0KICog
d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBh dmFpbGFibGUgYXQN
CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1s DQogKg0KICogQ29u
dHJpYnV0b3JzOg0KICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwg QVBJIGFuZCBpbXBs
ZW1lbnRhdGlvbg0KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQpwYWNrYWdl IG9yZy5lY2xpcHNl
LnN3dC5zbmlwcGV0czsNCg0KLyogDQogKiBUYWJsZSBleGFtcGxlIHNuaXBw ZXQ6IGRyYXcgaW1h
Z2VzIG9uIHJpZ2h0IHNpZGUgb2YgdGFibGUgaXRlbQ0KICoNCiAqIEZvciBt b3JlIGluZm8gb24g
Y3VzdG9tLWRyYXdpbmcgVGFibGVJdGVtIGFuZCBUcmVlSXRlbSBjb250ZW50 IHNlZSANCiAqIGh0
dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXJ0aWNsZXMvYXJ0aWNsZS5waHA/Zmls ZT1BcnRpY2xlLUN1
c3RvbURyYXdpbmdUYWJsZUFuZFRyZWVJdGVtcy9pbmRleC5odG1sDQogKg0K ICogRm9yIGEgbGlz
dCBvZiBhbGwgU1dUIGV4YW1wbGUgc25pcHBldHMgc2VlDQogKiBodHRwOi8v d3d3LmVjbGlwc2Uu
b3JnL3N3dC9zbmlwcGV0cy8NCiAqIA0KICogQHNpbmNlIDMuMg0KICovDQoN CmltcG9ydCBvcmcu
ZWNsaXBzZS5zd3QuU1dUOw0KaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFw aGljcy5JbWFnZTsN
CmltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuUmVjdGFuZ2xlOw0K aW1wb3J0IG9yZy5l
Y2xpcHNlLnN3dC5sYXlvdXQuRmlsbExheW91dDsNCmltcG9ydCBvcmcuZWNs aXBzZS5zd3Qud2lk
Z2V0cy5EaXNwbGF5Ow0KaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRz LkV2ZW50Ow0KaW1w
b3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkxpc3RlbmVyOw0KaW1wb3J0 IG9yZy5lY2xpcHNl
LnN3dC53aWRnZXRzLlNoZWxsOw0KaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53 aWRnZXRzLlRyZWU7
DQppbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVHJlZUNvbHVtbjsN CmltcG9ydCBvcmcu
ZWNsaXBzZS5zd3Qud2lkZ2V0cy5UcmVlSXRlbTsNCg0KcHVibGljIGNsYXNz IFNuaXBwZXQyMzBU
cmVlIHsNCgkNCnB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBbXSBh cmdzKSB7DQoJRGlz
cGxheSBkaXNwbGF5ID0gbmV3IERpc3BsYXkoKTsNCglmaW5hbCBJbWFnZSBp bWFnZSA9IGRpc3Bs
YXkuZ2V0U3lzdGVtSW1hZ2UoU1dULklDT05fSU5GT1JNQVRJT04pOw0KCVNo ZWxsIHNoZWxsID0g
bmV3IFNoZWxsKGRpc3BsYXkpOw0KCXNoZWxsLnNldFRleHQoIkNlbnRlcmVk IEltYWdlcyIpOw0K
CXNoZWxsLnNldExheW91dChuZXcgRmlsbExheW91dCAoKSk7DQoJVHJlZSB0 cmVlID0gbmV3IFRy
ZWUoc2hlbGwsIFNXVC5NVUxUSSB8IFNXVC5GVUxMX1NFTEVDVElPTik7DQoJ dHJlZS5zZXRIZWFk
ZXJWaXNpYmxlKHRydWUpOw0KCXRyZWUuc2V0TGluZXNWaXNpYmxlKHRydWUp OwkJCQ0KCWludCBj
b2x1bW5Db3VudCA9IDM7DQoJZm9yIChpbnQgaT0wOyBpPGNvbHVtbkNvdW50 OyBpKyspIHsNCgkJ
VHJlZUNvbHVtbiBjb2x1bW4gPSBuZXcgVHJlZUNvbHVtbih0cmVlLCBTV1Qu Tk9ORSk7DQoJCWNv
bHVtbi5zZXRUZXh0KCJDb2x1bW4gIiArIGkpOwkNCgl9DQoJaW50IGl0ZW1D b3VudCA9IDg7DQoJ
Zm9yKGludCBpID0gMDsgaSA8IGl0ZW1Db3VudDsgaSsrKSB7DQoJCVRyZWVJ dGVtIGl0ZW0gPSBu
ZXcgVHJlZUl0ZW0odHJlZSwgU1dULk5PTkUpOw0KCQlpdGVtLnNldFRleHQo bmV3IFN0cmluZ1td
IHsiaXRlbSAiK2krIiBhIiwgIml0ZW0gIitpKyIgYiIsICJpdGVtICIraSsi IGMifSk7DQoJfQ0K
CS8qDQoJICogTk9URTogTWVhc3VyZUl0ZW0sIFBhaW50SXRlbSBhbmQgRXJh c2VJdGVtIGFyZSBj
YWxsZWQgcmVwZWF0ZWRseS4NCgkgKiBUaGVyZWZvcmUsIGl0IGlzIGNyaXRp Y2FsIGZvciBwZXJm
b3JtYW5jZSB0aGF0IHRoZXNlIG1ldGhvZHMgYmUNCgkgKiBhcyBlZmZpY2ll bnQgYXMgcG9zc2li
bGUuDQoJICovDQoJTGlzdGVuZXIgcGFpbnRMaXN0ZW5lciA9IG5ldyBMaXN0 ZW5lcigpIHsNCgkJ
cHVibGljIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQgZXZlbnQpIHsJCQ0KCQkJ c3dpdGNoKGV2ZW50
LnR5cGUpIHsNCgkJCQljYXNlIFNXVC5QYWludEl0ZW06IHsNCgkJCQkJDQoJ CQkJCVJlY3Rhbmds
ZSBib3VuZHMgPSAoKFRyZWVJdGVtKSBldmVudC5pdGVtKS5nZXRCb3VuZHMo ZXZlbnQuaW5kZXgp
Ow0KCQkJCQlSZWN0YW5nbGUgaW1nQm91bmRzID0gaW1hZ2UuZ2V0Qm91bmRz KCk7DQoJCQkJCWJv
dW5kcy53aWR0aCAvPSAyOw0KCQkJCQlib3VuZHMud2lkdGggLT0gaW1nQm91 bmRzLndpZHRoIC8g
MjsNCgkJCQkJYm91bmRzLmhlaWdodCAvPSAyOw0KCQkJCQlib3VuZHMuaGVp Z2h0IC09IGltZ0Jv
dW5kcy5oZWlnaHQgLyAyOw0KDQoJCQkJCWludCB4ID0gYm91bmRzLndpZHRo ID4gMCA/IGJvdW5k
cy54ICsgYm91bmRzLndpZHRoIDogYm91bmRzLng7DQoJCQkJCWludCB5ID0g Ym91bmRzLmhlaWdo
dCA+IDAgPyBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQgOiBib3VuZHMueTsN Cg0KCQkJCQlldmVu
dC5nYy5kcmF3SW1hZ2UoaW1hZ2UsIHgsIHkpOw0KCQkJCQlicmVhazsNCgkJ CQl9DQoJCQl9DQoJ
CX0NCgl9OwkJDQoJdHJlZS5hZGRMaXN0ZW5lcihTV1QuUGFpbnRJdGVtLCBw YWludExpc3RlbmVy
KTsJCQ0KDQoJZm9yKGludCBpID0gMDsgaSA8IGNvbHVtbkNvdW50OyBpKysp IHsNCgkJdHJlZS5n
ZXRDb2x1bW4oaSkucGFjaygpOw0KCX0JDQoJc2hlbGwuc2V0U2l6ZSg1MDAs IDIwMCk7DQoJc2hl
bGwub3BlbigpOw0KCXdoaWxlKCFzaGVsbC5pc0Rpc3Bvc2VkICgpKSB7DQoJ CWlmKCFkaXNwbGF5
LnJlYWRBbmREaXNwYXRjaCgpKSBkaXNwbGF5LnNsZWVwKCk7DQoJfQ0KCWlm KGltYWdlICE9IG51
bGwpIGltYWdlLmRpc3Bvc2UoKTsNCglkaXNwbGF5LmRpc3Bvc2UoKTsNCn0N Cn0=

--Xananews.1.2.3--
Re: Custom-Drawing in first Tree-Column problem on Windows [message #655817 is a reply to message #655126] Tue, 22 February 2011 16:53 Go to previous messageGo to next message
Grant Gayed is currently offline Grant GayedFriend
Messages: 2150
Registered: July 2009
Senior Member
Hi Manuel,

This is probably a bug that could be fixed in swt, so feel free to log a
report at
https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform &component=SWT
and provide the snippet from this post.

In the meantime, a workaround you could use would be to detect this case and
redraw the first column, like the lines I've pasted below. If your real
case resembles the snippet you've provided then this should work reasonably
well.

/* work around swt bug... */
if (SWT.getPlatform().equals("win32")) {
tree.getColumn(0).addListener(SWT.Resize, new Listener() {
public void handleEvent(Event event) {
tree.getDisplay().asyncExec(new Runnable() {
public void run() {
if (tree.isDisposed()) return;
/* assumes logical column 0 is also first physical
column */
tree.redraw(0, 0, tree.getColumn(0).getWidth(),
tree.getBounds().height, true);
}
});
}
});
}

HTH,
Grant


"Manuel Steurer" <manuel.steurer@quattro-soft.de> wrote in message
news:ijlom1$j40$1@news.eclipse.org...
> Hi,
>
> I've modified the SWT Snippet 230 to use a Tree instead of a Table and
> also mixed in the drawing logic from Jface Snippet 51 to draw an image
> in the center of each column, see attached snippet. When you resize the
> columns the Image moves along with it in all columns but the first.
> Once you "dip" the window outside the screen and get it back it is
> correctly painted.
>
> The problem does not exist on Linux, and also not when using a Table
> instead of a Tree.
>
> Is this a known Windows bug I have to live with or is this something
> that can be fixed in SWT?
>
> Greetings,
> Manuel
>
Re: Custom-Drawing in first Tree-Column problem on Windows [message #655977 is a reply to message #655817] Wed, 23 February 2011 15:35 Go to previous message
Manuel Steurer is currently offline Manuel SteurerFriend
Messages: 37
Registered: July 2009
Member
Hi,

thanks for your answer, I tried the workaround and it works for me.
I also logged this bug report:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=337985

Greetings,
Manuel


Grant Gayed wrote:

> Hi Manuel,
>
> This is probably a bug that could be fixed in swt, so feel free to
> log a report at
> https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform &component
> =SWT and provide the snippet from this post.
>
> In the meantime, a workaround you could use would be to detect this
> case and redraw the first column, like the lines I've pasted below.
> If your real case resembles the snippet you've provided then this
> should work reasonably well.
>
> /* work around swt bug... */
> if (SWT.getPlatform().equals("win32")) {
> tree.getColumn(0).addListener(SWT.Resize, new Listener() {
> public void handleEvent(Event event) {
> tree.getDisplay().asyncExec(new Runnable() {
> public void run() {
> if (tree.isDisposed()) return;
> /* assumes logical column 0 is also first physical
> column */ tree.redraw(0, 0,
> tree.getColumn(0).getWidth(), tree.getBounds().height, true);
> } });
> }
> });
> }
>
> HTH,
> Grant
>
>
> "Manuel Steurer" <manuel.steurer@quattro-soft.de> wrote in message
> news:ijlom1$j40$1@news.eclipse.org...
> > Hi,
> >
> > I've modified the SWT Snippet 230 to use a Tree instead of a Table
> > and also mixed in the drawing logic from Jface Snippet 51 to draw
> > an image in the center of each column, see attached snippet. When
> > you resize the columns the Image moves along with it in all columns
> > but the first. Once you "dip" the window outside the screen and
> > get it back it is correctly painted.
> >
> > The problem does not exist on Linux, and also not when using a Table
> > instead of a Tree.
> >
> > Is this a known Windows bug I have to live with or is this something
> > that can be fixed in SWT?
> >
> > Greetings,
> > Manuel
> >



--
Previous Topic:Showing log file in TextViewer
Next Topic:Running a SWT app in a different OS
Goto Forum:
  


Current Time: Wed Jan 27 21:23:29 GMT 2021

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

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

Back to the top