|
Lines 11-16
Link Here
|
| 11 |
|
11 |
|
| 12 |
package org.eclipse.jface.viewers; |
12 |
package org.eclipse.jface.viewers; |
| 13 |
|
13 |
|
|
|
14 |
import org.eclipse.core.runtime.Assert; |
| 14 |
import org.eclipse.swt.graphics.Color; |
15 |
import org.eclipse.swt.graphics.Color; |
| 15 |
import org.eclipse.swt.graphics.Font; |
16 |
import org.eclipse.swt.graphics.Font; |
| 16 |
import org.eclipse.swt.graphics.Image; |
17 |
import org.eclipse.swt.graphics.Image; |
|
Lines 33-38
Link Here
|
| 33 |
|
34 |
|
| 34 |
private IFontProvider fontProvider; |
35 |
private IFontProvider fontProvider; |
| 35 |
|
36 |
|
|
|
37 |
private IViewerLabelProvider viewerLabelProvider; |
| 38 |
|
| 39 |
private ITreePathLabelProvider treePathLabelProvider; |
| 40 |
|
| 36 |
/** |
41 |
/** |
| 37 |
* Create a new instance of the receiver based on labelProvider. |
42 |
* Create a new instance of the receiver based on labelProvider. |
| 38 |
* |
43 |
* |
|
Lines 50-55
Link Here
|
| 50 |
* {@link Object} |
55 |
* {@link Object} |
| 51 |
*/ |
56 |
*/ |
| 52 |
public void setProviders(Object provider) { |
57 |
public void setProviders(Object provider) { |
|
|
58 |
if (provider instanceof ITreePathLabelProvider) |
| 59 |
treePathLabelProvider = ((ITreePathLabelProvider) provider); |
| 60 |
|
| 61 |
if (provider instanceof IViewerLabelProvider) |
| 62 |
viewerLabelProvider = ((IViewerLabelProvider) provider); |
| 63 |
|
| 53 |
if (provider instanceof ILabelProvider) |
64 |
if (provider instanceof ILabelProvider) |
| 54 |
labelProvider = ((ILabelProvider) provider); |
65 |
labelProvider = ((ILabelProvider) provider); |
| 55 |
|
66 |
|
|
Lines 138-141
Link Here
|
| 138 |
IFontProvider getFontProvider() { |
149 |
IFontProvider getFontProvider() { |
| 139 |
return fontProvider; |
150 |
return fontProvider; |
| 140 |
} |
151 |
} |
|
|
152 |
|
| 153 |
public void update(ViewerCell cell) { |
| 154 |
if (viewerLabelProvider != null) { |
| 155 |
ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage()); |
| 156 |
viewerLabelProvider.updateLabel(label, cell.getElement()); |
| 157 |
applyViewerLabel(cell, label); |
| 158 |
} else if (treePathLabelProvider != null) { |
| 159 |
ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage()); |
| 160 |
TreePath treePath = cell.getViewerRow().getTreePath(); |
| 161 |
|
| 162 |
Assert.isNotNull(treePath); |
| 163 |
treePathLabelProvider.updateLabel(label, treePath); |
| 164 |
|
| 165 |
applyViewerLabel(cell, label); |
| 166 |
} else { |
| 167 |
super.update(cell); |
| 168 |
} |
| 169 |
} |
| 170 |
|
| 171 |
private void applyViewerLabel(ViewerCell cell, ViewerLabel label) { |
| 172 |
if (label.hasNewText()) { |
| 173 |
cell.setText(label.getText()); |
| 174 |
} |
| 175 |
if (label.hasNewImage()) { |
| 176 |
cell.setImage(label.getImage()); |
| 177 |
} |
| 178 |
if (label.hasNewBackground()) { |
| 179 |
cell.setBackground(label.getBackground()); |
| 180 |
} |
| 181 |
if (label.hasNewForeground()) { |
| 182 |
cell.setForeground(label.getForeground()); |
| 183 |
} |
| 184 |
if (label.hasNewFont()) { |
| 185 |
cell.setFont(label.getFont()); |
| 186 |
} |
| 187 |
} |
| 141 |
} |
188 |
} |