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 59551 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]
patch for M5a
clipboard50232.txt (text/plain), 12.85 KB, created by
Thomas Schindl
on 2007-02-22 04:40:11 EST
(
hide
)
Description:
patch for M5a
Filename:
MIME Type:
Creator:
Thomas Schindl
Created:
2007-02-22 04:40:11 EST
Size:
12.85 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface >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 22 Feb 2007 09:35:08 -0000 >@@ -11,9 +11,13 @@ > > package org.eclipse.jface.viewers; > >+import java.util.LinkedList; >+ >+import org.eclipse.core.runtime.Assert; > import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.graphics.Font; > import org.eclipse.swt.graphics.Image; >+import org.eclipse.swt.widgets.TreeItem; > > /** > * The WrappedViewerLabelProvider is a label provider that >@@ -33,6 +37,10 @@ > > private IFontProvider fontProvider; > >+ private IViewerLabelProvider viewerLabelProvider; >+ >+ private ITreePathLabelProvider treePathLabelProvider; >+ > /** > * Create a new instance of the receiver based on labelProvider. > * >@@ -50,6 +58,12 @@ > * {@link Object} > */ > public void setProviders(Object provider) { >+ if (provider instanceof ITreePathLabelProvider) >+ treePathLabelProvider = ((ITreePathLabelProvider) provider); >+ >+ if (provider instanceof IViewerLabelProvider) >+ viewerLabelProvider = ((IViewerLabelProvider) provider); >+ > if (provider instanceof ILabelProvider) > labelProvider = ((ILabelProvider) provider); > >@@ -138,4 +152,84 @@ > IFontProvider getFontProvider() { > return fontProvider; > } >+ >+ void updateFromViewerLabelProvider(ViewerCell cell, ViewerLabel label) { >+ if (viewerLabelProvider != null) { >+ viewerLabelProvider.updateLabel(label, cell.getElement()); >+ } >+ } >+ >+ void updateFromTreePathLabelProvider(ViewerCell cell, ViewerLabel label) { >+ if (treePathLabelProvider != null && cell.getItem() instanceof TreeItem) { >+ TreePath treePath; >+ { >+ // inlined copy of AbstractTreeViewer.getTreePathFromItem >+ TreeItem item = (TreeItem) cell.getItem(); >+ LinkedList segments = new LinkedList(); >+ while (item != null) { >+ Object segment = item.getData(); >+ Assert.isNotNull(segment); >+ segments.addFirst(segment); >+ item = item.getParentItem(); >+ } >+ treePath = new TreePath(segments.toArray()); >+ } >+ treePathLabelProvider.updateLabel(label, treePath); >+ } >+ } >+ >+ private void updateFromLabelProvider(ViewerLabel label, Object element) { >+ String t = getText(element); >+ >+ if( t != null) >+ label.setText(t); >+ >+ Image i = getImage(element); >+ >+ if( i != null ) >+ label.setImage(i); >+ >+ Font f = getFont(element); >+ if( f != null ) >+ label.setFont(f); >+ >+ Color c = getForeground(element); >+ if( c != null ) >+ label.setForeground(c); >+ >+ c = getBackground(element); >+ if( c != null ) >+ label.setBackground(c); >+ >+ } >+ >+ public void update(ViewerCell cell) { >+ if( viewerLabelProvider == null && treePathLabelProvider == null ) { >+ super.update(cell); >+ } else { >+ ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage()); >+ updateFromTreePathLabelProvider(cell,label); >+ updateFromViewerLabelProvider(cell, label); >+ updateFromLabelProvider(label,cell.getElement()); >+ applyViewerLabel(cell, label); >+ } >+ } >+ >+ void applyViewerLabel(ViewerCell cell, ViewerLabel label) { >+ if (label.hasNewText()) { >+ cell.setText(label.getText()); >+ } >+ if (label.hasNewImage()) { >+ cell.setImage(label.getImage()); >+ } >+ if (label.hasNewBackground()) { >+ cell.setBackground(label.getBackground()); >+ } >+ if (label.hasNewForeground()) { >+ cell.setForeground(label.getForeground()); >+ } >+ if (label.hasNewFont()) { >+ cell.setFont(label.getFont()); >+ } >+ } > } >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 22 Feb 2007 09:35:08 -0000 >@@ -12,6 +12,11 @@ > > package org.eclipse.jface.viewers; > >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.Font; >+import org.eclipse.swt.graphics.Image; >+ >+ > > /** > * TableColumnViewerLabelProvider is the mapping from the table based providers >@@ -28,7 +33,6 @@ > * > */ > class TableColumnViewerLabelProvider extends WrappedViewerLabelProvider { >- > private ITableLabelProvider tableLabelProvider; > > private ITableColorProvider tableColorProvider; >@@ -58,43 +62,63 @@ > } > > >- >- /* (non-Javadoc) >- * @see org.eclipse.jface.viewers.WrappedViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) >- */ > public void update(ViewerCell cell) { >+ ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage()); >+ updateFromTreePathLabelProvider(cell,label); >+ updateFromViewerLabelProvider(cell, label); >+ updateFromLabelProvider(label,cell.getElement(),cell.getColumnIndex()); >+ applyViewerLabel(cell, label); >+ } > >- Object element = cell.getElement(); >- int index = cell.getColumnIndex(); >- >+ private void updateFromLabelProvider(ViewerLabel label, Object element, int index) { >+ String t; >+ Image i; >+ > if (tableLabelProvider == null) { >- cell.setText(getLabelProvider().getText(element)); >- cell.setImage(getLabelProvider().getImage(element)); >+ t = getLabelProvider().getText(element); >+ i = getLabelProvider().getImage(element); > } else { >- cell.setText(tableLabelProvider.getColumnText(element, index)); >- cell.setImage(tableLabelProvider.getColumnImage(element, index)); >+ t = tableLabelProvider.getColumnText(element, index); >+ i = tableLabelProvider.getColumnImage(element, index); > } >- >+ >+ if( t != null ) >+ label.setText(t); >+ >+ if( i != null ) >+ label.setImage(i); >+ >+ >+ Color bg = null; >+ Color fg = null; > if (tableColorProvider == null) { > if (getColorProvider() != null) { >- cell.setBackground(getColorProvider().getBackground(element)); >- cell.setForeground(getColorProvider().getForeground(element)); >+ bg = getColorProvider().getBackground(element); >+ fg = getColorProvider().getForeground(element); > } > > } else { >- cell.setBackground(tableColorProvider >- .getBackground(element, index)); >- cell.setForeground(tableColorProvider >- .getForeground(element, index)); >- >+ bg = tableColorProvider >+ .getBackground(element, index); >+ fg = tableColorProvider >+ .getForeground(element, index); > } >+ >+ if( bg != null ) >+ label.setBackground(bg); >+ >+ if( fg != null ) >+ label.setForeground(fg); > >+ Font f = null; > if (tableFontProvider == null) { > if (getFontProvider() != null) >- cell.setFont(getFontProvider().getFont(element)); >+ f = getFontProvider().getFont(element); > } else >- cell.setFont(tableFontProvider.getFont(element, index)); >+ f = tableFontProvider.getFont(element, index); > >+ if( f != null ) >+ label.setFont(f); > } > > >#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 22 Feb 2007 09:35:15 -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,21 @@ > } > } > >+ public static class TableTestViewerLabelProvider extends TableTestLabelProvider implements IViewerLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, Object element) { >+ label.setText("ViewerLabelProvider-"+label.getText()); >+ } >+ >+ public String getText(Object element) { >+ return null; >+ } >+ >+ public String getColumnText(Object element, int index) { >+ return null; >+ } >+ } >+ > public TableViewerTest(String name) { > super(name); > } >@@ -183,6 +200,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 22 Feb 2007 09:35:16 -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,36 @@ > } > } > >+ public static class TableTreeTestViewerLabelProvider extends TableTreeTestLabelProvider implements IViewerLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, Object element) { >+ label.setText("ViewerLabelProvider-"+label.getText()); >+ } >+ >+ public String getText(Object element) { >+ return null; >+ } >+ >+ public String getColumnText(Object element, int index) { >+ return null; >+ } >+ } >+ >+ public static class TableTreeTestTreeLabelprovider extends TableTreeTestLabelProvider implements ITreePathLabelProvider { >+ >+ public void updateLabel(ViewerLabel label, TreePath elementPath) { >+ label.setText("TreePath-" + elementPath.getSegmentCount()); >+ } >+ >+ public String getText(Object element) { >+ return null; >+ } >+ >+ public String getColumnText(Object element, int index) { >+ return null; >+ } >+ } >+ > public TreeViewerColumnTest(String name) { > super(name); > } >@@ -142,4 +176,19 @@ > // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes > fViewer.refresh(); > } >+ >+ public void testViewerLabelProvider() { >+ TreeViewer tableviewer = (TreeViewer) fViewer; >+ tableviewer.setLabelProvider(new TableTreeTestViewerLabelProvider()); >+ System.err.println(getItemText(0)); >+ 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()); >+ } > }
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