public void installColoredLabels(StructuredViewer viewer) {
   if (fManagedViewers.containsKey(viewer)) {
     return; // already installed
   }
   if (fManagedViewers.isEmpty()) {
     // first viewer installed
     PreferenceConstants.getPreferenceStore().addPropertyChangeListener(this);
     fColorRegisty.addListener(this);
   }
   fManagedViewers.put(viewer, new ManagedViewer(viewer));
 }
 private void inititalizeColors() {
   if (getSite().getShell().isDisposed()) return;
   Display display = getSite().getShell().getDisplay();
   if (display == null || display.isDisposed()) return;
   setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
   ColorRegistry registry = JFaceResources.getColorRegistry();
   registry.addListener(this);
   fBackgroundColorRGB = registry.getRGB(getBackgroundColorKey());
   Color bgColor;
   if (fBackgroundColorRGB == null) {
     bgColor = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
     fBackgroundColorRGB = bgColor.getRGB();
   } else {
     bgColor = new Color(display, fBackgroundColorRGB);
     fBackgroundColor = bgColor;
   }
   setBackground(bgColor);
 }