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 59165 Details for
Bug 174355
[Viewers] IViewerLabelProvider isn't supported by the TreeViewer anymore
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.
[patch]
small fix after talking to Boris
clipboard41017.txt (text/plain), 18.83 KB, created by
Thomas Schindl
on 2007-02-16 11:58:32 EST
(
hide
)
Description:
small fix after talking to Boris
Filename:
MIME Type:
Creator:
Thomas Schindl
Created:
2007-02-16 11:58:32 EST
Size:
18.83 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.tests >Index: Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java,v >retrieving revision 1.13 >diff -u -r1.13 TableViewerTest.java >--- Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java 28 Nov 2006 05:36:06 -0000 1.13 >+++ Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java 16 Feb 2007 16:55:46 -0000 >@@ -16,10 +16,12 @@ > import org.eclipse.jface.viewers.ColumnViewer; > import org.eclipse.jface.viewers.ColumnWeightData; > import org.eclipse.jface.viewers.ITableLabelProvider; >+import org.eclipse.jface.viewers.IViewerLabelProvider; > import org.eclipse.jface.viewers.StructuredViewer; > import org.eclipse.jface.viewers.TableLayout; > import org.eclipse.jface.viewers.TableViewer; > import org.eclipse.jface.viewers.ViewerColumn; >+import org.eclipse.jface.viewers.ViewerLabel; > import org.eclipse.swt.SWT; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Composite; >@@ -34,7 +36,7 @@ > > public String getText(Object element) { > if (fExtended) >- return providedString((String) element); >+ return providedString((TestElement) element); > return element.toString(); > } > >@@ -49,6 +51,14 @@ > } > } > >+ public static class TableTestViewerLabelProvider extends TableTestLabelProvider implements IViewerLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, Object element) { >+ label.setText("ViewerLabelProvider-"+label.getText()); >+ } >+ >+ } >+ > public TableViewerTest(String name) { > super(name); > } >@@ -183,6 +193,11 @@ > > } > >- >+ public void testViewerLabelProvider() { >+ TableViewer tableviewer = (TableViewer) fViewer; >+ tableviewer.setLabelProvider(new TableTestViewerLabelProvider()); >+ assertTrue(getItemText(0).startsWith("ViewerLabelProvider-")); >+ tableviewer.setLabelProvider(new TableTestLabelProvider()); >+ } > >-} >+} >\ No newline at end of file >Index: Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java,v >retrieving revision 1.4 >diff -u -r1.4 TreeViewerColumnTest.java >--- Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java 28 Nov 2006 05:36:06 -0000 1.4 >+++ Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java 16 Feb 2007 16:55:46 -0000 >@@ -14,9 +14,13 @@ > > import org.eclipse.jface.viewers.ColumnViewer; > import org.eclipse.jface.viewers.ITableLabelProvider; >+import org.eclipse.jface.viewers.ITreePathLabelProvider; >+import org.eclipse.jface.viewers.IViewerLabelProvider; > import org.eclipse.jface.viewers.StructuredViewer; >+import org.eclipse.jface.viewers.TreePath; > import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.jface.viewers.ViewerColumn; >+import org.eclipse.jface.viewers.ViewerLabel; > import org.eclipse.swt.SWT; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Composite; >@@ -32,7 +36,7 @@ > > public String getText(Object element) { > if (fExtended) >- return providedString((String) element); >+ return providedString((TestElement) element); > > return element.toString(); > } >@@ -48,6 +52,22 @@ > } > } > >+ public static class TableTreeTestViewerLabelProvider extends TableTreeTestLabelProvider implements IViewerLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, Object element) { >+ label.setText("ViewerLabelProvider-"+label.getText()); >+ } >+ >+ } >+ >+ public static class TableTreeTestTreeLabelprovider extends TableTreeTestLabelProvider implements ITreePathLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, TreePath elementPath) { >+ label.setText("TreePath-" + elementPath.getSegmentCount()); >+ } >+ >+ } >+ > public TreeViewerColumnTest(String name) { > super(name); > } >@@ -142,4 +162,18 @@ > // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes > fViewer.refresh(); > } >+ >+ public void testViewerLabelProvider() { >+ TreeViewer tableviewer = (TreeViewer) fViewer; >+ tableviewer.setLabelProvider(new TableTreeTestViewerLabelProvider()); >+ assertTrue(getItemText(0).startsWith("ViewerLabelProvider-")); >+ tableviewer.setLabelProvider(new TableTreeTestLabelProvider()); >+ } >+ >+ public void testTreeLabelProvider() { >+ TreeViewer tableviewer = (TreeViewer) fViewer; >+ tableviewer.setLabelProvider(new TableTreeTestTreeLabelprovider()); >+ assertTrue(getItemText(0).startsWith("TreePath-1")); >+ tableviewer.setLabelProvider(new TableTreeTestLabelProvider()); >+ } > } >#P org.eclipse.jface >Index: src/org/eclipse/jface/viewers/TableViewerRow.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.java,v >retrieving revision 1.4 >diff -u -r1.4 TableViewerRow.java >--- src/org/eclipse/jface/viewers/TableViewerRow.java 20 Jan 2007 05:11:39 -0000 1.4 >+++ src/org/eclipse/jface/viewers/TableViewerRow.java 16 Feb 2007 16:55:49 -0000 >@@ -9,6 +9,7 @@ > * Contributors: > * IBM Corporation - initial API and implementation > * Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation >+ * - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -181,4 +182,9 @@ > return null; > } > >+ public TreePath getTreePath() { >+ // Tables don't support paths >+ return null; >+ } >+ > } >Index: src/org/eclipse/jface/viewers/ColumnLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java,v >retrieving revision 1.1 >diff -u -r1.1 ColumnLabelProvider.java >--- src/org/eclipse/jface/viewers/ColumnLabelProvider.java 25 Sep 2006 13:35:58 -0000 1.1 >+++ src/org/eclipse/jface/viewers/ColumnLabelProvider.java 16 Feb 2007 16:55:48 -0000 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Tom Schindl <tom.schindl@bestsolution.at> - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -32,14 +33,27 @@ > * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) > */ > public void update(ViewerCell cell) { >- cell.setText(getText(cell.getElement())); >- cell.setImage(getImage(cell.getElement())); >- cell.setBackground(getBackground(cell.getElement())); >- cell.setForeground(getForeground(cell.getElement())); >- cell.setFont(getFont(cell.getElement())); >- >+ update(cell, buildLabel(cell)); > } >- >+ >+ /** >+ * @param cell the cell the label is built for >+ * @return the newly created label >+ */ >+ protected ViewerLabel buildLabel(ViewerCell cell) { >+ Object element = cell.getElement(); >+ ViewerLabel label = new ViewerLabel(cell.getText(),cell.getImage()); >+ >+ // Set up the initial settings from the label provider >+ label.setBackground(getBackground(element)); >+ label.setForeground(getForeground(element)); >+ label.setFont(getFont(element)); >+ label.setText(getText(element)); >+ label.setImage(getImage(element)); >+ >+ return label; >+ } >+ > /* (non-Javadoc) > * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object) > */ >Index: src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java,v >retrieving revision 1.1 >diff -u -r1.1 WrappedViewerLabelProvider.java >--- src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java 25 Sep 2006 13:35:58 -0000 1.1 >+++ src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java 16 Feb 2007 16:55:49 -0000 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Tom Schindl <tom.schindl@bestsolution.at> - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -33,6 +34,10 @@ > > private IFontProvider fontProvider; > >+ private IViewerLabelProvider viewerLabelProvider; >+ >+ private ITreePathLabelProvider treePathLabelProvider; >+ > /** > * Create a new instance of the receiver based on labelProvider. > * >@@ -59,6 +64,11 @@ > if (provider instanceof IFontProvider) > fontProvider = (IFontProvider) provider; > >+ if(provider instanceof IViewerLabelProvider) >+ viewerLabelProvider = (IViewerLabelProvider) provider; >+ >+ if(provider instanceof ITreePathLabelProvider) >+ treePathLabelProvider = (ITreePathLabelProvider) provider; > } > > /* >@@ -115,6 +125,21 @@ > return colorProvider.getForeground(element); > } > >+ public void update(ViewerCell cell, ViewerLabel label) { >+ if( treePathLabelProvider != null ) { >+ TreePath path = cell.getViewerRow().getTreePath(); >+ if( path != null ) { >+ treePathLabelProvider.updateLabel(label, path); >+ } >+ } >+ >+ if( viewerLabelProvider != null ) { >+ viewerLabelProvider.updateLabel(label, cell.getElement()); >+ } >+ >+ super.update(cell,label); >+ } >+ > /** > * Get the lable provider > * @return {@link ILabelProvider} >Index: src/org/eclipse/jface/viewers/TreeViewerRow.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java,v >retrieving revision 1.4 >diff -u -r1.4 TreeViewerRow.java >--- src/org/eclipse/jface/viewers/TreeViewerRow.java 20 Jan 2007 05:11:39 -0000 1.4 >+++ src/org/eclipse/jface/viewers/TreeViewerRow.java 16 Feb 2007 16:55:49 -0000 >@@ -8,10 +8,13 @@ > * Contributors: > * IBM Corporation - initial API and implementation > * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation >+ * - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; > >+import java.util.ArrayList; >+ > import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.graphics.Font; > import org.eclipse.swt.graphics.Image; >@@ -293,6 +296,17 @@ > > return rv; > } >- >- >-} >+ >+ public TreePath getTreePath() { >+ ArrayList path = new ArrayList(); >+ path.add(item.getData()); >+ >+ TreeItem parent = item; >+ >+ while( (parent = parent.getParentItem()) != null ) { >+ path.add(0,parent.getData()); >+ } >+ >+ return new TreePath(path.toArray()); >+ } >+} >\ No newline at end of file >Index: src/org/eclipse/jface/viewers/DecoratingLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java,v >retrieving revision 1.27 >diff -u -r1.27 DecoratingLabelProvider.java >--- src/org/eclipse/jface/viewers/DecoratingLabelProvider.java 6 Feb 2007 03:30:46 -0000 1.27 >+++ src/org/eclipse/jface/viewers/DecoratingLabelProvider.java 16 Feb 2007 16:55:49 -0000 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Tom Schindl <tom.schindl@bestsolution.at> - Fix for bug 174355 > *******************************************************************************/ > package org.eclipse.jface.viewers; > >@@ -471,15 +472,6 @@ > label.setFont(getFont(cell.getElement())); > > updateLabel(label, cell.getElement()); >- >- cell.setBackground(label.getBackground()); >- cell.setForeground(label.getForeground()); >- cell.setFont(label.getFont()); >- >- if (label.hasNewText()) >- cell.setText(label.getText()); >- >- if (label.hasNewImage()) >- cell.setImage(label.getImage()); >+ update(cell, label); > } > } >Index: src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java,v >retrieving revision 1.5 >diff -u -r1.5 TableColumnViewerLabelProvider.java >--- src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java 10 Nov 2006 17:42:08 -0000 1.5 >+++ src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java 16 Feb 2007 16:55:49 -0000 >@@ -8,6 +8,7 @@ > * Contributors: > * IBM Corporation - initial API and implementation > * Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation >+ * - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -63,38 +64,28 @@ > * @see org.eclipse.jface.viewers.WrappedViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) > */ > public void update(ViewerCell cell) { >- >+ ViewerLabel label = buildLabel(cell); >+ > Object element = cell.getElement(); > int index = cell.getColumnIndex(); > >- if (tableLabelProvider == null) { >- cell.setText(getLabelProvider().getText(element)); >- cell.setImage(getLabelProvider().getImage(element)); >- } else { >- cell.setText(tableLabelProvider.getColumnText(element, index)); >- cell.setImage(tableLabelProvider.getColumnImage(element, index)); >+ if (tableLabelProvider != null) { >+ label.setText(tableLabelProvider.getColumnText(element, index)); >+ label.setImage(tableLabelProvider.getColumnImage(element, index)); > } > >- if (tableColorProvider == null) { >- if (getColorProvider() != null) { >- cell.setBackground(getColorProvider().getBackground(element)); >- cell.setForeground(getColorProvider().getForeground(element)); >- } >- >- } else { >- cell.setBackground(tableColorProvider >+ if (tableColorProvider != null) { >+ label.setBackground(tableColorProvider > .getBackground(element, index)); >- cell.setForeground(tableColorProvider >+ label.setForeground(tableColorProvider > .getForeground(element, index)); >- > } > >- if (tableFontProvider == null) { >- if (getFontProvider() != null) >- cell.setFont(getFontProvider().getFont(element)); >- } else >- cell.setFont(tableFontProvider.getFont(element, index)); >+ if (tableFontProvider != null) { >+ label.setFont(tableFontProvider.getFont(element, index)); >+ } > >+ update(cell, label); > } > > >Index: src/org/eclipse/jface/viewers/ViewerRow.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java,v >retrieving revision 1.8 >diff -u -r1.8 ViewerRow.java >--- src/org/eclipse/jface/viewers/ViewerRow.java 20 Jan 2007 05:11:39 -0000 1.8 >+++ src/org/eclipse/jface/viewers/ViewerRow.java 16 Feb 2007 16:55:49 -0000 >@@ -9,6 +9,7 @@ > * IBM Corporation - initial API and implementation > * Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation > * fix for bug 166346, bug 167325s >+ * - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -40,12 +41,14 @@ > > /** > * Constant denoting the row above the current one (value is 1). >+ * > * @see #getNeighbor(int, boolean) > */ > public static final int ABOVE = 1; > > /** > * Constant denoting the row below the current one (value is 2). >+ * > * @see #getNeighbor(int, boolean) > */ > public static final int BELOW = 2; >@@ -224,10 +227,9 @@ > public abstract Control getControl(); > > /** >- * Returns a neighboring row, or <code>null</code> if no >- * neighbor exists in the given direction. If <code>sameLevel</code> is >- * <code>true</code>, only sibling rows (under the same parent) will be >- * considered. >+ * Returns a neighboring row, or <code>null</code> if no neighbor exists >+ * in the given direction. If <code>sameLevel</code> is <code>true</code>, >+ * only sibling rows (under the same parent) will be considered. > * > * @param direction > * the direction {@link #BELOW} or {@link #ABOVE} >@@ -238,4 +240,9 @@ > */ > public abstract ViewerRow getNeighbor(int direction, boolean sameLevel); > >+ /** >+ * The tree path used to identify an element by the unique path >+ * @return the path or <code>null</code> if no path exists >+ */ >+ public abstract TreePath getTreePath(); > } >Index: src/org/eclipse/jface/viewers/CellLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java,v >retrieving revision 1.5 >diff -u -r1.5 CellLabelProvider.java >--- src/org/eclipse/jface/viewers/CellLabelProvider.java 5 Dec 2006 15:50:43 -0000 1.5 >+++ src/org/eclipse/jface/viewers/CellLabelProvider.java 16 Feb 2007 16:55:48 -0000 >@@ -8,6 +8,7 @@ > * Contributors: > * IBM Corporation - initial API and implementation > * Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation >+ * - Fix for bug 174355 > ******************************************************************************/ > > package org.eclipse.jface.viewers; >@@ -29,8 +30,7 @@ > * Platform/UI team. > */ > public abstract class CellLabelProvider extends BaseLabelProvider { >- >- >+ > /** > * Create a new instance of the receiver. > */ >@@ -52,8 +52,11 @@ > || labelProvider instanceof ITableColorProvider > || labelProvider instanceof ITableFontProvider) > return new TableColumnViewerLabelProvider(labelProvider); >- if (labelProvider instanceof CellLabelProvider) >+ >+ if (labelProvider instanceof CellLabelProvider) { > return (CellLabelProvider) labelProvider; >+ } >+ > return new WrappedViewerLabelProvider(labelProvider); > > } >@@ -193,4 +196,20 @@ > */ > public abstract void update(ViewerCell cell); > >-} >+ /** >+ * update the cell using the informations provided by {@link ViewerLabel} >+ * @param cell the cell >+ * @param label the label holding informations >+ */ >+ void update(ViewerCell cell, ViewerLabel label) { >+ cell.setBackground(label.getBackground()); >+ cell.setForeground(label.getForeground()); >+ cell.setFont(label.getFont()); >+ >+ if (label.hasNewText()) >+ cell.setText(label.getText()); >+ >+ if (label.hasNewImage()) >+ cell.setImage(label.getImage()); >+ } >+} >\ No newline at end of file
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 Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 174355
:
59101
|
59103
|
59158
|
59165
|
59535
|
59551
|
59557
|
59578
|
60281