Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 287327 Details for
Bug 576690
[Tree] PaintItem does not receive HOT flag if unset in EraseItem
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Snippet to reproduce
VirtualOwnerDrawTree.java (text/plain), 2.63 KB, created by
Thomas Singer
on 2021-10-18 04:35:45 EDT
(
hide
)
Description:
Snippet to reproduce
Filename:
MIME Type:
Creator:
Thomas Singer
Created:
2021-10-18 04:35:45 EDT
Size:
2.63 KB
patch
obsolete
>import org.eclipse.swt.*; >import org.eclipse.swt.graphics.*; >import org.eclipse.swt.layout.*; >import org.eclipse.swt.widgets.*; > >/** > * @author Thomas Singer > */ >public class VirtualOwnerDrawTree { > > // Static ================================================================= > > public static void main(String[] args) { > final Display display = new Display(); > final Shell shell = new Shell(display); > shell.setLayout(new FillLayout()); > final Tree tree = new Tree(shell, SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL); > > final int itemCount = 5; > for (int i = 0; i < itemCount; i++) { > final TreeItem item1 = new TreeItem(tree, SWT.NONE); > > for (int j = 0; j < i; j++) { > final TreeItem item2 = new TreeItem(item1, SWT.NONE); > > for (int k = 0; k < j; k++) { > new TreeItem(item2, SWT.NONE); > } > } > } > > tree.addListener(SWT.SetData, event -> { > final TreeItem item = (TreeItem)event.item; > > final TreeItem parentItem = item.getParentItem(); > final String text; > > if (parentItem != null) { > final String parentText = (String)parentItem.getData(); > text = parentText + event.index + "/"; > } > else { > text = "/"; > } > > item.setData(text); > }); > > tree.addListener(SWT.MeasureItem, event -> { > final TreeItem item = (TreeItem)event.item; > final String text = (String)item.getData(); > final Point size = event.gc.stringExtent(text); > event.width = size.x; > event.height = size.y; > }); > tree.addListener(SWT.EraseItem, event -> { > event.gc.setClipping((Rectangle)null); > final Rectangle clientArea = tree.getClientArea(); > > int colorConstant = SWT.COLOR_WHITE; > if ((event.detail & SWT.SELECTED) > 0) { > colorConstant = SWT.COLOR_YELLOW; > } > else if ((event.detail & SWT.HOT) > 0) { > colorConstant = SWT.COLOR_GRAY; > } > event.gc.setBackground(event.display.getSystemColor(colorConstant)); > > event.gc.fillRectangle(clientArea.x, event.y, clientArea.width, event.height); > event.detail &= ~(SWT.FOREGROUND | SWT.BACKGROUND | SWT.HOT | SWT.SELECTED); > }); > tree.addListener(SWT.PaintItem, event -> { > final TreeItem item = (TreeItem)event.item; > final String text = (String)item.getData(); > final int colorConstant = (event.detail & SWT.HOT) > 0 ? SWT.COLOR_RED : SWT.COLOR_BLACK; > event.gc.setForeground(event.display.getSystemColor(colorConstant)); > event.gc.drawString(text, event.x, event.y, true); > }); > tree.setSelection(tree.getItem(0)); > shell.setSize(200, 200); > shell.open(); > while (!shell.isDisposed()) { > if (!display.readAndDispatch()) { > display.sleep(); > } > } > display.dispose(); > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 576690
: 287327 |
287328