fListeners.add(listener);
if (fProblemChangedListener == null) {
fProblemChangedListener = new IProblemChangedListener() {
public void problemsChanged(IResource[] changedResources, boolean isMarkerChange) {
if (fListeners != null && !fListeners.isEmpty()) {
LabelProviderChangedEvent event = new ProblemsLabelChangedEvent(ProblemsLabelDecorator.this,
changedResources, isMarkerChange);
Object[] listeners = fListeners.getListeners();
for (int i = 0; i < listeners.length; i++) {
((ILabelProviderListener) listeners[i]).labelProviderChanged(event);
}