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)); }
protected final void refreshAllViewers() { for (Iterator iterator= fManagedViewers.values().iterator(); iterator.hasNext();) { ManagedViewer viewer= (ManagedViewer) iterator.next(); viewer.refresh(); } }
private ManagedViewer(StructuredViewer viewer) { fViewer= viewer; fOwnerDrawSupport= null; fViewer.getControl().addDisposeListener(this); if (showColoredLabels()) { installOwnerDraw(); } }
public final void refresh() { Control control= fViewer.getControl(); if (!control.isDisposed()) { if (showColoredLabels()) { installOwnerDraw(); } else { uninstallOwnerDraw(); } } }
protected void installOwnerDraw() { if (fOwnerDrawSupport == null) { // not yet installed fOwnerDrawSupport= new OwnerDrawSupport(fViewer.getControl()) { // will install itself as listeners public ColoredString getColoredLabel(Item item) { return getColoredLabelForView(item); } public Color getColor(String foregroundColorName, Display display) { return getColorForName(foregroundColorName); } }; } refreshViewer(); }
protected void uninstallOwnerDraw() { if (fOwnerDrawSupport == null) return; // not installed fOwnerDrawSupport.dispose(); // removes itself as listener fOwnerDrawSupport= null; refreshViewer(); }
private void refresh(Item[] items) { for (int i= 0; i < items.length; i++) { Item item= items[i]; item.setData(COLORED_LABEL_KEY, null); String text= item.getText(); item.setText(""); //$NON-NLS-1$ item.setText(text); if (item instanceof TreeItem) { refresh(((TreeItem) item).getItems()); } } }