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 73152 Details for
Bug 195223
[Viewers] 'refresh()' of TreeViewer doesn't remove the image displayed for the previous column
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.
Test snippet
Snippet014TreeViewerNoMandatoryLabelProvider.java (text/plain), 6.34 KB, created by
Thomas Schindl
on 2007-07-05 15:09:54 EDT
(
hide
)
Description:
Test snippet
Filename:
MIME Type:
Creator:
Thomas Schindl
Created:
2007-07-05 15:09:54 EDT
Size:
6.34 KB
patch
obsolete
>/******************************************************************************* > * Copyright (c) 2006 Tom Schindl and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html > * > * Contributors: > * Tom Schindl - initial API and implementation > *******************************************************************************/ > >package org.eclipse.jface.snippets.viewers; > >import java.util.ArrayList; > >import org.eclipse.jface.resource.FontRegistry; >import org.eclipse.jface.viewers.CheckboxTreeViewer; >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.LabelProvider; >import org.eclipse.jface.viewers.TreeViewer; >import org.eclipse.jface.viewers.Viewer; >import org.eclipse.jface.viewers.ViewerFilter; >import org.eclipse.swt.SWT; >import org.eclipse.swt.events.SelectionAdapter; >import org.eclipse.swt.events.SelectionEvent; >import org.eclipse.swt.graphics.Color; >import org.eclipse.swt.graphics.Font; >import org.eclipse.swt.graphics.GC; >import org.eclipse.swt.graphics.Image; >import org.eclipse.swt.layout.FillLayout; >import org.eclipse.swt.widgets.Button; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.Shell; >import org.eclipse.swt.widgets.TreeColumn; > >/** > * A simple TreeViewer to demonstrate usage > * > * @author Tom Schindl <tom.schindl@bestsolution.at> > * > */ >public class Snippet014TreeViewerNoMandatoryLabelProvider { > private static Image[] images; > > private class MyContentProvider implements ITreeContentProvider { > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) > */ > public Object[] getElements(Object inputElement) { > return ((MyModel) inputElement).child.toArray(); > } > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.IContentProvider#dispose() > */ > public void dispose() { > > } > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, > * java.lang.Object, java.lang.Object) > */ > public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { > > } > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) > */ > public Object[] getChildren(Object parentElement) { > return getElements(parentElement); > } > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) > */ > public Object getParent(Object element) { > if (element == null) { > return null; > } > > return ((MyModel) element).parent; > } > > /* > * (non-Javadoc) > * > * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) > */ > public boolean hasChildren(Object element) { > return ((MyModel) element).child.size() > 0; > } > > } > > public class MyModel { > public MyModel parent; > > public ArrayList child = new ArrayList(); > > public int counter; > > public MyModel(int counter, MyModel parent) { > this.parent = parent; > this.counter = counter; > } > > public String toString() { > String rv = "Item "; > if (parent != null) { > rv = parent.toString() + "."; > } > > rv += counter; > > return rv; > } > } > > public class MyLabelProvider extends LabelProvider implements > ITableLabelProvider { > FontRegistry registry = new FontRegistry(); > > public Image getColumnImage(Object element, int columnIndex) { > if( columnIndex == 1 && ((MyModel)element).counter % 2 == 0 ) { > return images[0]; > } > return null; > } > > public String getColumnText(Object element, int columnIndex) { > if( columnIndex == 0 ) { > return "Column " + columnIndex + " => " + element.toString(); > } > return ""; > } > } > > public Snippet014TreeViewerNoMandatoryLabelProvider(Shell shell) { > final CheckboxTreeViewer v = new CheckboxTreeViewer(shell); > > TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE); > column.setWidth(200); > column.setText("Column 1"); > > column = new TreeColumn(v.getTree(),SWT.NONE); > column.setWidth(200); > column.setText("Column 2"); > > v.setLabelProvider(new MyLabelProvider()); > v.setContentProvider(new MyContentProvider()); > v.setInput(createModel()); > > Button b = new Button(shell,SWT.PUSH); > b.addSelectionListener(new SelectionAdapter() { > private boolean b = true; > public void widgetSelected(SelectionEvent e) { > if( b ) { > v.setFilters(new ViewerFilter[] {new ViewerFilter() { > > public boolean select(Viewer viewer, > Object parentElement, Object element) { > > return ((MyModel)element).counter % 2 == 0; > } > > }}); > b = false; > } else { > v.setFilters(new ViewerFilter[0]); > b = true; > } > > } > > }); > } > > private MyModel createModel() { > > MyModel root = new MyModel(0, null); > root.counter = 0; > > MyModel tmp; > for (int i = 1; i < 10; i++) { > tmp = new MyModel(i, root); > root.child.add(tmp); > for (int j = 1; j < i; j++) { > tmp.child.add(new MyModel(j, tmp)); > } > } > > return root; > } > > private static Image createImage(Display display, int red, int green, int blue) { > Color color = new Color(display,red,green,blue); > Image image = new Image(display,10,10); > GC gc = new GC(image); > gc.setBackground(color); > gc.fillRectangle(0, 0, 10, 10); > gc.dispose(); > > return image; > } > > public static void main(String[] args) { > Display display = new Display(); > > images = new Image[4]; > images[0] = createImage(display,0,0,255); > images[1] = createImage(display,0,255,255); > images[2] = createImage(display,0,255,0); > images[3] = createImage(display,255,0,255); > > Shell shell = new Shell(display); > shell.setLayout(new FillLayout()); > new Snippet014TreeViewerNoMandatoryLabelProvider(shell); > 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 195223
:
72928
|
72929
| 73152