Fix Sonar warnings in timegraph package
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / widgets / timegraph / widgets / TimeGraphControl.java
index 47b5c7f82802bde9ad6e529f7561571db17ea2e9..dda1a0df2933873a7552a52f69101a4f4b80f116 100644 (file)
@@ -15,9 +15,9 @@
 package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Vector;
 
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.resource.LocalResourceManager;
@@ -72,15 +72,10 @@ import org.eclipse.swt.widgets.ScrollBar;
  */
 public class TimeGraphControl extends TimeGraphBaseControl implements FocusListener, KeyListener, MouseMoveListener, MouseListener, MouseWheelListener, ControlListener, SelectionListener, MouseTrackListener, TraverseListener, ISelectionProvider, MenuDetectListener {
 
+
     /** Max scrollbar size */
     public static final int H_SCROLLBAR_MAX = Integer.MAX_VALUE - 1;
 
-    /** Resource manager */
-    protected LocalResourceManager fResourceManager = new LocalResourceManager(JFaceResources.getResources());
-
-    /** Color map for event types */
-    protected Color[] fEventColorMap = null;
-
     private static final int DRAG_NONE = 0;
     private static final int DRAG_TRACE_ITEM = 1;
     private static final int DRAG_SPLIT_LINE = 2;
@@ -88,47 +83,53 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     private static final int CUSTOM_ITEM_HEIGHT = -1; // get item height from provider
 
-    private static final double zoomCoeff = 1.5;
-
-    private ITimeDataProvider _timeProvider;
-    private boolean _isInFocus = false;
-    private boolean _isDragCursor3 = false;
-    private boolean _isWaitCursor = true;
-    private boolean _mouseOverSplitLine = false;
-    private int _itemHeight = CUSTOM_ITEM_HEIGHT;
-    private int _minimumItemWidth = 0;
-    private int _topIndex = 0;
-    private int _dragState = DRAG_NONE;
-    private int _dragX0 = 0;
-    private int _dragX = 0;
-    private int _idealNameSpace = 0;
-    // private double _timeStep = 10000000;
-    private long _time0bak;
-    private long _time1bak;
+    private static final double ZOOM_FACTOR = 1.5;
+    private static final double ZOOM_IN_FACTOR = 0.8;
+    private static final double ZOOM_OUT_FACTOR = 1.25;
+
+    /** Resource manager */
+    private LocalResourceManager fResourceManager = new LocalResourceManager(JFaceResources.getResources());
+
+    /** Color map for event types */
+    private Color[] fEventColorMap = null;
+
+    private ITimeDataProvider fTimeProvider;
+    private boolean fIsInFocus = false;
+    private boolean fIsDragCursor = false;
+    private boolean fIsWaitCursor = true;
+    private boolean fMouseOverSplitLine = false;
+    private int fGlobalItemHeight = CUSTOM_ITEM_HEIGHT;
+    private int fMinimumItemWidth = 0;
+    private int fTopIndex = 0;
+    private int fDragState = DRAG_NONE;
+    private int fDragX0 = 0;
+    private int fDragX = 0;
+    private int fIdealNameSpace = 0;
+    private long fTime0bak;
+    private long fTime1bak;
     private ITimeGraphPresentationProvider fTimeGraphProvider = null;
-    private ItemData _data = null;
-    private List<SelectionListener> _selectionListeners;
-    private final List<ISelectionChangedListener> _selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
-    private final List<ITimeGraphTreeListener> _treeListeners = new ArrayList<ITimeGraphTreeListener>();
-    private final List<MenuDetectListener> _timeGraphEntryMenuListeners = new ArrayList<MenuDetectListener>();
-    private final List<MenuDetectListener> _timeEventMenuListeners = new ArrayList<MenuDetectListener>();
-    private final Cursor _dragCursor3;
-    private final Cursor _WaitCursor;
-    private final List<ViewerFilter> _filters = new ArrayList<ViewerFilter>();
+    private ItemData fItemData = null;
+    private List<SelectionListener> fSelectionListeners;
+    private final List<ISelectionChangedListener> fSelectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+    private final List<ITimeGraphTreeListener> fTreeListeners = new ArrayList<ITimeGraphTreeListener>();
+    private final List<MenuDetectListener> fTimeGraphEntryMenuListeners = new ArrayList<MenuDetectListener>();
+    private final List<MenuDetectListener> fTimeEventMenuListeners = new ArrayList<MenuDetectListener>();
+    private final Cursor fDragCursor;
+    private final Cursor fWaitCursor;
+    private final List<ViewerFilter> fFilters = new ArrayList<ViewerFilter>();
     private MenuDetectEvent fPendingMenuDetectEvent = null;
 
-    // Vertical formatting formatting for the state control view
-    private final boolean _visibleVerticalScroll = true;
-    private int _borderWidth = 0;
-    private int _headerHeight = 0;
+    private int fBorderWidth = 0;
+    private int fHeaderHeight = 0;
 
-    private Listener mouseScrollFilterListener;
+    private Listener fMouseScrollFilterListener;
 
     private MouseScrollNotifier fMouseScrollNotifier;
     private final Object fMouseScrollNotifierLock = new Object();
+
     private class MouseScrollNotifier extends Thread {
-        private final static long DELAY = 400L;
-        private final static long POLLING_INTERVAL = 10L;
+        private static final long DELAY = 400L;
+        private static final long POLLING_INTERVAL = 10L;
         private long fLastScrollTime = Long.MAX_VALUE;
 
         @Override
@@ -147,7 +148,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                         if (isDisposed()) {
                             return;
                         }
-                        _timeProvider.notifyStartFinishTime();
+                        fTimeProvider.notifyStartFinishTime();
                     }
                 });
             }
@@ -173,7 +174,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
         super(parent, colors, SWT.NO_BACKGROUND | SWT.H_SCROLL | SWT.DOUBLE_BUFFERED);
 
-        _data = new ItemData();
+        fItemData = new ItemData();
 
         addFocusListener(this);
         addMouseListener(this);
@@ -190,15 +191,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             scrollHor.addSelectionListener(this);
         }
 
-        _dragCursor3 = new Cursor(super.getDisplay(), SWT.CURSOR_SIZEWE);
-        _WaitCursor = new Cursor(super.getDisplay(), SWT.CURSOR_WAIT);
+        fDragCursor = new Cursor(super.getDisplay(), SWT.CURSOR_SIZEWE);
+        fWaitCursor = new Cursor(super.getDisplay(), SWT.CURSOR_WAIT);
     }
 
     @Override
     public void dispose() {
         super.dispose();
-        _dragCursor3.dispose();
-        _WaitCursor.dispose();
+        fDragCursor.dispose();
+        fWaitCursor.dispose();
         fResourceManager.dispose();
     }
 
