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 26906 Details for
Bug 108941
[Viewers] ITreeViewerListener on Tree component reports incorrect expansion state
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
UI Test to expose the problem
TreeViewerTest2.java (text/plain), 7.20 KB, created by
Rajeev Sudra
on 2005-09-07 11:25:47 EDT
(
hide
)
Description:
UI Test to expose the problem
Filename:
MIME Type:
Creator:
Rajeev Sudra
Created:
2005-09-07 11:25:47 EDT
Size:
7.20 KB
patch
obsolete
>package com.enigmatec.rif.experimental.preferences; > >import java.io.File; > >import org.eclipse.jface.viewers.ILabelProviderListener; >import org.eclipse.jface.viewers.ITableColorProvider; >import org.eclipse.jface.viewers.ITableFontProvider; >import org.eclipse.jface.viewers.ITableLabelProvider; >import org.eclipse.jface.viewers.ITreeContentProvider; >import org.eclipse.jface.viewers.ITreeViewerListener; >import org.eclipse.jface.viewers.TreeExpansionEvent; >import org.eclipse.jface.viewers.TreeViewer; >import org.eclipse.jface.viewers.Viewer; >import org.eclipse.swt.SWT; >import org.eclipse.swt.graphics.Color; >import org.eclipse.swt.graphics.Font; >import org.eclipse.swt.graphics.Image; >import org.eclipse.swt.layout.FormAttachment; >import org.eclipse.swt.layout.FormData; >import org.eclipse.swt.layout.FormLayout; >import org.eclipse.swt.widgets.Button; >import org.eclipse.swt.widgets.DirectoryDialog; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.Event; >import org.eclipse.swt.widgets.Listener; >import org.eclipse.swt.widgets.Shell; >import org.eclipse.swt.widgets.Tree; >import org.eclipse.swt.widgets.TreeColumn; >import org.eclipse.swt.widgets.TreeItem; > >/** > * @author Rajeev Sudra > * @version $Revision: $ > * > */ >public class TreeViewerTest2 { > > private static TreeViewerTestLabelProvider labelProvider1 = new TreeViewerTestLabelProvider(); > > private static ITreeContentProvider contentProvider = new ITreeContentProvider() { > public Object[] getChildren(Object parentElement) { > if (!(parentElement instanceof File)) > return null; > File file = (File) parentElement; > if (file.isDirectory()) > return file.listFiles(); > return null; > } > > public Object getParent(Object element) { > if (!(element instanceof File)) > return null; > File file = (File) element; > return file.getParentFile(); > } > > public boolean hasChildren(Object element) { > if (!(element instanceof File)) > return false; > File file = (File) element; > return file.isDirectory(); > } > > public Object[] getElements(Object inputElement) { > return getChildren(inputElement); > } > > public void dispose() { > } > > public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { > } > }; > > private static class TreeViewerTestLabelProvider implements ITableLabelProvider, ITableColorProvider, ITableFontProvider { > Font font = null; > > public String getColumnText(Object element, int columnIndex) { > if (!(element instanceof File)) > return null; > File file = (File) element; > switch (columnIndex) { > case 0: > return file.getName(); > case 1: > return "" + file.isHidden(); > } > return null; > } > > public Image getColumnImage(Object element, int columnIndex) { > if (columnIndex != 0) > return null; > if (!(element instanceof File)) > return null; > File file = (File) element; > Display display = Display.getCurrent(); > if (file.isDirectory()) > return display.getSystemImage(SWT.ICON_WARNING); > return display.getSystemImage(SWT.ICON_QUESTION); > } > > public void dispose() { > if (font != null) > font.dispose(); > font = null; > } > > public boolean isLabelProperty(Object element, String property) { > return false; > } > > public void addListener(ILabelProviderListener listener) { > } > > public void removeListener(ILabelProviderListener listener) { > } > > public Color getForeground(Object element, int columnIndex) { > if (columnIndex == 1) { > Display display = Display.getCurrent(); > return display.getSystemColor(SWT.COLOR_RED); > } > return null; > } > > public Color getBackground(Object element, int columnIndex) { > if (columnIndex == 0) { > File file = (File) element; > Display display = Display.getCurrent(); > if (file.isDirectory()) > return display.getSystemColor(SWT.COLOR_CYAN); > return display.getSystemColor(SWT.COLOR_MAGENTA); > } > return null; > } > > public Font getFont(Object element, int columnIndex) { > if (columnIndex == 2) { > if (font == null) { > Display display = Display.getCurrent(); > font = new Font(display, "Times", 12, SWT.ITALIC); > } > return font; > } > return null; > } > } > > public static void main(String[] args) { > final Display display = new Display(); > final Shell shell = new Shell(display); > shell.setLayout(new FormLayout()); > > final TreeViewer treeViewer1 = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.CHECK); > Tree tree1 = treeViewer1.getTree(); > tree1.setHeaderVisible(true); > TreeColumn column1 = new TreeColumn(tree1, SWT.LEFT); > column1.setText("File"); > column1.setImage(display.getSystemImage(SWT.ICON_WORKING)); > column1.setWidth(200); > TreeColumn column2 = new TreeColumn(tree1, SWT.CENTER); > column2.setText("Read-only"); > column2.setImage(display.getSystemImage(SWT.ICON_INFORMATION)); > column2.setWidth(200); > treeViewer1.setLabelProvider(labelProvider1); > treeViewer1.setContentProvider(contentProvider); > > treeViewer1.addTreeListener(new ITreeViewerListener() { > > public void treeCollapsed(TreeExpansionEvent event) { > System.out.println(".treeCollapsed()"); > printExpandedState(treeViewer1); > } > > public void treeExpanded(TreeExpansionEvent event) { > System.out.println(".treeExpanded()"); > printExpandedState(treeViewer1); > } > > }); > > Button b = new Button(shell, SWT.PUSH); > b.setText("choose root folder"); > b.addListener(SWT.Selection, new Listener() { > public void handleEvent(Event e) { > DirectoryDialog f = new DirectoryDialog(shell, SWT.OPEN); > String root = f.open(); > if (root != null) { > File file = new File(root); > if (file.exists()) { > treeViewer1.setInput(file); > treeViewer1.refresh(); > } > } > } > }); > > Button b2 = new Button(shell, SWT.PUSH); > b2.setText("invoke after expansion"); > b2.addListener(SWT.Selection, new Listener() { > public void handleEvent(Event e) { > //printYCoords(treeViewer1); > printExpandedState(treeViewer1); > } > }); > > FormData data = new FormData(); > data.left = new FormAttachment(0, 10); > data.top = new FormAttachment(0, 10); > data.right = new FormAttachment(50, -5); > data.bottom = new FormAttachment(b, -10); > tree1.setLayoutData(data); > > data = new FormData(); > data.left = new FormAttachment(0, 10); > data.bottom = new FormAttachment(100, -10); > b.setLayoutData(data); > > data = new FormData(); > data.left = new FormAttachment(0, 150); > data.bottom = new FormAttachment(100, -10); > b2.setLayoutData(data); > > shell.open(); > while (!shell.isDisposed()) { > if (!display.readAndDispatch()) > display.sleep(); > } > display.dispose(); > } > > private static void printYCoords(TreeViewer viewer) { > TreeItem[] items = viewer.getTree().getItems(); > for (int i = 0; i < items.length; i++) { > System.out.println(items[i].getData() + " : " + items[i].getBounds().y); > } > System.out.println("----------------"); > } > > private static void printExpandedState(TreeViewer viewer) { > Object[] objects = viewer.getExpandedElements(); > for (int i = 0; i < objects.length; i++) { > System.out.println(objects[i] + " : expanded"); > } > System.out.println("----------------"); > } > >}
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 108941
: 26906