|
Lines 24-40
Link Here
|
| 24 |
import org.eclipse.dltk.ui.ScriptElementLabels; |
24 |
import org.eclipse.dltk.ui.ScriptElementLabels; |
| 25 |
import org.eclipse.jface.resource.CompositeImageDescriptor; |
25 |
import org.eclipse.jface.resource.CompositeImageDescriptor; |
| 26 |
import org.eclipse.jface.util.SafeRunnable; |
26 |
import org.eclipse.jface.util.SafeRunnable; |
|
|
27 |
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; |
| 27 |
import org.eclipse.jface.viewers.IColorProvider; |
28 |
import org.eclipse.jface.viewers.IColorProvider; |
| 28 |
import org.eclipse.jface.viewers.ILabelDecorator; |
29 |
import org.eclipse.jface.viewers.ILabelDecorator; |
| 29 |
import org.eclipse.jface.viewers.ILabelProvider; |
30 |
import org.eclipse.jface.viewers.ILabelProvider; |
| 30 |
import org.eclipse.jface.viewers.ILabelProviderListener; |
31 |
import org.eclipse.jface.viewers.ILabelProviderListener; |
| 31 |
import org.eclipse.jface.viewers.LabelProviderChangedEvent; |
32 |
import org.eclipse.jface.viewers.LabelProviderChangedEvent; |
|
|
33 |
import org.eclipse.jface.viewers.StyledCellLabelProvider; |
| 34 |
import org.eclipse.jface.viewers.StyledString; |
| 32 |
import org.eclipse.swt.graphics.Color; |
35 |
import org.eclipse.swt.graphics.Color; |
| 33 |
import org.eclipse.swt.graphics.Image; |
36 |
import org.eclipse.swt.graphics.Image; |
| 34 |
import org.eclipse.swt.graphics.ImageData; |
37 |
import org.eclipse.swt.graphics.ImageData; |
| 35 |
import org.eclipse.swt.graphics.Point; |
38 |
import org.eclipse.swt.graphics.Point; |
| 36 |
|
39 |
|
| 37 |
public class ScriptUILabelProvider implements ILabelProvider, IColorProvider { |
40 |
public class ScriptUILabelProvider implements ILabelProvider, IColorProvider, IStyledLabelProvider { |
| 38 |
|
41 |
|
| 39 |
protected ListenerList fListeners = new ListenerList(1); |
42 |
protected ListenerList fListeners = new ListenerList(1); |
| 40 |
|
43 |
|
|
Lines 200-226
Link Here
|
| 200 |
} |
203 |
} |
| 201 |
|
204 |
|
| 202 |
public String getText(Object element) { |
205 |
public String getText(Object element) { |
| 203 |
ILabelProvider[] providers = getProviders(element); |
206 |
StyledString styledText = getStyledText(element); |
| 204 |
String result = null; |
207 |
if (styledText != null) |
| 205 |
if (providers != null) { |
208 |
return styledText.toString(); |
| 206 |
for (int i = 0; i < providers.length; i++) { |
209 |
return null; |
| 207 |
String text = providers[i].getText(element); |
|
|
| 208 |
if (text != null) { |
| 209 |
result = text; |
| 210 |
break; |
| 211 |
} |
| 212 |
} |
| 213 |
} |
| 214 |
if (result == null) { |
| 215 |
result = ScriptElementLabels.getDefault().getTextLabel(element, |
| 216 |
evaluateTextFlags(element)); |
| 217 |
} |
| 218 |
|
| 219 |
if (result.length() == 0 && (element instanceof IStorage)) { |
| 220 |
result = fStorageLabelProvider.getText(element); |
| 221 |
} |
| 222 |
|
| 223 |
return decorateText(result, element); |
| 224 |
} |
210 |
} |
| 225 |
|
211 |
|
| 226 |
private ILabelProvider[] getProviders(Object element) { |
212 |
private ILabelProvider[] getProviders(Object element) { |
|
Lines 337-340
Link Here
|
| 337 |
} |
323 |
} |
| 338 |
return text; |
324 |
return text; |
| 339 |
} |
325 |
} |
|
|
326 |
|
| 327 |
/** |
| 328 |
* @since 5.1 |
| 329 |
*/ |
| 330 |
public StyledString getStyledText(Object element) { |
| 331 |
ILabelProvider[] providers = getProviders(element); |
| 332 |
StyledString result = null; |
| 333 |
if (providers != null) { |
| 334 |
for (int i = 0; i < providers.length; i++) { |
| 335 |
if (providers[i] instanceof IStyledLabelProvider) { |
| 336 |
StyledString string = ((IStyledLabelProvider) providers[i]).getStyledText(element); |
| 337 |
if (string != null) { |
| 338 |
result = string; |
| 339 |
break; |
| 340 |
} |
| 341 |
} else { |
| 342 |
String text = providers[i].getText(element); |
| 343 |
if (text != null) { |
| 344 |
result = new StyledString(text); |
| 345 |
break; |
| 346 |
} |
| 347 |
} |
| 348 |
} |
| 349 |
} |
| 350 |
if (result == null) { |
| 351 |
result = new StyledString(ScriptElementLabels.getDefault().getTextLabel(element, evaluateTextFlags(element))); |
| 352 |
} |
| 353 |
|
| 354 |
if (result.length() == 0 && (element instanceof IStorage)) { |
| 355 |
result = new StyledString(fStorageLabelProvider.getText(element)); |
| 356 |
} |
| 357 |
|
| 358 |
String decorated = decorateText(result.getString(), element); |
| 359 |
if (decorated != null) { |
| 360 |
return StyledCellLabelProvider.styleDecoratedString(decorated, StyledString.DECORATIONS_STYLER, result); |
| 361 |
} |
| 362 |
return result; |
| 363 |
} |
| 340 |
} |
364 |
} |