X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=org.eclipse.linuxtools.tmf.ui%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Ftmf%2Fui%2Fwidgets%2Ftimegraph%2Fwidgets%2FTimeGraphControl.java;h=3f449214da1267c216fb152129aeddee68c8bbaf;hb=496f76d322253b0b41c90a5ede9adb7516cde4f4;hp=d4969cff96424bb0db4dd45e1a180d5ad2a4f94a;hpb=75b7c1bca15e9e9bdb5e635c8d0eb187a2fc468d;p=deliverable%2Ftracecompass.git diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java index d4969cff96..3f449214da 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java @@ -33,6 +33,7 @@ import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp; import org.eclipse.linuxtools.tmf.core.timestamp.TmfNanoTimestamp; import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestampDelta; +import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphColorListener; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphPresentationProvider; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphPresentationProvider2; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphTreeListener; @@ -80,8 +81,10 @@ import org.eclipse.swt.widgets.ScrollBar; * @author Alvaro Sanchez-Leon * @author Patrick Tasse */ -public class TimeGraphControl extends TimeGraphBaseControl implements FocusListener, KeyListener, MouseMoveListener, MouseListener, MouseWheelListener, ControlListener, SelectionListener, MouseTrackListener, TraverseListener, ISelectionProvider, MenuDetectListener, ITmfTimeGraphDrawingHelper { - +public class TimeGraphControl extends TimeGraphBaseControl + implements FocusListener, KeyListener, MouseMoveListener, MouseListener, MouseWheelListener, + ControlListener, SelectionListener, MouseTrackListener, TraverseListener, ISelectionProvider, + MenuDetectListener, ITmfTimeGraphDrawingHelper, ITimeGraphColorListener { /** Max scrollbar size */ public static final int H_SCROLLBAR_MAX = Integer.MAX_VALUE - 1; @@ -229,6 +232,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe if (timeGraphProvider instanceof ITimeGraphPresentationProvider2) { ((ITimeGraphPresentationProvider2) timeGraphProvider).setDrawingHelper(this); + ((ITimeGraphPresentationProvider2) timeGraphProvider).addColorListener(this); } if (fEventColorMap != null) { @@ -237,14 +241,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe } } StateItem[] stateItems = fTimeGraphProvider.getStateTable(); - if (stateItems != null) { - fEventColorMap = new Color[stateItems.length]; - for (int i = 0; i < stateItems.length; i++) { - fEventColorMap[i] = fResourceManager.createColor(stateItems[i].getStateColor()); - } - } else { - fEventColorMap = new Color[] { }; - } + colorSettingsChanged(stateItems); } /** @@ -2418,6 +2415,23 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe fFilters.remove(filter); } + @Override + public void colorSettingsChanged(StateItem[] stateItems) { + /* Destroy previous colors from the resource manager */ + for (Color color : fEventColorMap) { + fResourceManager.destroyColor(color.getRGB()); + } + if (stateItems != null) { + fEventColorMap = new Color[stateItems.length]; + for (int i = 0; i < stateItems.length; i++) { + fEventColorMap[i] = fResourceManager.createColor(stateItems[i].getStateColor()); + } + } else { + fEventColorMap = new Color[] { }; + } + redraw(); + } + private class ItemData { private Item[] fExpandedItems = new Item[0]; private Item[] fItems = new Item[0];