Bug 166052 [Viewers] Regression: decorator of DecoratingLabelProvider completely replaces label provider
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
Object element = elementPath.getLastSegment();
		if (decorator != null) {
			if (decorator instanceof LabelDecorator) {
				LabelDecorator labelDecorator = (LabelDecorator) decorator;
				String text = labelDecorator.decorateText(settings.getText(),
						element, getDecorationContext());
				if (text != null && text.length() > 0)
					settings.setText(text);
				Image image = labelDecorator.decorateImage(settings.getImage(),
						element, getDecorationContext());
				if (image != null)
					settings.setImage(image);
			} else {
				String text = decorator.decorateText(settings.getText(),
						element);
				if (text != null && text.length() > 0)
					settings.setText(text);
				Image image = decorator.decorateImage(settings.getImage(),
						element);
				if (image != null)
					settings.setImage(image);
			}
			if (decorator instanceof IColorDecorator) {
				IColorDecorator colorDecorator = (IColorDecorator) decorator;
				Color background = colorDecorator.decorateBackground(element);
				if (background != null)
					settings.setBackground(background);
				Color foreground = colorDecorator.decorateForeground(element);
				if (foreground != null)
					settings.setForeground(foreground);