@@ -209,7 +210,6 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      */
     public void setTimeGraphProvider(ITimeGraphPresentationProvider timeGraphProvider) {
         fTimeGraphProvider = timeGraphProvider;
-        _data.provider = timeGraphProvider;
 
         if (fEventColorMap != null) {
             for (Color color : fEventColorMap) {
@@ -234,7 +234,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The time provider
      */
     public void setTimeProvider(ITimeDataProvider timeProvider) {
-        _timeProvider = timeProvider;
+        fTimeProvider = timeProvider;
         adjustScrolls();
         redraw();
     }
@@ -249,10 +249,10 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         if (listener == null) {
             SWT.error(SWT.ERROR_NULL_ARGUMENT);
         }
-        if (null == _selectionListeners) {
-            _selectionListeners = new ArrayList<SelectionListener>();
+        if (null == fSelectionListeners) {
+            fSelectionListeners = new ArrayList<SelectionListener>();
         }
-        _selectionListeners.add(listener);
+        fSelectionListeners.add(listener);
     }
 
     /**
@@ -262,8 +262,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The listener to remove
      */
     public void removeSelectionListener(SelectionListener listener) {
-        if (null != _selectionListeners) {
-            _selectionListeners.remove(listener);
+        if (null != fSelectionListeners) {
+            fSelectionListeners.remove(listener);
         }
     }
 
@@ -271,8 +271,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * Selection changed callback
      */
     public void fireSelectionChanged() {
-        if (null != _selectionListeners) {
-            Iterator<SelectionListener> it = _selectionListeners.iterator();
+        if (null != fSelectionListeners) {
+            Iterator<SelectionListener> it = fSelectionListeners.iterator();
             while (it.hasNext()) {
                 SelectionListener listener = it.next();
                 listener.widgetSelected(null);
@@ -284,8 +284,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * Default selection callback
      */
     public void fireDefaultSelection() {
-        if (null != _selectionListeners) {
-            Iterator<SelectionListener> it = _selectionListeners.iterator();
+        if (null != fSelectionListeners) {
+            Iterator<SelectionListener> it = fSelectionListeners.iterator();
             while (it.hasNext()) {
                 SelectionListener listener = it.next();
                 listener.widgetDefaultSelected(null);
@@ -299,7 +299,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @return The array of traces
      */
     public ITimeGraphEntry[] getTraces() {
-        return _data.getTraces();
+        return fItemData.getTraces();
     }
 
     /**
@@ -308,14 +308,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @return The array of filters
      */
     public boolean[] getTraceFilter() {
-        return _data.getTraceFilter();
+        return fItemData.getTraceFilter();
     }
 
     /**
      * Refresh the data for the thing
      */
     public void refreshData() {
-        _data.refreshData();
+        fItemData.refreshData();
         adjustScrolls();
         redraw();
     }
@@ -327,7 +327,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The traces to refresh
      */
     public void refreshData(ITimeGraphEntry[] traces) {
-        _data.refreshData(traces);
+        fItemData.refreshData(traces);
         adjustScrolls();
         redraw();
     }
@@ -336,18 +336,18 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * Adjust the scoll bars
      */
     public void adjustScrolls() {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             getHorizontalBar().setValues(0, 1, 1, 1, 1, 1);
             return;
         }
 
         // HORIZONTAL BAR
         // Visible window
-        long time0 = _timeProvider.getTime0();
-        long time1 = _timeProvider.getTime1();
+        long time0 = fTimeProvider.getTime0();
+        long time1 = fTimeProvider.getTime1();
         // Time boundaries
-        long timeMin = _timeProvider.getMinTime();
-        long timeMax = _timeProvider.getMaxTime();
+        long timeMin = fTimeProvider.getMinTime();
+        long timeMax = fTimeProvider.getMaxTime();
 
         long delta = timeMax - timeMin;
 
@@ -370,27 +370,25 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         boolean changed = false;
         int index = idx;
         if (index < 0) {
-            for (index = 0; index < _data._expandedItems.length; index++) {
-                if (_data._expandedItems[index]._selected) {
+            for (index = 0; index < fItemData.fExpandedItems.length; index++) {
+                if (fItemData.fExpandedItems[index].fSelected) {
                     break;
                 }
             }
         }
-        if (index >= _data._expandedItems.length) {
+        if (index >= fItemData.fExpandedItems.length) {
             return changed;
         }
-        if (index < _topIndex) {
+        if (index < fTopIndex) {
             setTopIndex(index);
-            //FIXME:getVerticalBar().setSelection(_topItem);
             if (redraw) {
                 redraw();
             }
             changed = true;
         } else {
             int page = countPerPage();
-            if (index >= _topIndex + page) {
+            if (index >= fTopIndex + page) {
                 setTopIndex(index - page + 1);
-                //FIXME:getVerticalBar().setSelection(_topItem);
                 if (redraw) {
                     redraw();
                 }
@@ -407,9 +405,9 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The index
      */
     public void setTopIndex(int idx) {
-        int index = Math.min(idx, _data._expandedItems.length - countPerPage());
+        int index = Math.min(idx, fItemData.fExpandedItems.length - countPerPage());
         index = Math.max(0,  index);
-        _topIndex = index;
+        fTopIndex = index;
         redraw();
     }
 
@@ -422,10 +420,10 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            True if expanded, false if collapsed
      */
     public void setExpandedState(ITimeGraphEntry entry, boolean expanded) {
-        Item item = _data.findItem(entry);
-        if (item != null && item._expanded != expanded) {
-            item._expanded = expanded;
-            _data.updateExpandedItems();
+        Item item = fItemData.findItem(entry);
+        if (item != null && item.fExpanded != expanded) {
+            item.fExpanded = expanded;
+            fItemData.updateExpandedItems();
             redraw();
         }
     }
@@ -436,10 +434,10 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public void collapseAll() {
-        for (Item item : _data._items) {
-            item._expanded = false;
+        for (Item item : fItemData.fItems) {
+            item.fExpanded = false;
         }
-        _data.updateExpandedItems();
+        fItemData.updateExpandedItems();
         redraw();
     }
 
@@ -449,10 +447,10 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public void expandAll() {
-        for (Item item : _data._items) {
-            item._expanded = true;
+        for (Item item : fItemData.fItems) {
+            item.fExpanded = true;
         }
-        _data.updateExpandedItems();
+        fItemData.updateExpandedItems();
         redraw();
     }
 
@@ -463,8 +461,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The listener to add
      */
     public void addTreeListener(ITimeGraphTreeListener listener) {
-        if (!_treeListeners.contains(listener)) {
-            _treeListeners.add(listener);
+        if (!fTreeListeners.contains(listener)) {
+            fTreeListeners.add(listener);
         }
     }
 
@@ -475,8 +473,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The listener to remove
      */
     public void removeTreeListener(ITimeGraphTreeListener listener) {
-        if (_treeListeners.contains(listener)) {
-            _treeListeners.remove(listener);
+        if (fTreeListeners.contains(listener)) {
+            fTreeListeners.remove(listener);
         }
     }
 
@@ -490,7 +488,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      */
     public void fireTreeEvent(ITimeGraphEntry entry, boolean expanded) {
         TimeGraphTreeExpansionEvent event = new TimeGraphTreeExpansionEvent(this, entry);
-        for (ITimeGraphTreeListener listener : _treeListeners) {
+        for (ITimeGraphTreeListener listener : fTreeListeners) {
             if (expanded) {
                 listener.treeExpanded(event);
             } else {
@@ -506,8 +504,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 1.2
      */
     public void addTimeGraphEntryMenuListener(MenuDetectListener listener) {
-        if (!_timeGraphEntryMenuListeners.contains(listener)) {
-            _timeGraphEntryMenuListeners.add(listener);
+        if (!fTimeGraphEntryMenuListeners.contains(listener)) {
+            fTimeGraphEntryMenuListeners.add(listener);
         }
     }
 
@@ -519,8 +517,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 1.2
      */
     public void removeTimeGraphEntryMenuListener(MenuDetectListener listener) {
-        if (_timeGraphEntryMenuListeners.contains(listener)) {
-            _timeGraphEntryMenuListeners.remove(listener);
+        if (fTimeGraphEntryMenuListeners.contains(listener)) {
+            fTimeGraphEntryMenuListeners.remove(listener);
         }
     }
 
@@ -531,7 +529,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The MenuDetectEvent, with field {@link TypedEvent#data} set to the selected {@link ITimeGraphEntry}
      */
     private void fireMenuEventOnTimeGraphEntry(MenuDetectEvent event) {
-        for (MenuDetectListener listener : _timeGraphEntryMenuListeners) {
+        for (MenuDetectListener listener : fTimeGraphEntryMenuListeners) {
             listener.menuDetected(event);
         }
     }
@@ -544,8 +542,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 1.2
      */
     public void addTimeEventMenuListener(MenuDetectListener listener) {
-        if (!_timeEventMenuListeners.contains(listener)) {
-            _timeEventMenuListeners.add(listener);
+        if (!fTimeEventMenuListeners.contains(listener)) {
+            fTimeEventMenuListeners.add(listener);
         }
     }
 
@@ -557,8 +555,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 1.2
      */
     public void removeTimeEventMenuListener(MenuDetectListener listener) {
-        if (_timeEventMenuListeners.contains(listener)) {
-            _timeEventMenuListeners.remove(listener);
+        if (fTimeEventMenuListeners.contains(listener)) {
+            fTimeEventMenuListeners.remove(listener);
         }
     }
 
@@ -569,7 +567,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The MenuDetectEvent, with field {@link TypedEvent#data} set to the selected {@link ITimeEvent}
      */
     private void fireMenuEventOnTimeEvent(MenuDetectEvent event) {
-        for (MenuDetectListener listener : _timeEventMenuListeners) {
+        for (MenuDetectListener listener : fTimeEventMenuListeners) {
             listener.menuDetected(event);
         }
     }
@@ -578,8 +576,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public ISelection getSelection() {
         TimeGraphSelection sel = new TimeGraphSelection();
         ITimeGraphEntry trace = getSelectedTrace();
-        if (null != trace && null != _timeProvider) {
-            long selectedTime = _timeProvider.getSelectedTime();
+        if (null != trace && null != fTimeProvider) {
+            long selectedTime = fTimeProvider.getSelectedTime();
             ITimeEvent event = Utils.findEvent(trace, selectedTime, 0);
             if (event != null) {
                 sel.add(event);
@@ -618,28 +616,28 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
         boolean changed = false;
         int lastSelection = -1;
-        for (int i = 0; i < _data._expandedItems.length; i++) {
-            Item item = _data._expandedItems[i];
-            if (item._selected) {
+        for (int i = 0; i < fItemData.fExpandedItems.length; i++) {
+            Item item = fItemData.fExpandedItems[i];
+            if (item.fSelected) {
                 lastSelection = i;
-                if ((1 == n) && (i < _data._expandedItems.length - 1)) {
-                    item._selected = false;
-                    item = _data._expandedItems[i + 1];
-                    item._selected = true;
+                if ((1 == n) && (i < fItemData.fExpandedItems.length - 1)) {
+                    item.fSelected = false;
+                    item = fItemData.fExpandedItems[i + 1];
+                    item.fSelected = true;
                     changed = true;
                 } else if ((-1 == n) && (i > 0)) {
-                    item._selected = false;
-                    item = _data._expandedItems[i - 1];
-                    item._selected = true;
+                    item.fSelected = false;
+                    item = fItemData.fExpandedItems[i - 1];
+                    item.fSelected = true;
                     changed = true;
                 }
                 break;
             }
         }
 
-        if (lastSelection < 0 && _data._expandedItems.length > 0) {
-            Item item = _data._expandedItems[0];
-            item._selected = true;
+        if (lastSelection < 0 && fItemData.fExpandedItems.length > 0) {
+            Item item = fItemData.fExpandedItems[0];
+            item.fSelected = true;
             changed = true;
         }
 
@@ -657,15 +655,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            1 for next event, -1 for previous event
      */
     public void selectEvent(int n) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return;
         }
         ITimeGraphEntry trace = getSelectedTrace();
         if (trace == null) {
             return;
         }
-        long selectedTime = _timeProvider.getSelectedTime();
-        long endTime = _timeProvider.getEndTime();
+        long selectedTime = fTimeProvider.getSelectedTime();
+        long endTime = fTimeProvider.getEndTime();
         ITimeEvent nextEvent;
         if (-1 == n && selectedTime > endTime) {
             nextEvent = Utils.findEvent(trace, selectedTime, 0);
@@ -686,16 +684,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 if (nextTime > endTime) {
                     nextTime = endTime;
                 }
-            } else if (n == -1) {
+            } else if (n == -1 && nextEvent.getTime() + nextEvent.getDuration() < selectedTime) {
                 // for previous event go to its end time unless we were already there
-                if (nextEvent.getTime() + nextEvent.getDuration() < selectedTime) {
-                    nextTime = nextEvent.getTime() + nextEvent.getDuration();
-                }
+                nextTime = nextEvent.getTime() + nextEvent.getDuration();
             }
-            _timeProvider.setSelectedTimeNotify(nextTime, true);
+            fTimeProvider.setSelectedTimeNotify(nextTime, true);
             fireSelectionChanged();
         } else if (1 == n) {
-            _timeProvider.setSelectedTimeNotify(endTime, true);
+            fTimeProvider.setSelectedTimeNotify(endTime, true);
             fireSelectionChanged();
         }
     }
@@ -706,7 +702,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public void selectNextEvent() {
         selectEvent(1);
         // Notify if visible time window has been adjusted
-        _timeProvider.setStartFinishTimeNotify(_timeProvider.getTime0(), _timeProvider.getTime1());
+        fTimeProvider.setStartFinishTimeNotify(fTimeProvider.getTime0(), fTimeProvider.getTime1());
     }
 
     /**
@@ -715,7 +711,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public void selectPrevEvent() {
         selectEvent(-1);
         // Notify if visible time window has been adjusted
-        _timeProvider.setStartFinishTimeNotify(_timeProvider.getTime0(), _timeProvider.getTime1());
+        fTimeProvider.setStartFinishTimeNotify(fTimeProvider.getTime0(), fTimeProvider.getTime1());
     }
 
     /**
@@ -740,25 +736,25 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public void zoom(boolean zoomIn) {
         int globalX = getDisplay().getCursorLocation().x;
         Point p = toControl(globalX, 0);
-        int nameSpace = _timeProvider.getNameSpace();
-        int timeSpace = _timeProvider.getTimeSpace();
+        int nameSpace = fTimeProvider.getNameSpace();
+        int timeSpace = fTimeProvider.getTimeSpace();
         int xPos = Math.max(nameSpace, Math.min(nameSpace + timeSpace, p.x));
-        long time0 = _timeProvider.getTime0();
-        long time1 = _timeProvider.getTime1();
+        long time0 = fTimeProvider.getTime0();
+        long time1 = fTimeProvider.getTime1();
         long interval = time1 - time0;
         if (interval == 0) {
             interval = 1;
         } // to allow getting out of single point interval
         long newInterval;
         if (zoomIn) {
-            newInterval = Math.max(Math.round(interval * 0.8), _timeProvider.getMinTimeInterval());
+            newInterval = Math.max(Math.round(interval * ZOOM_IN_FACTOR), fTimeProvider.getMinTimeInterval());
         } else {
-            newInterval = (long) Math.ceil(interval * 1.25);
+            newInterval = (long) Math.ceil(interval * ZOOM_OUT_FACTOR);
         }
         long center = time0 + Math.round(((double) (xPos - nameSpace) / timeSpace * interval));
         long newTime0 = center - Math.round((double) newInterval * (center - time0) / interval);
         long newTime1 = newTime0 + newInterval;
-        _timeProvider.setStartFinishTime(newTime0, newTime1);
+        fTimeProvider.setStartFinishTime(newTime0, newTime1);
         synchronized (fMouseScrollNotifierLock) {
             if (fMouseScrollNotifier == null) {
                 fMouseScrollNotifier = new MouseScrollNotifier();
@@ -772,58 +768,55 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * zoom in using single click
      */
     public void zoomIn() {
-        long _time0 = _timeProvider.getTime0();
-        long _time1 = _timeProvider.getTime1();
-        long _range = _time1 - _time0;
-        if (_range == 0) {
+        long prevTime0 = fTimeProvider.getTime0();
+        long prevTime1 = fTimeProvider.getTime1();
+        long prevRange = prevTime1 - prevTime0;
+        if (prevRange == 0) {
             return;
         }
-        long selTime = _timeProvider.getSelectedTime();
-        if (selTime <= _time0 || selTime >= _time1) {
-            selTime = (_time0 + _time1) / 2;
+        long selTime = fTimeProvider.getSelectedTime();
+        if (selTime <= prevTime0 || selTime >= prevTime1) {
+            selTime = (prevTime0 + prevTime1) / 2;
         }
-        long time0 = selTime - (long) ((selTime - _time0) / zoomCoeff);
-        long time1 = selTime + (long) ((_time1 - selTime) / zoomCoeff);
+        long time0 = selTime - (long) ((selTime - prevTime0) / ZOOM_FACTOR);
+        long time1 = selTime + (long) ((prevTime1 - selTime) / ZOOM_FACTOR);
 
-        long inaccuracy = (_timeProvider.getMaxTime() - _timeProvider.getMinTime()) - (time1 - time0);
-
-        // Trace.debug("selTime:" + selTime + " time0:" + time0 + " time1:"
-        // + time1 + " inaccuracy:" + inaccuracy);
+        long inaccuracy = (fTimeProvider.getMaxTime() - fTimeProvider.getMinTime()) - (time1 - time0);
 
         if (inaccuracy > 0 && inaccuracy < 100) {
-            _timeProvider.setStartFinishTimeNotify(_timeProvider.getMinTime(), _timeProvider.getMaxTime());
+            fTimeProvider.setStartFinishTimeNotify(fTimeProvider.getMinTime(), fTimeProvider.getMaxTime());
             return;
         }
 
-        long m = _timeProvider.getMinTimeInterval();
-        if ((time1 - time0) < m) {
-            time0 = selTime - (selTime - _time0) * m / _range;
-            time1 = time0 + m;
+        long min = fTimeProvider.getMinTimeInterval();
+        if ((time1 - time0) < min) {
+            time0 = selTime - (selTime - prevTime0) * min / prevRange;
+            time1 = time0 + min;
         }
 
-        _timeProvider.setStartFinishTimeNotify(time0, time1);
+        fTimeProvider.setStartFinishTimeNotify(time0, time1);
     }
 
     /**
      * zoom out using single click
      */
     public void zoomOut() {
-        long _time0 = _timeProvider.getTime0();
-        long _time1 = _timeProvider.getTime1();
-        long selTime = _timeProvider.getSelectedTime();
-        if (selTime <= _time0 || selTime >= _time1) {
-            selTime = (_time0 + _time1) / 2;
+        long prevTime0 = fTimeProvider.getTime0();
+        long prevTime1 = fTimeProvider.getTime1();
+        long selTime = fTimeProvider.getSelectedTime();
+        if (selTime <= prevTime0 || selTime >= prevTime1) {
+            selTime = (prevTime0 + prevTime1) / 2;
         }
-        long time0 = (long) (selTime - (selTime - _time0) * zoomCoeff);
-        long time1 = (long) (selTime + (_time1 - selTime) * zoomCoeff);
+        long time0 = (long) (selTime - (selTime - prevTime0) * ZOOM_FACTOR);
+        long time1 = (long) (selTime + (prevTime1 - selTime) * ZOOM_FACTOR);
 
-        long inaccuracy = (_timeProvider.getMaxTime() - _timeProvider.getMinTime()) - (time1 - time0);
+        long inaccuracy = (fTimeProvider.getMaxTime() - fTimeProvider.getMinTime()) - (time1 - time0);
         if (inaccuracy > 0 && inaccuracy < 100) {
-            _timeProvider.setStartFinishTimeNotify(_timeProvider.getMinTime(), _timeProvider.getMaxTime());
+            fTimeProvider.setStartFinishTimeNotify(fTimeProvider.getMinTime(), fTimeProvider.getMaxTime());
             return;
         }
 
-        _timeProvider.setStartFinishTimeNotify(time0, time1);
+        fTimeProvider.setStartFinishTimeNotify(time0, time1);
     }
 
     /**
@@ -835,7 +828,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         ITimeGraphEntry trace = null;
         int idx = getSelectedIndex();
         if (idx >= 0) {
-            trace = _data._expandedItems[idx]._trace;
+            trace = fItemData.fExpandedItems[idx].fTrace;
         }
         return trace;
     }
@@ -847,9 +840,9 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      */
     public int getSelectedIndex() {
         int idx = -1;
-        for (int i = 0; i < _data._expandedItems.length; i++) {
-            Item item = _data._expandedItems[i];
-            if (item._selected) {
+        for (int i = 0; i < fItemData.fExpandedItems.length; i++) {
+            Item item = fItemData.fExpandedItems[i];
+            if (item.fSelected) {
                 idx = i;
                 break;
             }
@@ -859,15 +852,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     boolean toggle(int idx) {
         boolean toggled = false;
-        if (idx >= 0 && idx < _data._expandedItems.length) {
-            Item item = _data._expandedItems[idx];
-            if (item._hasChildren) {
-                item._expanded = !item._expanded;
-                _data.updateExpandedItems();
+        if (idx >= 0 && idx < fItemData.fExpandedItems.length) {
+            Item item = fItemData.fExpandedItems[idx];
+            if (item.fHasChildren) {
+                item.fExpanded = !item.fExpanded;
+                fItemData.updateExpandedItems();
                 adjustScrolls();
                 redraw();
                 toggled = true;
-                fireTreeEvent(item._trace, item._expanded);
+                fireTreeEvent(item.fTrace, item.fExpanded);
             }
         }
         return toggled;
@@ -877,30 +870,30 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         if (y < 0) {
             return -1;
         }
-        if (_itemHeight == CUSTOM_ITEM_HEIGHT) {
+        if (fGlobalItemHeight == CUSTOM_ITEM_HEIGHT) {
             int ySum = 0;
-            for (int idx = _topIndex; idx < _data._expandedItems.length; idx++) {
-                ySum += _data._expandedItems[idx].itemHeight;
+            for (int idx = fTopIndex; idx < fItemData.fExpandedItems.length; idx++) {
+                ySum += fItemData.fExpandedItems[idx].fItemHeight;
                 if (y < ySum) {
                     return idx;
                 }
             }
             return -1;
         }
-        int idx = y / _itemHeight;
-        idx += _topIndex;
-        if (idx < _data._expandedItems.length) {
+        int idx = y / fGlobalItemHeight;
+        idx += fTopIndex;
+        if (idx < fItemData.fExpandedItems.length) {
             return idx;
         }
         return -1;
     }
 
     boolean isOverSplitLine(int x) {
-        if (x < 0 || null == _timeProvider) {
+        if (x < 0 || null == fTimeProvider) {
             return false;
         }
         int w = 4;
-        int nameWidth = _timeProvider.getNameSpace();
+        int nameWidth = fTimeProvider.getNameSpace();
         if (x > nameWidth - w && x < nameWidth + w) {
             return true;
         }
@@ -909,7 +902,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     ITimeGraphEntry getEntry(Point pt) {
         int idx = getItemIndexAtY(pt.y);
-        return idx >= 0 ? _data._expandedItems[idx]._trace : null;
+        return idx >= 0 ? fItemData.fExpandedItems[idx].fTrace : null;
     }
 
     /**
@@ -921,13 +914,13 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public int getXForTime(long time) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return -1;
         }
-        long time0 = _timeProvider.getTime0();
-        long time1 = _timeProvider.getTime1();
+        long time0 = fTimeProvider.getTime0();
+        long time1 = fTimeProvider.getTime1();
         int width = getCtrlSize().x;
-        int nameSpace = _timeProvider.getNameSpace();
+        int nameSpace = fTimeProvider.getNameSpace();
         double pixelsPerNanoSec = (width - nameSpace <= RIGHT_MARGIN) ? 0 : (double) (width - nameSpace - RIGHT_MARGIN) / (time1 - time0);
         int x = getBounds().x + nameSpace + (int) ((time - time0) * pixelsPerNanoSec);
         return x;
@@ -942,14 +935,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public long getTimeAtX(int coord) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return -1;
         }
         long hitTime = -1;
         Point size = getCtrlSize();
-        long time0 = _timeProvider.getTime0();
-        long time1 = _timeProvider.getTime1();
-        int nameWidth = _timeProvider.getNameSpace();
+        long time0 = fTimeProvider.getTime0();
+        long time1 = fTimeProvider.getTime1();
+        int nameWidth = fTimeProvider.getNameSpace();
         final int x = coord - nameWidth;
         int timeWidth = size.x - nameWidth - RIGHT_MARGIN;
         if (x >= 0 && size.x >= nameWidth) {
@@ -967,18 +960,18 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     void selectItem(int idx, boolean addSelection) {
         boolean changed = false;
         if (addSelection) {
-            if (idx >= 0 && idx < _data._expandedItems.length) {
-                Item item = _data._expandedItems[idx];
-                changed = (item._selected == false);
-                item._selected = true;
+            if (idx >= 0 && idx < fItemData.fExpandedItems.length) {
+                Item item = fItemData.fExpandedItems[idx];
+                changed = !item.fSelected;
+                item.fSelected = true;
             }
         } else {
-            for (int i = 0; i < _data._expandedItems.length; i++) {
-                Item item = _data._expandedItems[i];
-                if ((i == idx && !item._selected) || (idx == -1 && item._selected)) {
+            for (int i = 0; i < fItemData.fExpandedItems.length; i++) {
+                Item item = fItemData.fExpandedItems[i];
+                if ((i == idx && !item.fSelected) || (idx == -1 && item.fSelected)) {
                     changed = true;
                 }
-                item._selected = i == idx;
+                item.fSelected = i == idx;
             }
         }
         changed |= ensureVisibleItem(idx, true);
@@ -996,7 +989,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            If the selection is added or removed
      */
     public void selectItem(ITimeGraphEntry trace, boolean addSelection) {
-        int idx = _data.findItemIndex(trace);
+        int idx = fItemData.findItemIndex(trace);
         selectItem(idx, addSelection);
     }
 
@@ -1008,17 +1001,17 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public int countPerPage() {
         int height = getCtrlSize().y;
         int count = 0;
-        if (_itemHeight == CUSTOM_ITEM_HEIGHT) {
+        if (fGlobalItemHeight == CUSTOM_ITEM_HEIGHT) {
             int ySum = 0;
-            for (int idx = _topIndex; idx < _data._expandedItems.length; idx++) {
-                ySum += _data._expandedItems[idx].itemHeight;
+            for (int idx = fTopIndex; idx < fItemData.fExpandedItems.length; idx++) {
+                ySum += fItemData.fExpandedItems[idx].fItemHeight;
                 if (ySum >= height) {
                     return count;
                 }
                 count++;
             }
-            for (int idx = _topIndex - 1; idx >= 0; idx--) {
-                ySum += _data._expandedItems[idx].itemHeight;
+            for (int idx = fTopIndex - 1; idx >= 0; idx--) {
+                ySum += fItemData.fExpandedItems[idx].fItemHeight;
                 if (ySum >= height) {
                     return count;
                 }
@@ -1027,7 +1020,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             return count;
         }
         if (height > 0) {
-            count = height / _itemHeight;
+            count = height / fGlobalItemHeight;
         }
         return count;
     }
@@ -1038,7 +1031,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @return The index
      */
     public int getTopIndex() {
-        return _topIndex;
+        return fTopIndex;
     }
 
     /**
@@ -1047,7 +1040,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @return The count of expanded items
      */
     public int getExpandedElementCount() {
-        return _data._expandedItems.length;
+        return fItemData.fExpandedItems.length;
     }
 
     /**
@@ -1057,8 +1050,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      */
     public ITimeGraphEntry[] getExpandedElements() {
         ArrayList<ITimeGraphEntry> elements = new ArrayList<ITimeGraphEntry>();
-        for (Item item : _data._expandedItems) {
-            elements.add(item._trace);
+        for (Item item : fItemData.fExpandedItems) {
+            elements.add(item.fTrace);
         }
         return elements.toArray(new ITimeGraphEntry[0]);
     }
@@ -1073,32 +1066,32 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     Rectangle getNameRect(Rectangle bound, int idx, int nameWidth) {
         int x = bound.x;
-        int y = bound.y + (idx - _topIndex) * _itemHeight;
+        int y = bound.y + (idx - fTopIndex) * fGlobalItemHeight;
         int width = nameWidth;
-        int height = _itemHeight;
-        if (_itemHeight == CUSTOM_ITEM_HEIGHT) {
+        int height = fGlobalItemHeight;
+        if (fGlobalItemHeight == CUSTOM_ITEM_HEIGHT) {
             int ySum = 0;
-            for (int i = _topIndex; i < idx; i++) {
-                ySum += _data._expandedItems[i].itemHeight;
+            for (int i = fTopIndex; i < idx; i++) {
+                ySum += fItemData.fExpandedItems[i].fItemHeight;
             }
             y = bound.y + ySum;
-            height = _data._expandedItems[idx].itemHeight;
+            height = fItemData.fExpandedItems[idx].fItemHeight;
         }
         return new Rectangle(x, y, width, height);
     }
 
     Rectangle getStatesRect(Rectangle bound, int idx, int nameWidth) {
         int x = bound.x + nameWidth;
-        int y = bound.y + (idx - _topIndex) * _itemHeight;
+        int y = bound.y + (idx - fTopIndex) * fGlobalItemHeight;
         int width = bound.width - x;
-        int height = _itemHeight;
-        if (_itemHeight == CUSTOM_ITEM_HEIGHT) {
+        int height = fGlobalItemHeight;
+        if (fGlobalItemHeight == CUSTOM_ITEM_HEIGHT) {
             int ySum = 0;
-            for (int i = _topIndex; i < idx; i++) {
-                ySum += _data._expandedItems[i].itemHeight;
+            for (int i = fTopIndex; i < idx; i++) {
+                ySum += fItemData.fExpandedItems[i].fItemHeight;
             }
             y = bound.y + ySum;
-            height = _data._expandedItems[idx].itemHeight;
+            height = fItemData.fExpandedItems[idx].fItemHeight;
         }
         return new Rectangle(x, y, width, height);
     }
@@ -1106,53 +1099,53 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     @Override
     void paint(Rectangle bounds, PaintEvent e) {
         GC gc = e.gc;
-        gc.setBackground(_colors.getColor(TimeGraphColorScheme.BACKGROUND));
+        gc.setBackground(getColorScheme().getColor(TimeGraphColorScheme.BACKGROUND));
         drawBackground(gc, bounds.x, bounds.y, bounds.width, bounds.height);
 
-        if (bounds.width < 2 || bounds.height < 2 || null == _timeProvider) {
+        if (bounds.width < 2 || bounds.height < 2 || null == fTimeProvider) {
             return;
         }
 
-        _idealNameSpace = 0;
-        int nameSpace = _timeProvider.getNameSpace();
+        fIdealNameSpace = 0;
+        int nameSpace = fTimeProvider.getNameSpace();
 
         // draw empty name space background
-        gc.setBackground(_colors.getBkColor(false, false, true));
+        gc.setBackground(getColorScheme().getBkColor(false, false, true));
         drawBackground(gc, bounds.x, bounds.y, nameSpace, bounds.height);
 
-        if (_dragState == DRAG_ZOOM) {
+        if (fDragState == DRAG_ZOOM) {
             // draw selected zoom region background
-            gc.setBackground(_colors.getBkColor(false, false, true));
-            if (_dragX0 < _dragX) {
-                gc.fillRectangle(new Rectangle(_dragX0, bounds.y, _dragX - _dragX0, bounds.height));
-            } else if (_dragX0 > _dragX) {
-                gc.fillRectangle(new Rectangle(_dragX, bounds.y, _dragX0 - _dragX, bounds.height));
+            gc.setBackground(getColorScheme().getBkColor(false, false, true));
+            if (fDragX0 < fDragX) {
+                gc.fillRectangle(new Rectangle(fDragX0, bounds.y, fDragX - fDragX0, bounds.height));
+            } else if (fDragX0 > fDragX) {
+                gc.fillRectangle(new Rectangle(fDragX, bounds.y, fDragX0 - fDragX, bounds.height));
             }
         }
 
-        drawItems(bounds, _timeProvider, _data._expandedItems, _topIndex, nameSpace, gc);
+        drawItems(bounds, fTimeProvider, fItemData.fExpandedItems, fTopIndex, nameSpace, gc);
 
         // draw selected time
-        long time0 = _timeProvider.getTime0();
-        long time1 = _timeProvider.getTime1();
-        long selectedTime = _timeProvider.getSelectedTime();
+        long time0 = fTimeProvider.getTime0();
+        long time1 = fTimeProvider.getTime1();
+        long selectedTime = fTimeProvider.getSelectedTime();
         double pixelsPerNanoSec = (bounds.width - nameSpace <= RIGHT_MARGIN) ? 0 : (double) (bounds.width - nameSpace - RIGHT_MARGIN) / (time1 - time0);
         int x = bounds.x + nameSpace + (int) ((selectedTime - time0) * pixelsPerNanoSec);
         if (x >= nameSpace && x < bounds.x + bounds.width) {
-            gc.setForeground(_colors.getColor(TimeGraphColorScheme.SELECTED_TIME));
+            gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.SELECTED_TIME));
             gc.drawLine(x, bounds.y, x, bounds.y + bounds.height);
         }
 
         // draw drag line, no line if name space is 0.
-        if (DRAG_SPLIT_LINE == _dragState) {
-            gc.setForeground(_colors.getColor(TimeGraphColorScheme.BLACK));
+        if (DRAG_SPLIT_LINE == fDragState) {
+            gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.BLACK));
             gc.drawLine(bounds.x + nameSpace, bounds.y, bounds.x + nameSpace, bounds.y + bounds.height - 1);
-        } else if (DRAG_ZOOM == _dragState && Math.max(_dragX, _dragX0) > nameSpace && _dragX != _dragX0) {
-            gc.setForeground(_colors.getColor(TimeGraphColorScheme.TOOL_FOREGROUND));
-            gc.drawLine(_dragX0, bounds.y, _dragX0, bounds.y + bounds.height - 1);
-            gc.drawLine(_dragX, bounds.y, _dragX, bounds.y + bounds.height - 1);
-        } else if (DRAG_NONE == _dragState && _mouseOverSplitLine && _timeProvider.getNameSpace() > 0) {
-            gc.setForeground(_colors.getColor(TimeGraphColorScheme.RED));
+        } else if (DRAG_ZOOM == fDragState && Math.max(fDragX, fDragX0) > nameSpace && fDragX != fDragX0) {
+            gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.TOOL_FOREGROUND));
+            gc.drawLine(fDragX0, bounds.y, fDragX0, bounds.y + bounds.height - 1);
+            gc.drawLine(fDragX, bounds.y, fDragX, bounds.y + bounds.height - 1);
+        } else if (DRAG_NONE == fDragState && fMouseOverSplitLine && fTimeProvider.getNameSpace() > 0) {
+            gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.RED));
             gc.drawLine(bounds.x + nameSpace, bounds.y, bounds.x + nameSpace, bounds.y + bounds.height - 1);
         }
     }
@@ -1193,7 +1186,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @param gc Graphics context
      */
     protected void drawItem(Item item, Rectangle bounds, ITimeDataProvider timeProvider, int i, int nameSpace, GC gc) {
-        ITimeGraphEntry entry = item._trace;
+        ITimeGraphEntry entry = item.fTrace;
         long time0 = timeProvider.getTime0();
         long time1 = timeProvider.getTime1();
         long selectedTime = timeProvider.getSelectedTime();
@@ -1203,7 +1196,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             return;
         }
 
-        if (! item._trace.hasTimeEvents()) {
+        if (! item.fTrace.hasTimeEvents()) {
             Rectangle statesRect = getStatesRect(bounds, i, nameSpace);
             nameRect.width += statesRect.width;
             drawName(item, nameRect, gc);
@@ -1216,7 +1209,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             return;
         }
         if (time1 <= time0) {
-            gc.setBackground(_colors.getBkColor(false, false, false));
+            gc.setBackground(getColorScheme().getBkColor(false, false, false));
             gc.fillRectangle(rect);
             fTimeGraphProvider.postDrawEntry(entry, rect, gc);
             return;
@@ -1224,11 +1217,11 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
         // Initialize _rect1 to same values as enclosing rectangle rect
         Rectangle stateRect = Utils.clone(rect);
-        boolean selected = item._selected;
+        boolean selected = item.fSelected;
         // K pixels per second
         double pixelsPerNanoSec = (rect.width <= RIGHT_MARGIN) ? 0 : (double) (rect.width - RIGHT_MARGIN) / (time1 - time0);
 
-        if (item._trace.hasTimeEvents()) {
+        if (item.fTrace.hasTimeEvents()) {
             fillSpace(rect, gc, selected);
             // Drawing rectangle is smaller than reserved space
             stateRect.y += 3;
@@ -1258,7 +1251,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                     }
                 }
                 boolean timeSelected = selectedTime >= event.getTime() && selectedTime < event.getTime() + event.getDuration();
-                if (drawState(_colors, event, stateRect, gc, selected, timeSelected)) {
+                if (drawState(getColorScheme(), event, stateRect, gc, selected, timeSelected)) {
                     lastX = x;
                 }
             }
@@ -1277,29 +1270,29 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            Graphics context
      */
     protected void drawName(Item item, Rectangle bounds, GC gc) {
-        boolean hasTimeEvents = item._trace.hasTimeEvents();
+        boolean hasTimeEvents = item.fTrace.hasTimeEvents();
         if (! hasTimeEvents) {
-            gc.setBackground(_colors.getBkColorGroup(item._selected, _isInFocus));
+            gc.setBackground(getColorScheme().getBkColorGroup(item.fSelected, fIsInFocus));
             gc.fillRectangle(bounds);
-            if (item._selected && _isInFocus) {
-                gc.setForeground(_colors.getBkColor(item._selected, _isInFocus, false));
+            if (item.fSelected && fIsInFocus) {
+                gc.setForeground(getColorScheme().getBkColor(item.fSelected, fIsInFocus, false));
                 gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1, bounds.height - 1);
             }
         } else {
-            gc.setBackground(_colors.getBkColor(item._selected, _isInFocus, true));
-            gc.setForeground(_colors.getFgColor(item._selected, _isInFocus));
+            gc.setBackground(getColorScheme().getBkColor(item.fSelected, fIsInFocus, true));
+            gc.setForeground(getColorScheme().getFgColor(item.fSelected, fIsInFocus));
             gc.fillRectangle(bounds);
         }
 
         // No name to be drawn
-        if (_timeProvider.getNameSpace() == 0) {
+        if (fTimeProvider.getNameSpace() == 0) {
             return;
         }
 
-        int leftMargin = MARGIN + item.level * EXPAND_SIZE;
-        if (item._hasChildren) {
-            gc.setForeground(_colors.getFgColorGroup(false, false));
-            gc.setBackground(_colors.getBkColor(false, false, false));
+        int leftMargin = MARGIN + item.fLevel * EXPAND_SIZE;
+        if (item.fHasChildren) {
+            gc.setForeground(getColorScheme().getFgColorGroup(false, false));
+            gc.setBackground(getColorScheme().getBkColor(false, false, false));
             Rectangle rect = Utils.clone(bounds);
             rect.x += leftMargin;
             rect.y += (bounds.height - EXPAND_SIZE) / 2;
@@ -1309,14 +1302,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1);
             int midy = rect.y + rect.height / 2;
             gc.drawLine(rect.x + 2, midy, rect.x + rect.width - 3, midy);
-            if (!item._expanded) {
+            if (!item.fExpanded) {
                 int midx = rect.x + rect.width / 2;
                 gc.drawLine(midx, rect.y + 2, midx, rect.y + rect.height - 3);
             }
         }
         leftMargin += EXPAND_SIZE + MARGIN;
 
-        Image img = fTimeGraphProvider.getItemImage(item._trace);
+        Image img = fTimeGraphProvider.getItemImage(item.fTrace);
         if (img != null) {
             // draw icon
             int imgHeight = img.getImageData().height;
@@ -1326,10 +1319,10 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             gc.drawImage(img, x, y);
             leftMargin += imgWidth + MARGIN;
         }
-        String name = item._name;
+        String name = item.fName;
         Point size = gc.stringExtent(name);
-        if (_idealNameSpace < leftMargin + size.x + MARGIN) {
-            _idealNameSpace = leftMargin + size.x + MARGIN;
+        if (fIdealNameSpace < leftMargin + size.x + MARGIN) {
+            fIdealNameSpace = leftMargin + size.x + MARGIN;
         }
         if (hasTimeEvents) {
             // cut long string with "..."
@@ -1350,7 +1343,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         // draw text
         if (rect.width > 0) {
             rect.y += (bounds.height - gc.stringExtent(name).y) / 2;
-            gc.setForeground(_colors.getFgColor(item._selected, _isInFocus));
+            gc.setForeground(getColorScheme().getFgColor(item.fSelected, fIsInFocus));
             int textWidth = Utils.drawText(gc, name, rect, true);
             leftMargin += textWidth + MARGIN;
             rect.y -= 2;
@@ -1360,7 +1353,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 int x = bounds.x + leftMargin;
                 int width = bounds.width - x;
                 int midy = bounds.y + bounds.height / 2;
-                gc.setForeground(_colors.getColor(TimeGraphColorScheme.MID_LINE));
+                gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.MID_LINE));
                 gc.drawLine(x, midy, x + width, midy);
             }
         }
@@ -1414,9 +1407,6 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             }
 
             boolean reallySelected = timeSelected && selected;
-            if (reallySelected) {
-                // modify the color?
-            }
             // fill all rect area
             gc.setBackground(stateColor);
             gc.fillRectangle(rect);
@@ -1448,18 +1438,18 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            Is this time event selected or not
      */
     protected void fillSpace(Rectangle rect, GC gc, boolean selected) {
-        gc.setBackground(_colors.getBkColor(selected, _isInFocus, false));
+        gc.setBackground(getColorScheme().getBkColor(selected, fIsInFocus, false));
         gc.fillRectangle(rect);
-        if (_dragState == DRAG_ZOOM) {
-            gc.setBackground(_colors.getBkColor(selected, _isInFocus, true));
-            if (_dragX0 < _dragX) {
-                gc.fillRectangle(new Rectangle(_dragX0, rect.y, _dragX - _dragX0, rect.height));
-            } else if (_dragX0 > _dragX) {
-                gc.fillRectangle(new Rectangle(_dragX, rect.y, _dragX0 - _dragX, rect.height));
+        if (fDragState == DRAG_ZOOM) {
+            gc.setBackground(getColorScheme().getBkColor(selected, fIsInFocus, true));
+            if (fDragX0 < fDragX) {
+                gc.fillRectangle(new Rectangle(fDragX0, rect.y, fDragX - fDragX0, rect.height));
+            } else if (fDragX0 > fDragX) {
+                gc.fillRectangle(new Rectangle(fDragX, rect.y, fDragX0 - fDragX, rect.height));
             }
         }
         // draw middle line
-        gc.setForeground(_colors.getColor(TimeGraphColorScheme.MID_LINE));
+        gc.setForeground(getColorScheme().getColor(TimeGraphColorScheme.MID_LINE));
         int midy = rect.y + rect.height / 2;
         gc.drawLine(rect.x, midy, rect.x + rect.width, midy);
     }
@@ -1474,18 +1464,18 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     @Override
     public void keyPressed(KeyEvent e) {
         int idx = -1;
-        if (_data._expandedItems.length == 0) {
+        if (fItemData.fExpandedItems.length == 0) {
             return;
         }
         if (SWT.HOME == e.keyCode) {
             idx = 0;
         } else if (SWT.END == e.keyCode) {
-            idx = _data._expandedItems.length - 1;
+            idx = fItemData.fExpandedItems.length - 1;
         } else if (SWT.ARROW_DOWN == e.keyCode) {
             idx = getSelectedIndex();
             if (idx < 0) {
                 idx = 0;
-            } else if (idx < _data._expandedItems.length - 1) {
+            } else if (idx < fItemData.fExpandedItems.length - 1) {
                 idx++;
             }
         } else if (SWT.ARROW_UP == e.keyCode) {
@@ -1506,8 +1496,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 idx = 0;
             }
             idx += page;
-            if (idx >= _data._expandedItems.length) {
-                idx = _data._expandedItems.length - 1;
+            if (idx >= fItemData.fExpandedItems.length) {
+                idx = fItemData.fExpandedItems.length - 1;
             }
         } else if (SWT.PAGE_UP == e.keyCode) {
             int page = countPerPage();
@@ -1522,7 +1512,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         } else if (SWT.CR == e.keyCode) {
             idx = getSelectedIndex();
             if (idx >= 0) {
-                if (_data._expandedItems[idx]._hasChildren) {
+                if (fItemData.fExpandedItems[idx].fHasChildren) {
                     toggle(idx);
                 } else {
                     fireDefaultSelection();
@@ -1542,9 +1532,9 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     @Override
     public void focusGained(FocusEvent e) {
-        _isInFocus = true;
-        if (mouseScrollFilterListener == null) {
-            mouseScrollFilterListener = new Listener() {
+        fIsInFocus = true;
+        if (fMouseScrollFilterListener == null) {
+            fMouseScrollFilterListener = new Listener() {
                 // This filter is used to prevent horizontal scrolling of the view
                 // when the mouse wheel is used to zoom
                 @Override
@@ -1552,21 +1542,21 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                     event.doit = false;
                 }
             };
-            getDisplay().addFilter(SWT.MouseWheel, mouseScrollFilterListener);
+            getDisplay().addFilter(SWT.MouseWheel, fMouseScrollFilterListener);
         }
         redraw();
     }
 
     @Override
     public void focusLost(FocusEvent e) {
-        _isInFocus = false;
-        if (mouseScrollFilterListener != null) {
-            getDisplay().removeFilter(SWT.MouseWheel, mouseScrollFilterListener);
-            mouseScrollFilterListener = null;
+        fIsInFocus = false;
+        if (fMouseScrollFilterListener != null) {
+            getDisplay().removeFilter(SWT.MouseWheel, fMouseScrollFilterListener);
+            fMouseScrollFilterListener = null;
         }
-        if (DRAG_NONE != _dragState) {
+        if (DRAG_NONE != fDragState) {
             setCapture(false);
-            _dragState = DRAG_NONE;
+            fDragState = DRAG_NONE;
         }
         redraw();
     }
@@ -1575,7 +1565,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @return If the current view is focused
      */
     public boolean isInFocus() {
-        return _isInFocus;
+        return fIsInFocus;
     }
 
     /**
@@ -1587,15 +1577,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public void waitCursor(boolean waitInd) {
         // Update cursor as indicated
         if (waitInd) {
-            setCursor(_WaitCursor);
-            _isWaitCursor = true;
+            setCursor(fWaitCursor);
+            fIsWaitCursor = true;
         } else {
             setCursor(null);
-            _isWaitCursor = false;
+            fIsWaitCursor = false;
         }
 
         // Get ready for next mouse move
-        _isDragCursor3 = false;
+        fIsDragCursor = false;
     }
 
     /**
@@ -1611,73 +1601,73 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     void updateCursor(int x, int y) {
         // if Wait cursor not active, check for the need to change to a drag
         // cursor
-        if (_isWaitCursor == false) {
+        if (!fIsWaitCursor) {
             boolean isSplitLine = isOverSplitLine(x);
             // No dragcursor is name space is fixed to zero
-            if (isSplitLine && !_isDragCursor3 && _timeProvider.getNameSpace() > 0) {
-                setCursor(_dragCursor3);
-                _isDragCursor3 = true;
-            } else if (!isSplitLine && _isDragCursor3) {
+            if (isSplitLine && !fIsDragCursor && fTimeProvider.getNameSpace() > 0) {
+                setCursor(fDragCursor);
+                fIsDragCursor = true;
+            } else if (!isSplitLine && fIsDragCursor) {
                 setCursor(null);
-                _isDragCursor3 = false;
+                fIsDragCursor = false;
             }
         }
     }
 
     @Override
     public void mouseMove(MouseEvent e) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return;
         }
         Point size = getCtrlSize();
-        if (DRAG_TRACE_ITEM == _dragState) {
-            int nameWidth = _timeProvider.getNameSpace();
+        if (DRAG_TRACE_ITEM == fDragState) {
+            int nameWidth = fTimeProvider.getNameSpace();
             int x = e.x - nameWidth;
-            if (x > 0 && size.x > nameWidth && _dragX != x) {
-                _dragX = x;
-                double pixelsPerNanoSec = (size.x - nameWidth <= RIGHT_MARGIN) ? 0 : (double) (size.x - nameWidth - RIGHT_MARGIN) / (_time1bak - _time0bak);
-                long timeDelta = (long) ((pixelsPerNanoSec == 0) ? 0 : ((_dragX - _dragX0) / pixelsPerNanoSec));
-                long time1 = _time1bak - timeDelta;
-                long maxTime = _timeProvider.getMaxTime();
+            if (x > 0 && size.x > nameWidth && fDragX != x) {
+                fDragX = x;
+                double pixelsPerNanoSec = (size.x - nameWidth <= RIGHT_MARGIN) ? 0 : (double) (size.x - nameWidth - RIGHT_MARGIN) / (fTime1bak - fTime0bak);
+                long timeDelta = (long) ((pixelsPerNanoSec == 0) ? 0 : ((fDragX - fDragX0) / pixelsPerNanoSec));
+                long time1 = fTime1bak - timeDelta;
+                long maxTime = fTimeProvider.getMaxTime();
                 if (time1 > maxTime) {
                     time1 = maxTime;
                 }
-                long time0 = time1 - (_time1bak - _time0bak);
-                if (time0 < _timeProvider.getMinTime()) {
-                    time0 = _timeProvider.getMinTime();
-                    time1 = time0 + (_time1bak - _time0bak);
+                long time0 = time1 - (fTime1bak - fTime0bak);
+                if (time0 < fTimeProvider.getMinTime()) {
+                    time0 = fTimeProvider.getMinTime();
+                    time1 = time0 + (fTime1bak - fTime0bak);
                 }
-                _timeProvider.setStartFinishTime(time0, time1);
+                fTimeProvider.setStartFinishTime(time0, time1);
             }
-        } else if (DRAG_SPLIT_LINE == _dragState) {
-            _dragX = e.x;
-            _timeProvider.setNameSpace(e.x);
-        } else if (DRAG_ZOOM == _dragState) {
-            _dragX = Math.min(Math.max(e.x, _timeProvider.getNameSpace()), size.x - RIGHT_MARGIN);
+        } else if (DRAG_SPLIT_LINE == fDragState) {
+            fDragX = e.x;
+            fTimeProvider.setNameSpace(e.x);
+        } else if (DRAG_ZOOM == fDragState) {
+            fDragX = Math.min(Math.max(e.x, fTimeProvider.getNameSpace()), size.x - RIGHT_MARGIN);
             redraw();
-        } else if (DRAG_NONE == _dragState) {
+        } else if (DRAG_NONE == fDragState) {
             boolean mouseOverSplitLine = isOverSplitLine(e.x);
-            if (_mouseOverSplitLine != mouseOverSplitLine) {
+            if (fMouseOverSplitLine != mouseOverSplitLine) {
                 redraw();
             }
-            _mouseOverSplitLine = mouseOverSplitLine;
+            fMouseOverSplitLine = mouseOverSplitLine;
         }
         updateCursor(e.x, e.y);
     }
 
     @Override
     public void mouseDoubleClick(MouseEvent e) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return;
         }
         if (1 == e.button && (e.stateMask & SWT.BUTTON_MASK) == 0) {
-            if (isOverSplitLine(e.x) && _timeProvider.getNameSpace() != 0) {
-                _timeProvider.setNameSpace(_idealNameSpace);
+            if (isOverSplitLine(e.x) && fTimeProvider.getNameSpace() != 0) {
+                fTimeProvider.setNameSpace(fIdealNameSpace);
                 boolean mouseOverSplitLine = isOverSplitLine(e.x);
-                if (_mouseOverSplitLine != mouseOverSplitLine) {
+                if (fMouseOverSplitLine != mouseOverSplitLine) {
                     redraw();
                 }
-                _mouseOverSplitLine = mouseOverSplitLine;
+                fMouseOverSplitLine = mouseOverSplitLine;
                 return;
             }
             int idx = getItemIndexAtY(e.y);
@@ -1690,37 +1680,36 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     @Override
     public void mouseDown(MouseEvent e) {
-        if (_dragState != DRAG_NONE || null == _timeProvider) {
+        if (fDragState != DRAG_NONE || null == fTimeProvider) {
             return;
         }
         int idx;
         if (1 == e.button) {
-            int nameSpace = _timeProvider.getNameSpace();
-            if (nameSpace != 0) {
-                if (isOverSplitLine(e.x)) {
-                    _dragState = DRAG_SPLIT_LINE;
-                    _dragX = _dragX0 = e.x;
-                    _time0bak = _timeProvider.getTime0();
-                    _time1bak = _timeProvider.getTime1();
-                    redraw();
-                    return;
-                }
+            int nameSpace = fTimeProvider.getNameSpace();
+            if (nameSpace != 0 && isOverSplitLine(e.x)) {
+                fDragState = DRAG_SPLIT_LINE;
+                fDragX = e.x;
+                fDragX0 = fDragX;
+                fTime0bak = fTimeProvider.getTime0();
+                fTime1bak = fTimeProvider.getTime1();
+                redraw();
+                return;
             }
 
             idx = getItemIndexAtY(e.y);
             if (idx >= 0) {
-                Item item = _data._expandedItems[idx];
-                if (item._hasChildren && e.x < nameSpace && e.x < MARGIN + (item.level + 1) * EXPAND_SIZE) {
+                Item item = fItemData.fExpandedItems[idx];
+                if (item.fHasChildren && e.x < nameSpace && e.x < MARGIN + (item.fLevel + 1) * EXPAND_SIZE) {
                     toggle(idx);
                 } else {
                     long hitTime = getTimeAtX(e.x);
                     if (hitTime >= 0) {
-                        // _timeProvider.setSelectedTimeInt(hitTime, false);
                         setCapture(true);
-                        _dragState = DRAG_TRACE_ITEM;
-                        _dragX = _dragX0 = e.x - nameSpace;
-                        _time0bak = _timeProvider.getTime0();
-                        _time1bak = _timeProvider.getTime1();
+                        fDragState = DRAG_TRACE_ITEM;
+                        fDragX = e.x - nameSpace;
+                        fDragX0 = fDragX;
+                        fTime0bak = fTimeProvider.getTime0();
+                        fTime1bak = fTimeProvider.getTime1();
                     }
                 }
                 selectItem(idx, false);
@@ -1731,12 +1720,13 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 fireSelectionChanged();
             }
         } else if (3 == e.button) {
-            if (_timeProvider.getTime0() == _timeProvider.getTime1() || getCtrlSize().x - _timeProvider.getNameSpace() <= 0) {
+            if (fTimeProvider.getTime0() == fTimeProvider.getTime1() || getCtrlSize().x - fTimeProvider.getNameSpace() <= 0) {
                 return;
             }
             setCapture(true);
-            _dragX = _dragX0 = Math.min(Math.max(e.x, _timeProvider.getNameSpace()), getCtrlSize().x - RIGHT_MARGIN);
-            _dragState = DRAG_ZOOM;
+            fDragX = Math.min(Math.max(e.x, fTimeProvider.getNameSpace()), getCtrlSize().x - RIGHT_MARGIN);
+            fDragX0 = fDragX;
+            fDragState = DRAG_ZOOM;
         }
     }
 
@@ -1745,35 +1735,35 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         if (fPendingMenuDetectEvent != null && e.button == 3) {
             menuDetected(fPendingMenuDetectEvent);
         }
-        if (DRAG_NONE != _dragState) {
+        if (DRAG_NONE != fDragState) {
             setCapture(false);
-            if (e.button == 1 && DRAG_TRACE_ITEM == _dragState) {
-                if (_dragX == _dragX0) { // click without drag
+            if (e.button == 1 && DRAG_TRACE_ITEM == fDragState) {
+                if (fDragX == fDragX0) { // click without drag
                     long time = getTimeAtX(e.x);
-                    _timeProvider.setSelectedTimeNotify(time, false);
+                    fTimeProvider.setSelectedTimeNotify(time, false);
                 } else {
                     // Notify time provider to check the need for listener
                     // notification
-                    _timeProvider.notifyStartFinishTime();
+                    fTimeProvider.notifyStartFinishTime();
                 }
-                _dragState = DRAG_NONE;
-            } else if (e.button == 1 && DRAG_SPLIT_LINE == _dragState) {
+                fDragState = DRAG_NONE;
+            } else if (e.button == 1 && DRAG_SPLIT_LINE == fDragState) {
                 redraw();
-                _dragState = DRAG_NONE;
-            } else if (e.button == 3 && DRAG_ZOOM == _dragState) {
-                int nameWidth = _timeProvider.getNameSpace();
-                if (Math.max(_dragX, _dragX0) > nameWidth && _dragX != _dragX0) {
-                    long time0 = getTimeAtX(_dragX0);
-                    long time1 = getTimeAtX(_dragX);
+                fDragState = DRAG_NONE;
+            } else if (e.button == 3 && DRAG_ZOOM == fDragState) {
+                int nameWidth = fTimeProvider.getNameSpace();
+                if (Math.max(fDragX, fDragX0) > nameWidth && fDragX != fDragX0) {
+                    long time0 = getTimeAtX(fDragX0);
+                    long time1 = getTimeAtX(fDragX);
                     if (time0 < time1) {
-                        _timeProvider.setStartFinishTimeNotify(time0, time1);
+                        fTimeProvider.setStartFinishTimeNotify(time0, time1);
                     } else {
-                        _timeProvider.setStartFinishTimeNotify(time1, time0);
+                        fTimeProvider.setStartFinishTimeNotify(time1, time0);
                     }
                 } else {
                     redraw();
                 }
-                _dragState = DRAG_NONE;
+                fDragState = DRAG_NONE;
             }
         }
     }
@@ -1784,8 +1774,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     @Override
     public void mouseExit(MouseEvent e) {
-        if (_mouseOverSplitLine) {
-            _mouseOverSplitLine = false;
+        if (fMouseOverSplitLine) {
+            fMouseOverSplitLine = false;
             redraw();
         }
     }
@@ -1796,7 +1786,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
     @Override
     public void mouseScrolled(MouseEvent e) {
-        if ((mouseScrollFilterListener == null) || _dragState != DRAG_NONE) {
+        if ((fMouseScrollFilterListener == null) || fDragState != DRAG_NONE) {
             return;
         }
         boolean zoomScroll = false;
@@ -1807,14 +1797,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             if (e.x > getCtrlSize().x) {
                 // over the horizontal scroll bar
                 zoomScroll = false;
-            } else if (e.y >= 0 && e.y < getCtrlSize().y && e.x < _timeProvider.getNameSpace()) {
+            } else if (e.y >= 0 && e.y < getCtrlSize().y && e.x < fTimeProvider.getNameSpace()) {
                 // over the name space
                 zoomScroll = false;
             } else {
                 zoomScroll = true;
             }
         }
-        if (zoomScroll && _timeProvider.getTime0() != _timeProvider.getTime1()) {
+        if (zoomScroll && fTimeProvider.getTime0() != fTimeProvider.getTime1()) {
             if (e.count > 0) {
                 zoom(true);
             } else if (e.count < 0) {
@@ -1842,16 +1832,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
     public void widgetSelected(SelectionEvent e) {
         if (e.widget == getVerticalBar()) {
             setTopIndex(getVerticalBar().getSelection());
-        } else if (e.widget == getHorizontalBar() && null != _timeProvider) {
+        } else if (e.widget == getHorizontalBar() && null != fTimeProvider) {
             int start = getHorizontalBar().getSelection();
-            long time0 = _timeProvider.getTime0();
-            long time1 = _timeProvider.getTime1();
-            long timeMin = _timeProvider.getMinTime();
-            long timeMax = _timeProvider.getMaxTime();
+            long time0 = fTimeProvider.getTime0();
+            long time1 = fTimeProvider.getTime1();
+            long timeMin = fTimeProvider.getMinTime();
+            long timeMax = fTimeProvider.getMaxTime();
             long delta = timeMax - timeMin;
 
             long range = time1 - time0;
-            // _timeRangeFixed = true;
             time0 = timeMin + Math.round(delta * ((double) start / H_SCROLLBAR_MAX));
             time1 = time0 + range;
 
@@ -1859,23 +1848,16 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
             // In Linux SWT.DRAG is the only value received
             // https://bugs.eclipse.org/bugs/show_bug.cgi?id=310310
             if (e.detail == SWT.DRAG) {
-                _timeProvider.setStartFinishTime(time0, time1);
+                fTimeProvider.setStartFinishTime(time0, time1);
             } else {
-                _timeProvider.setStartFinishTimeNotify(time0, time1);
+                fTimeProvider.setStartFinishTimeNotify(time0, time1);
             }
         }
     }
 
-    /**
-     * @return The current visibility of the vertical scroll bar
-     */
-    public boolean isVisibleVerticalScroll() {
-        return _visibleVerticalScroll;
-    }
-
     @Override
     public int getBorderWidth() {
-        return _borderWidth;
+        return fBorderWidth;
     }
 
     /**
@@ -1885,14 +1867,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The width
      */
     public void setBorderWidth(int borderWidth) {
-        this._borderWidth = borderWidth;
+        this.fBorderWidth = borderWidth;
     }
 
     /**
      * @return The current height of the header row
      */
     public int getHeaderHeight() {
-        return _headerHeight;
+        return fHeaderHeight;
     }
 
     /**
@@ -1902,14 +1884,14 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The height
      */
     public void setHeaderHeight(int headerHeight) {
-        this._headerHeight = headerHeight;
+        this.fHeaderHeight = headerHeight;
     }
 
     /**
      * @return The height of regular item rows
      */
     public int getItemHeight() {
-        return _itemHeight;
+        return fGlobalItemHeight;
     }
 
     /**
@@ -1919,7 +1901,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      *            The height
      */
     public void setItemHeight(int rowHeight) {
-        this._itemHeight = rowHeight;
+        this.fGlobalItemHeight = rowHeight;
     }
 
     /**
@@ -1928,42 +1910,39 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @param width The minimum width
      */
     public void setMinimumItemWidth(int width) {
-        this._minimumItemWidth = width;
+        this.fMinimumItemWidth = width;
     }
 
     /**
      * @return The minimum item width
      */
     public int getMinimumItemWidth() {
-        return _minimumItemWidth;
+        return fMinimumItemWidth;
     }
 
     /**
      * @return The entries that are currently filtered out
+     *
+     * @since 2.0
      */
-    public Vector<ITimeGraphEntry> getFilteredOut() {
-        return _data.getFilteredOut();
+    public List<ITimeGraphEntry> getFilteredOut() {
+        return fItemData.getFilteredOut();
     }
 
-    // @Override
     @Override
     public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        if (listener != null) {
-            if (!_selectionChangedListeners.contains(listener)) {
-                _selectionChangedListeners.add(listener);
-            }
+        if (listener != null && !fSelectionChangedListeners.contains(listener)) {
+            fSelectionChangedListeners.add(listener);
         }
     }
 
-    // @Override
     @Override
     public void removeSelectionChangedListener(ISelectionChangedListener listener) {
         if (listener != null) {
-            _selectionChangedListeners.remove(listener);
+            fSelectionChangedListeners.remove(listener);
         }
     }
 
-    // @Override
     @Override
     public void setSelection(ISelection selection) {
         if (selection instanceof TimeGraphSelection) {
@@ -1982,8 +1961,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public void addFilter(ViewerFilter filter) {
-        if (!_filters.contains(filter)) {
-            _filters.add(filter);
+        if (!fFilters.contains(filter)) {
+            fFilters.add(filter);
         }
     }
 
@@ -1992,16 +1971,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      * @since 2.0
      */
     public void removeFilter(ViewerFilter filter) {
-        _filters.remove(filter);
+        fFilters.remove(filter);
     }
 
     private class ItemData {
-        public Item[] _expandedItems = new Item[0];
-        public Item[] _items = new Item[0];
-        private ITimeGraphEntry _traces[] = new ITimeGraphEntry[0];
-        private boolean traceFilter[] = new boolean[0];
-        private final Vector<ITimeGraphEntry> filteredOut = new Vector<ITimeGraphEntry>();
-        public ITimeGraphPresentationProvider provider;
+        private Item[] fExpandedItems = new Item[0];
+        private Item[] fItems = new Item[0];
+        private ITimeGraphEntry fTraces[] = new ITimeGraphEntry[0];
+        private boolean fTraceFilter[] = new boolean[0];
+        private final ArrayList<ITimeGraphEntry> fFilteredOut = new ArrayList<ITimeGraphEntry>();
 
         public ItemData() {
         }
@@ -2011,9 +1989,9 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 return null;
             }
 
-            for (int i = 0; i < _items.length; i++) {
-                Item item = _items[i];
-                if (item._trace == entry) {
+            for (int i = 0; i < fItems.length; i++) {
+                Item item = fItems[i];
+                if (item.fTrace == entry) {
                     return item;
                 }
             }
@@ -2026,9 +2004,9 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 return -1;
             }
 
-            for (int i = 0; i < _expandedItems.length; i++) {
-                Item item = _expandedItems[i];
-                if (item._trace == trace) {
+            for (int i = 0; i < fExpandedItems.length; i++) {
+                Item item = fExpandedItems[i];
+                if (item.fTrace == trace) {
                     return i;
                 }
             }
@@ -2038,18 +2016,18 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
         public void refreshData() {
             List<Item> itemList = new ArrayList<Item>();
-            filteredOut.clear();
+            fFilteredOut.clear();
             ITimeGraphEntry selection = getSelectedTrace();
-            for (int i = 0; i < _traces.length; i++) {
-                ITimeGraphEntry entry = _traces[i];
+            for (int i = 0; i < fTraces.length; i++) {
+                ITimeGraphEntry entry = fTraces[i];
                 refreshData(itemList, null, 0, entry);
             }
-            _items = itemList.toArray(new Item[0]);
+            fItems = itemList.toArray(new Item[0]);
             updateExpandedItems();
             if (selection != null) {
-                for (Item item : _expandedItems) {
-                    if (item._trace == selection) {
-                        item._selected = true;
+                for (Item item : fExpandedItems) {
+                    if (item.fTrace == selection) {
+                        item.fSelected = true;
                         break;
                     }
                 }
@@ -2059,13 +2037,13 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         private void refreshData(List<Item> itemList, Item parent, int level, ITimeGraphEntry entry) {
             Item item = new Item(entry, entry.getName(), level);
             if (parent != null) {
-                parent.children.add(item);
+                parent.fChildren.add(item);
             }
-            item.itemHeight = provider.getItemHeight(entry);
+            item.fItemHeight = fTimeGraphProvider.getItemHeight(entry);
             itemList.add(item);
             if (entry.hasChildren()) {
-                item._expanded = true;
-                item._hasChildren = true;
+                item.fExpanded = true;
+                item.fHasChildren = true;
                 for (ITimeGraphEntry child : entry.getChildren()) {
                     refreshData(itemList, item, level + 1, child);
                 }
@@ -2074,27 +2052,27 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
 
         public void updateExpandedItems() {
             List<Item> expandedItemList = new ArrayList<Item>();
-            for (int i = 0; i < _traces.length; i++) {
-                ITimeGraphEntry entry = _traces[i];
+            for (int i = 0; i < fTraces.length; i++) {
+                ITimeGraphEntry entry = fTraces[i];
                 Item item = findItem(entry);
                 refreshExpanded(expandedItemList, item);
             }
-            _expandedItems = expandedItemList.toArray(new Item[0]);
+            fExpandedItems = expandedItemList.toArray(new Item[0]);
         }
 
         private void refreshExpanded(List<Item> expandedItemList, Item item) {
             // Check for filters
             boolean display = true;
-            for (ViewerFilter filter : _filters) {
-                if (!filter.select(null, item._trace.getParent(), item._trace)) {
+            for (ViewerFilter filter : fFilters) {
+                if (!filter.select(null, item.fTrace.getParent(), item.fTrace)) {
                     display = false;
                     break;
                 }
             }
             if (display) {
                 expandedItemList.add(item);
-                if (item._hasChildren && item._expanded) {
-                    for (Item child : item.children) {
+                if (item.fHasChildren && item.fExpanded) {
+                    for (Item child : item.fChildren) {
                         refreshExpanded(expandedItemList, child);
                     }
                 }
@@ -2102,50 +2080,55 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
         }
 
         public void refreshData(ITimeGraphEntry traces[]) {
-            if (traces == null || traces.length == 0) {
-                traceFilter = null;
-            } else if (traceFilter == null || traces.length != traceFilter.length) {
-                traceFilter = new boolean[traces.length];
-                java.util.Arrays.fill(traceFilter, true);
+            if (traces == null) {
+                fTraceFilter = null;
+                fTraces = null;
+            } else {
+                if (traces.length == 0) {
+                    fTraceFilter = null;
+                } else if (fTraceFilter == null || traces.length != fTraceFilter.length) {
+                    fTraceFilter = new boolean[traces.length];
+                    java.util.Arrays.fill(fTraceFilter, true);
+                }
+                fTraces = Arrays.copyOf(traces, traces.length);
             }
 
-            _traces = traces;
             refreshData();
         }
 
         public ITimeGraphEntry[] getTraces() {
-            return _traces;
+            return fTraces;
         }
 
         public boolean[] getTraceFilter() {
-            return traceFilter;
+            return fTraceFilter;
         }
 
-        public Vector<ITimeGraphEntry> getFilteredOut() {
-            return filteredOut;
+        public List<ITimeGraphEntry> getFilteredOut() {
+            return fFilteredOut;
         }
     }
 
     private class Item {
-        public boolean _expanded;
-        public boolean _selected;
-        public boolean _hasChildren;
-        public int itemHeight;
-        public int level;
-        public List<Item> children;
-        public String _name;
-        public ITimeGraphEntry _trace;
+        private boolean fExpanded;
+        private boolean fSelected;
+        private boolean fHasChildren;
+        private int fItemHeight;
+        private int fLevel;
+        private List<Item> fChildren;
+        private String fName;
+        private ITimeGraphEntry fTrace;
 
         public Item(ITimeGraphEntry trace, String name, int level) {
-            this._trace = trace;
-            this._name = name;
-            this.level = level;
-            this.children = new ArrayList<Item>();
+            this.fTrace = trace;
+            this.fName = name;
+            this.fLevel = level;
+            this.fChildren = new ArrayList<Item>();
         }
 
         @Override
         public String toString() {
-            return _name;
+            return fName;
         }
     }
 
@@ -2154,7 +2137,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
      */
     @Override
     public void menuDetected(MenuDetectEvent e) {
-        if (null == _timeProvider) {
+        if (null == fTimeProvider) {
             return;
         }
         if (e.detail == SWT.MENU_MOUSE) {
@@ -2167,19 +2150,19 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
                 return;
             }
             fPendingMenuDetectEvent = null;
-            if (_dragState != DRAG_ZOOM || _dragX != _dragX0) {
+            if (fDragState != DRAG_ZOOM || fDragX != fDragX0) {
                 return;
             }
         } else {
-            if (_dragState != DRAG_NONE) {
+            if (fDragState != DRAG_NONE) {
                 return;
             }
         }
         Point p = toControl(e.x, e.y);
         int idx = getItemIndexAtY(p.y);
-        if (idx >= 0 && idx < _data._expandedItems.length) {
-            Item item = _data._expandedItems[idx];
-            ITimeGraphEntry entry = item._trace;
+        if (idx >= 0 && idx < fItemData.fExpandedItems.length) {
+            Item item = fItemData.fExpandedItems[idx];
+            ITimeGraphEntry entry = item.fTrace;
             if (entry.hasTimeEvents()) {
                 ITimeEvent event = Utils.findEvent(entry, getTimeAtX(p.x), 2);
                 if (event != null) {
This page took 0.060142 seconds and 5 git commands to generate.