import java.util.Iterator;\r
import java.util.Map;\r
\r
+import org.eclipse.core.resources.IFile;\r
import org.eclipse.core.resources.IMarker;\r
import org.eclipse.core.resources.IMarkerDelta;\r
-import org.eclipse.core.resources.IResource;\r
import org.eclipse.core.resources.IResourceChangeEvent;\r
import org.eclipse.core.resources.IResourceChangeListener;\r
import org.eclipse.core.resources.IResourceDelta;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceUpdatedSignal;\r
+import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;\r
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;\r
-import org.eclipse.linuxtools.tmf.core.trace.TmfContext;\r
import org.eclipse.linuxtools.tmf.ui.editors.ITmfTraceEditor;\r
import org.eclipse.linuxtools.tmf.ui.signal.TmfTraceClosedSignal;\r
import org.eclipse.linuxtools.tmf.ui.signal.TmfTraceOpenedSignal;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.TmfViewerFactory;\r
import org.eclipse.linuxtools.tmf.ui.viewers.events.ITmfEventsFilterListener;\r
import org.eclipse.linuxtools.tmf.ui.viewers.events.ITmfEventsFilterProvider;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.ITimeAnalysisViewer;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.ITmfTimeScaleSelectionListener;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.ITmfTimeSelectionListener;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeScaleSelectionEvent;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeSelectionEvent;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent;\r
-import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITmfTimeAnalysisEntry;\r
import org.eclipse.linuxtools.tmf.ui.views.TmfView;\r
import org.eclipse.linuxtools.tmf.ui.views.colors.ColorSetting;\r
import org.eclipse.linuxtools.tmf.ui.views.colors.ColorSettingsManager;\r
import org.eclipse.linuxtools.tmf.ui.views.colors.IColorSettingsListener;\r
import org.eclipse.linuxtools.tmf.ui.views.timechart.TimeChartEvent.RankRange;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphRangeListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphSelectionListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphTimeListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphRangeUpdateEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphSelectionEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphTimeEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphViewer;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;\r
import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.GridLayout;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Display;\r
import org.eclipse.ui.IEditorPart;\r
import org.eclipse.ui.IEditorReference;\r
\r
-public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionListener, ITmfTimeSelectionListener, IColorSettingsListener,\r
+public class TimeChartView extends TmfView implements ITimeGraphRangeListener, ITimeGraphSelectionListener, ITimeGraphTimeListener, IColorSettingsListener,\r
IResourceChangeListener, ITmfEventsFilterListener {\r
\r
public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.timechart"; //$NON-NLS-1$\r
private static final int TIMESTAMP_SCALE = -9;\r
\r
private final int fDisplayWidth;\r
- private Composite fComposite;\r
- private ITimeAnalysisViewer fViewer;\r
+ private TimeGraphViewer fViewer;\r
private final ArrayList<TimeChartAnalysisEntry> fTimeAnalysisEntries = new ArrayList<TimeChartAnalysisEntry>();\r
private final Map<ITmfTrace<?>, TimeChartDecorationProvider> fDecorationProviders = new HashMap<ITmfTrace<?>, TimeChartDecorationProvider>();\r
private ArrayList<DecorateThread> fDecorateThreads;\r
\r
@Override\r
public void createPartControl(Composite parent) {\r
- fComposite = new Composite(parent, SWT.NONE);\r
- GridLayout gl = new GridLayout();\r
- gl.marginWidth = 0;\r
- gl.marginHeight = 0;\r
- fComposite.setLayout(gl);\r
-\r
- fViewer = TmfViewerFactory.createViewer(fComposite, new TimeChartAnalysisProvider());\r
- fViewer.groupTraces(false);\r
+ fViewer = new TimeGraphViewer(parent, SWT.NONE);\r
+ fViewer.setTimeGraphProvider(new TimeChartAnalysisProvider());\r
fViewer.setTimeCalendarFormat(true);\r
- fViewer.setAcceptSelectionAPIcalls(true);\r
- fViewer.addWidgetTimeScaleSelectionListner(this);\r
- fViewer.addWidgetSelectionListner(this);\r
+ fViewer.addRangeListener(this);\r
+ fViewer.addSelectionListener(this);\r
fViewer.setMinimumItemWidth(1);\r
\r
IEditorReference[] editorReferences = getSite().getPage().getEditorReferences();\r
if (editor instanceof ITmfTraceEditor) {\r
ITmfTrace<?> trace = ((ITmfTraceEditor) editor).getTrace();\r
if (trace != null) {\r
- IResource resource = ((ITmfTraceEditor) editor).getResource();\r
+ IFile bookmarksFile = ((ITmfTraceEditor) editor).getBookmarksFile();\r
TimeChartAnalysisEntry timeAnalysisEntry = new TimeChartAnalysisEntry(trace, fDisplayWidth * 2);\r
fTimeAnalysisEntries.add(timeAnalysisEntry);\r
- fDecorationProviders.put(trace, new TimeChartDecorationProvider(resource));\r
+ fDecorationProviders.put(trace, new TimeChartDecorationProvider(bookmarksFile));\r
Thread thread = new ProcessTraceThread(timeAnalysisEntry);\r
thread.start();\r
}\r
}\r
}\r
- fViewer.display(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
+ fViewer.setInput(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
\r
fDecorateThreads = new ArrayList<DecorateThread>();\r
ColorSettingsManager.addColorSettingsListener(this);\r
\r
@Override\r
public void setFocus() {\r
- super.setFocus();\r
fViewer.setFocus();\r
}\r
\r
if (decorationProvider == null) {\r
return; // the trace has been closed\r
}\r
- TmfContext context = null;\r
+ ITmfContext context = null;\r
// TmfTimestamp lastTimestamp = null;\r
boolean done = false;\r
while (!done) {\r
}\r
while (true) {\r
long rank = context.getRank();\r
- ITmfEvent event = trace.getNextEvent(context);\r
+ ITmfEvent event = trace.readNextEvent(context);\r
if (event == null) {\r
done = true;\r
break;\r
}\r
\r
private void refreshViewer(boolean resetTimeIntervals) {\r
- if (fComposite == null) {\r
- return;\r
- }\r
synchronized (fSyncObj) {\r
if (fRefreshBusy) {\r
fRefreshPending = true;\r
Display.getDefault().asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- if (fComposite.isDisposed())\r
+ if (fViewer.getControl().isDisposed())\r
return;\r
- fViewer.display(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
+ fViewer.setInput(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
if (reset) {\r
fViewer.resetStartFinishTime();\r
}\r
}\r
\r
public void itemizeTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry) {\r
- Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator();\r
+ Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator();\r
TimeChartEvent event = null;\r
boolean hasNext = true;\r
while (hasNext) {\r
private volatile boolean interrupted = false;\r
private final TimeChartAnalysisEntry fTimeAnalysisEntry;\r
private final TimeChartDecorationProvider fDecorationProvider;\r
- private TmfContext fContext;\r
+ private ITmfContext fContext;\r
private int fCount = 0;\r
\r
private DecorateThread(TimeChartAnalysisEntry timeAnalysisEntry) {\r
}\r
\r
public void resetTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry) {\r
- Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator();\r
+ Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator();\r
TimeChartEvent event = null;\r
boolean hasNext = true;\r
while (!interrupted && hasNext) {\r
public void decorateTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry, TimeChartEvent parentEvent) {\r
// Set max duration high to ensure iterator does not consider\r
// itemized events\r
- Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator(0, Long.MAX_VALUE, Long.MAX_VALUE);\r
+ Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator(0, Long.MAX_VALUE, Long.MAX_VALUE);\r
TimeChartEvent event = null;\r
int entryPriority = ColorSettingsManager.PRIORITY_NONE;\r
boolean entryIsBookmarked = false;\r
if (interrupted)\r
return;\r
long rank = fContext.getRank();\r
- ITmfEvent event = trace.getNextEvent(fContext);\r
+ ITmfEvent event = trace.readNextEvent(fContext);\r
if (event == null) {\r
break;\r
}\r
// ------------------------------------------------------------------------\r
\r
@Override\r
- public void tsfTmProcessTimeScaleEvent(TmfTimeScaleSelectionEvent event) {\r
- fStartTime = event.getTime0();\r
- fStopTime = event.getTime1();\r
+ public void timeRangeUpdated(TimeGraphRangeUpdateEvent event) {\r
+ fStartTime = event.getStartTime();\r
+ fStopTime = event.getEndTime();\r
itemize(fStartTime, fStopTime);\r
}\r
\r
@Override\r
- public void tsfTmProcessSelEvent(TmfTimeSelectionEvent event) {\r
- ITmfTimeAnalysisEntry timeAnalysisEntry = null;\r
+ public void selectionChanged(TimeGraphSelectionEvent event) {\r
+ ITimeGraphEntry timeAnalysisEntry = null;\r
if (event.getSelection() instanceof TimeChartAnalysisEntry) {\r
timeAnalysisEntry = (TimeChartAnalysisEntry) event.getSelection();\r
} else if (event.getSelection() instanceof TimeChartEvent) {\r
if (timeAnalysisEntry instanceof TimeChartAnalysisEntry) {\r
broadcast(new TmfTraceSelectedSignal(this, ((TimeChartAnalysisEntry) timeAnalysisEntry).getTrace()));\r
}\r
- broadcast(new TmfTimeSynchSignal(this, new TmfTimestamp(event.getSelectedTime(), TIMESTAMP_SCALE)));\r
+ }\r
+\r
+ @Override\r
+ public void timeSelected(TimeGraphTimeEvent event) {\r
+ broadcast(new TmfTimeSynchSignal(this, new TmfTimestamp(event.getTime(), TIMESTAMP_SCALE)));\r
}\r
\r
@Override\r
public void resourceChanged(IResourceChangeEvent event) {\r
for (IMarkerDelta delta : event.findMarkerDeltas(IMarker.BOOKMARK, false)) {\r
for (TimeChartDecorationProvider provider : fDecorationProviders.values()) {\r
- if (delta.getResource().equals(provider.getResource())) {\r
+ if (delta.getResource().equals(provider.getBookmarksFile())) {\r
if (delta.getKind() == IResourceDelta.CHANGED && delta.getMarker().getAttribute(IMarker.LOCATION, -1) != -1) {\r
provider.refreshBookmarks();\r
} else if (delta.getKind() == IResourceDelta.REMOVED) {\r
if (fTimeAnalysisEntries == null)\r
return;\r
final ITmfTrace<?> trace = signal.getTrace();\r
- final IResource resource = signal.getResource();\r
+ final IFile bookmarksFile = signal.getBookmarksFile();\r
final ITmfEventsFilterProvider eventsFilterProvider = signal.getEventsFilterProvider();\r
TimeChartAnalysisEntry timeAnalysisEntry = null;\r
for (int i = 0; i < fTimeAnalysisEntries.size(); i++) {\r
if (timeAnalysisEntry == null) {\r
timeAnalysisEntry = new TimeChartAnalysisEntry(trace, fDisplayWidth * 2);\r
fTimeAnalysisEntries.add(timeAnalysisEntry);\r
- fDecorationProviders.put(trace, new TimeChartDecorationProvider(resource));\r
+ fDecorationProviders.put(trace, new TimeChartDecorationProvider(bookmarksFile));\r
Thread thread = new ProcessTraceThread(timeAnalysisEntry);\r
thread.start();\r
}\r
ITmfTrace<?> trace = signal.getTrace();\r
for (int i = 0; i < fTimeAnalysisEntries.size(); i++) {\r
if (fTimeAnalysisEntries.get(i).getTrace().equals(trace)) {\r
- fViewer.setSelectedTrace(fTimeAnalysisEntries.get(i));\r
+ fViewer.setSelection(fTimeAnalysisEntries.get(i));\r
break;\r
}\r
}\r