1 package net.mograsim.plugin.tables.mi;
3 import org.eclipse.jface.resource.ColorRegistry;
4 import org.eclipse.jface.util.IPropertyChangeListener;
5 import org.eclipse.jface.viewers.TableViewer;
6 import org.eclipse.swt.graphics.Color;
7 import org.eclipse.ui.themes.IThemeManager;
9 public class ColorProvider
11 private final TableViewer viewer;
12 private final IThemeManager themeManager;
13 private ColorRegistry cRegistry;
15 private final static String modifBackground = "net.mograsim.plugin.modified_cell_bg_color",
16 modifForeground = "net.mograsim.plugin.modified_cell_fg_color";
17 private final IPropertyChangeListener updateListener;
19 public ColorProvider(TableViewer viewer, IThemeManager themeManager)
22 this.themeManager = themeManager;
23 this.cRegistry = themeManager.getCurrentTheme().getColorRegistry();
26 switch (e.getProperty())
28 case IThemeManager.CHANGE_CURRENT_THEME:
29 cRegistry = themeManager.getCurrentTheme().getColorRegistry();
39 themeManager.addPropertyChangeListener(updateListener);
42 public Color getBackground(Object element, int index)
44 InstructionTableRow row = (InstructionTableRow) element;
46 return row.data.getCell(row.address).getParameter(index).isDefault() ? viewer.getTable().getBackground()
47 : cRegistry.get(modifBackground);
50 public Color getForeground(Object element, int index)
52 InstructionTableRow row = (InstructionTableRow) element;
53 return row.data.getCell(row.address).getParameter(index).isDefault() ? viewer.getTable().getForeground()
54 : cRegistry.get(modifForeground);
59 themeManager.removePropertyChangeListener(updateListener);