<extension point="org.eclipse.ui.decorators"> <decorator class="net.morcate.console.alerts.views.AlertsDecorator" id="net.morcate.console.alerts.decorator1" label="BackgroundDecorator" lightweight="false" state="true"> <enablement> <objectClass name="net.morcate.bos.alerts.Alert"> </objectClass> </enablement> </decorator>
public class AlertsDecorator extends LabelProvider implements ILabelDecorator, IColorDecorator { ... }
public class AlertsLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider{ ... }
private void makeColumns(TableColumnLayout layout, ColumnSortAdapter columnSortAdapter) { TableViewerColumn col=null; ... // for each column in the table: IDecoratorManager decoratorManager= getSite().getWorkbenchWindow().getWorkbench().getDecoratorManager(); decorator = decoratorManager.getLabelDecorator("net.morcate.console.alerts.decorator1"); DecoratingStyledCellLabelProvider decoratingLabelProvider = new DecoratingStyledCellLabelProvider(alertsLabelProvider, decorator, null); col.setLabelProvider(decoratingLabelProvider);
@Override public boolean performOk() { try { this.saveValues(this.getPreferenceStore()); PlatformUI.getWorkbench().getDecoratorManager().setEnabled("net.morcate.console.alerts.decorator1", this.useBackgroundHighLighting); return true; }
IPropertyChangeListener preferenceListener = new IPropertyChangeListener() { /* * @see IPropertyChangeListener.propertyChange() */ public void propertyChange(PropertyChangeEvent event) { if (event.getProperty().equals(IPreferenceConstants.P_BOOK_DISPLAY_MODE)) { tableViewer.refresh(true); } if (event.getProperty().equals( IPreferenceConstants.P_CHECK_COLLECTION_STATUS)) { tableViewer.refresh(true); } } };
BooksActivator.getDefault().getPreferenceStore().addPropertyChangeListener( preferenceListener);
BooksActivator.getDefault().getPreferenceStore() .removePropertyChangeListener(preferenceListener);
if (this.decorator instance of IColorDecorator) { Color color=((IColorDecorator)this.decorator). decorateBackground(element); if (color!=null) return color; } return super.getBackground(element);
private void makeColumns(TableColumnLayout layout, ColumnSortAdapter columnSortAdapter) { TableViewerColumn col=null; ... // for each column col in the table: IDecoratorManager decoratorManager= getSite().getWorkbenchWindow().getWorkbench().getDecoratorManager(); decorator = decoratorManager.getLabelDecorator("net.morcate.console.alerts.decorator1"); DecoratingStyledCellLabelProvider decoratingLabelProvider = new DecoratingStyledCellLabelProvider(alertsLabelProvider, decorator, null); col.setLabelProvider(decoratingLabelProvider); ... }
public void propertyChange(PropertyChangeEvent event) { if (event.getProperty().equals(IPreferenceConstants.P_BOOK_DISPLAY_MODE)) { IDecoratorManager decoratorManager= getSite().getWorkbenchWindow().getWorkbench().getDecoratorManager(); decorator = decoratorManager.getLabelDecorator("net.morcate.console.alerts.decorator1"); for (each column col in the table) { DecoratingStyledCellLabelProvider decoratingLabelProvider = new DecoratingStyledCellLabelProvider(alertsLabelProvider, decorator, null); col.setLabelProvider(decoratingLabelProvider); } } if (event.getProperty().equals( IPreferenceConstants.P_CHECK_COLLECTION_STATUS)) { //same thing. }
if (event.getProperty().equals(IPreferenceConstants.P_BOOK_DISPLAY_MODE)) {
PlatformUI.getWorkbench().getDecoratorManager().update(id_of_your_decorator);
DecoratingLabelProvider dlp = new DecoratingLabelProvider( new DecoratingLabelProvider(aLabProv, deco1), deco2);