Commit | Line | Data |
---|---|---|
6e512b93 | 1 | /******************************************************************************* |
8827c197 | 2 | * Copyright (c) 2009, 2010 Ericsson |
6e512b93 | 3 | * |
dfaf8391 FC |
4 | * All rights reserved. This program and the accompanying materials are made |
5 | * available under the terms of the Eclipse Public License v1.0 which | |
6e512b93 ASL |
6 | * accompanies this distribution, and is available at |
7 | * http://www.eclipse.org/legal/epl-v10.html | |
8 | * | |
dfaf8391 | 9 | * Contributors: Alvaro Sanchez-Leon - Initial implementation |
6e512b93 | 10 | *******************************************************************************/ |
8b29a712 | 11 | package org.eclipse.linuxtools.lttng.ui.views.resources; |
8035003b | 12 | |
dfaf8391 FC |
13 | import org.eclipse.jface.action.Action; |
14 | import org.eclipse.jface.action.IMenuListener; | |
15 | import org.eclipse.jface.action.IMenuManager; | |
16 | import org.eclipse.jface.action.IToolBarManager; | |
17 | import org.eclipse.jface.action.MenuManager; | |
18 | import org.eclipse.jface.action.Separator; | |
8827c197 FC |
19 | import org.eclipse.linuxtools.lttng.request.ILttngSyntEventRequest; |
20 | import org.eclipse.linuxtools.lttng.state.evProcessor.ITransEventProcessor; | |
dfaf8391 | 21 | import org.eclipse.linuxtools.lttng.ui.TraceDebug; |
8827c197 | 22 | import org.eclipse.linuxtools.lttng.ui.model.trange.ItemContainer; |
dfaf8391 | 23 | import org.eclipse.linuxtools.lttng.ui.model.trange.TimeRangeViewerProvider; |
41dc35d0 | 24 | import org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView; |
dfaf8391 | 25 | import org.eclipse.linuxtools.lttng.ui.views.common.ParamsUpdater; |
8827c197 | 26 | import org.eclipse.linuxtools.lttng.ui.views.resources.evProcessor.ResourcesEventToHandlerFactory; |
dfaf8391 | 27 | import org.eclipse.linuxtools.lttng.ui.views.resources.model.ResourceModelFactory; |
8827c197 | 28 | import org.eclipse.linuxtools.tmf.event.TmfEvent; |
dfaf8391 | 29 | import org.eclipse.linuxtools.tmf.event.TmfTimeRange; |
8827c197 | 30 | import org.eclipse.linuxtools.tmf.experiment.TmfExperiment; |
9b635e61 | 31 | import org.eclipse.linuxtools.tmf.request.ITmfDataRequest.ExecutionType; |
8827c197 FC |
32 | import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal; |
33 | import org.eclipse.linuxtools.tmf.signal.TmfRangeSynchSignal; | |
dfaf8391 | 34 | import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler; |
dfaf8391 FC |
35 | import org.eclipse.linuxtools.tmf.signal.TmfTimeSynchSignal; |
36 | import org.eclipse.linuxtools.tmf.ui.viewers.TmfViewerFactory; | |
dfaf8391 FC |
37 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.ITmfTimeScaleSelectionListener; |
38 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.ITmfTimeSelectionListener; | |
39 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeScaleSelectionEvent; | |
40 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeSelectionEvent; | |
41 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITmfTimeAnalysisEntry; | |
dfaf8391 FC |
42 | import org.eclipse.swt.SWT; |
43 | import org.eclipse.swt.layout.FillLayout; | |
6e512b93 | 44 | import org.eclipse.swt.widgets.Composite; |
dfaf8391 FC |
45 | import org.eclipse.swt.widgets.Display; |
46 | import org.eclipse.swt.widgets.Menu; | |
47 | import org.eclipse.ui.IActionBars; | |
48 | import org.eclipse.ui.IWorkbenchActionConstants; | |
49 | import org.eclipse.ui.PlatformUI; | |
50 | import org.eclipse.ui.plugin.AbstractUIPlugin; | |
6e512b93 ASL |
51 | |
52 | /** | |
dfaf8391 FC |
53 | * @author alvaro |
54 | * | |
6e512b93 | 55 | */ |
41dc35d0 FC |
56 | public class ResourcesView extends AbsTimeUpdateView implements |
57 | ITmfTimeSelectionListener, ITmfTimeScaleSelectionListener { | |
dfaf8391 FC |
58 | |
59 | // ======================================================================== | |
60 | // Data | |
61 | // ======================================================================== | |
62 | public static final String ID = "org.eclipse.linuxtools.lttng.ui.views.resources"; | |
dfaf8391 FC |
63 | |
64 | // private int totalNumItems = 0; | |
65 | // Actions | |
66 | private Action resetScale; | |
67 | private Action nextEvent; | |
68 | private Action prevEvent; | |
69 | private Action nextTrace; | |
70 | private Action prevTrace; | |
71 | private Action showLegend; | |
72 | private Action filterTraces; | |
73 | private Action zoomIn; | |
74 | private Action zoomOut; | |
8827c197 | 75 | private Action zoomFilter; |
dfaf8391 FC |
76 | private Composite top; |
77 | ||
78 | // private static SimpleDateFormat stimeformat = new SimpleDateFormat( | |
79 | // "yy/MM/dd HH:mm:ss"); | |
6e512b93 | 80 | |
dfaf8391 FC |
81 | // private TraceModelImplFactory fact; |
82 | ||
83 | // ======================================================================== | |
41dc35d0 | 84 | // Constructor |
dfaf8391 | 85 | // ======================================================================== |
6e512b93 ASL |
86 | |
87 | /** | |
dfaf8391 | 88 | * The constructor. |
6e512b93 ASL |
89 | */ |
90 | public ResourcesView() { | |
41dc35d0 | 91 | super(ID); |
6e512b93 ASL |
92 | } |
93 | ||
41dc35d0 FC |
94 | // ======================================================================== |
95 | // Methods | |
96 | // ======================================================================== | |
97 | ||
dfaf8391 FC |
98 | /** |
99 | * This is a callback that will allow us to create the viewer and initialize | |
100 | * it. | |
6e512b93 ASL |
101 | */ |
102 | @Override | |
103 | public void createPartControl(Composite parent) { | |
dfaf8391 FC |
104 | top = new Composite(parent, SWT.BORDER); |
105 | ||
106 | top.setLayout(new FillLayout()); | |
a72a38d9 | 107 | tsfviewer = TmfViewerFactory.createViewer(top, new TimeRangeViewerProvider(getParamsUpdater())); |
dfaf8391 FC |
108 | |
109 | tsfviewer.addWidgetSelectionListner(this); | |
110 | tsfviewer.addWidgetTimeScaleSelectionListner(this); | |
111 | ||
41dc35d0 | 112 | // Traces shall not be grouped to allow synchronisation |
dfaf8391 FC |
113 | tsfviewer.groupTraces(true); |
114 | tsfviewer.setAcceptSelectionAPIcalls(true); | |
115 | ||
116 | // Viewer to notify selection to this class | |
41dc35d0 | 117 | // This class will synchronise selections with table. |
dfaf8391 FC |
118 | tsfviewer.addWidgetSelectionListner(this); |
119 | tsfviewer.addWidgetTimeScaleSelectionListner(this); | |
120 | ||
121 | // Create the help context id for the viewer's control | |
122 | // TODO: Associate with help system | |
123 | PlatformUI.getWorkbench().getHelpSystem().setHelp( | |
124 | tsfviewer.getControl(), | |
125 | "org.eclipse.linuxtools.lttng.ui.views.resource.view"); //$NON-NLS-1$ | |
126 | ||
127 | makeActions(); | |
128 | hookContextMenu(); | |
129 | contributeToActionBars(); | |
130 | ||
dfaf8391 FC |
131 | // Read relevant values |
132 | int timeSpaceWidth = tsfviewer.getTimeSpace(); | |
8827c197 FC |
133 | if (timeSpaceWidth < 0) { |
134 | timeSpaceWidth = -timeSpaceWidth; | |
dfaf8391 FC |
135 | } |
136 | ||
8827c197 FC |
137 | TmfExperiment<?> experiment = TmfExperiment.getCurrentExperiment(); |
138 | if (experiment != null) { | |
139 | TmfTimeRange experimentTRange = experiment.getTimeRange(); | |
140 | if (experimentTRange != null) { | |
141 | long time0 = experimentTRange.getStartTime().getValue(); | |
142 | long time1 = experimentTRange.getEndTime().getValue(); | |
143 | ParamsUpdater paramUpdater = getParamsUpdater(); | |
144 | paramUpdater.update(time0, time1, timeSpaceWidth); | |
145 | } | |
146 | // send the initial request and obtained the adjusted time used | |
147 | TmfTimeRange adjustedTimeRange = initialExperimentDataRequest(this, experimentTRange); | |
148 | ||
149 | // initialize widget time boundaries and filtering parameters | |
150 | ModelUpdateInit(experimentTRange, adjustedTimeRange, this); | |
151 | } else { | |
152 | TraceDebug.debug("No selected experiment information available"); | |
153 | } | |
dfaf8391 FC |
154 | } |
155 | ||
156 | private void hookContextMenu() { | |
157 | MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$ | |
158 | menuMgr.setRemoveAllWhenShown(true); | |
159 | menuMgr.addMenuListener(new IMenuListener() { | |
160 | public void menuAboutToShow(IMenuManager manager) { | |
161 | ResourcesView.this.fillContextMenu(manager); | |
162 | } | |
163 | }); | |
164 | ||
165 | Menu menu = menuMgr.createContextMenu(tsfviewer.getControl()); | |
166 | tsfviewer.getControl().setMenu(menu); | |
167 | getSite() | |
168 | .registerContextMenu(menuMgr, tsfviewer.getSelectionProvider()); | |
169 | } | |
170 | ||
171 | private void contributeToActionBars() { | |
172 | IActionBars bars = getViewSite().getActionBars(); | |
173 | fillLocalPullDown(bars.getMenuManager()); | |
174 | fillLocalToolBar(bars.getToolBarManager()); | |
175 | } | |
176 | ||
177 | private void fillLocalPullDown(IMenuManager manager) { | |
178 | manager.add(new Separator()); | |
179 | // manager.add(showLegend); | |
180 | manager.add(new Separator()); | |
181 | manager.add(resetScale); | |
182 | manager.add(nextEvent); | |
183 | manager.add(prevEvent); | |
184 | manager.add(nextTrace); | |
185 | manager.add(prevTrace); | |
186 | // manager.add(filterTraces); | |
187 | manager.add(zoomIn); | |
188 | manager.add(zoomOut); | |
8827c197 | 189 | manager.add(zoomFilter); |
dfaf8391 FC |
190 | manager.add(new Separator()); |
191 | } | |
6e512b93 | 192 | |
dfaf8391 FC |
193 | private void fillContextMenu(IMenuManager manager) { |
194 | // manager.add(showLegend); | |
195 | manager.add(new Separator()); | |
196 | manager.add(resetScale); | |
197 | manager.add(nextEvent); | |
198 | manager.add(prevEvent); | |
199 | manager.add(nextTrace); | |
200 | manager.add(prevTrace); | |
201 | // manager.add(showLegend); | |
202 | // manager.add(filterTraces); | |
203 | manager.add(zoomIn); | |
204 | manager.add(zoomOut); | |
8827c197 | 205 | manager.add(zoomFilter); |
dfaf8391 FC |
206 | manager.add(new Separator()); |
207 | manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); | |
6e512b93 ASL |
208 | } |
209 | ||
dfaf8391 FC |
210 | private void fillLocalToolBar(IToolBarManager manager) { |
211 | // manager.add(showLegend); | |
212 | manager.add(new Separator()); | |
213 | manager.add(resetScale); | |
214 | manager.add(nextEvent); | |
215 | manager.add(prevEvent); | |
216 | manager.add(nextTrace); | |
217 | manager.add(prevTrace); | |
218 | // manager.add(filterTraces); | |
219 | manager.add(zoomIn); | |
220 | manager.add(zoomOut); | |
8827c197 | 221 | manager.add(zoomFilter); |
dfaf8391 FC |
222 | manager.add(new Separator()); |
223 | } | |
224 | ||
225 | private void makeActions() { | |
226 | // action4 | |
227 | resetScale = new Action() { | |
228 | @Override | |
229 | public void run() { | |
230 | if (tsfviewer != null) { | |
231 | tsfviewer.resetStartFinishTime(); | |
232 | } | |
233 | ||
234 | } | |
235 | }; | |
236 | resetScale.setText(Messages.getString("ResourcesView.Action.Reset")); //$NON-NLS-1$ | |
237 | resetScale.setToolTipText(Messages | |
238 | .getString("ResourcesView.Action.Reset.ToolTip")); //$NON-NLS-1$ | |
239 | resetScale.setImageDescriptor(AbstractUIPlugin | |
240 | .imageDescriptorFromPlugin(Messages | |
241 | .getString("ResourcesView.tmf.UI"), | |
242 | "icons/home_nav.gif")); | |
243 | ||
244 | // action5 | |
245 | nextEvent = new Action() { | |
246 | @Override | |
247 | public void run() { | |
248 | if (tsfviewer != null) { | |
249 | tsfviewer.selectNextEvent(); | |
250 | } | |
251 | } | |
252 | }; | |
253 | nextEvent.setText(Messages.getString("ResourcesView.Action.NextEvent")); //$NON-NLS-1$ | |
254 | nextEvent.setToolTipText(Messages | |
255 | .getString("ResourcesView.Action.NextEvent.Tooltip")); //$NON-NLS-1$ | |
256 | nextEvent.setImageDescriptor(AbstractUIPlugin | |
257 | .imageDescriptorFromPlugin(Messages | |
258 | .getString("ResourcesView.tmf.UI"), | |
259 | "icons/next_event.gif")); | |
260 | ||
261 | // action6 | |
262 | prevEvent = new Action() { | |
263 | @Override | |
264 | public void run() { | |
265 | if (tsfviewer != null) { | |
266 | tsfviewer.selectPrevEvent(); | |
267 | } | |
268 | } | |
269 | }; | |
270 | prevEvent.setText(Messages.getString("ResourcesView.Action.PrevEvent")); //$NON-NLS-1$ | |
271 | prevEvent.setToolTipText(Messages | |
272 | .getString("ResourcesView.Action.PrevEvent.Tooltip")); //$NON-NLS-1$ | |
273 | prevEvent.setImageDescriptor(AbstractUIPlugin | |
274 | .imageDescriptorFromPlugin(Messages | |
275 | .getString("ResourcesView.tmf.UI"), | |
276 | "icons/prev_event.gif")); | |
277 | ||
278 | // action7 | |
279 | nextTrace = new Action() { | |
280 | @Override | |
281 | public void run() { | |
282 | if (tsfviewer != null) { | |
283 | tsfviewer.selectNextTrace(); | |
284 | } | |
285 | } | |
286 | }; | |
287 | nextTrace.setText(Messages | |
288 | .getString("ResourcesView.Action.NextResource")); //$NON-NLS-1$ | |
289 | nextTrace.setToolTipText(Messages | |
290 | .getString("ResourcesView.Action.NextResource.ToolTip")); //$NON-NLS-1$ | |
291 | nextTrace.setImageDescriptor(AbstractUIPlugin | |
292 | .imageDescriptorFromPlugin(Messages | |
293 | .getString("ResourcesView.tmf.UI"), | |
294 | "icons/next_item.gif")); | |
295 | ||
296 | // action8 | |
297 | prevTrace = new Action() { | |
298 | @Override | |
299 | public void run() { | |
300 | if (tsfviewer != null) { | |
301 | tsfviewer.selectPrevTrace(); | |
302 | } | |
303 | } | |
304 | }; | |
305 | prevTrace.setText(Messages | |
306 | .getString("ResourcesView.Action.PreviousResource")); //$NON-NLS-1$ | |
307 | prevTrace.setToolTipText(Messages | |
308 | .getString("ResourcesView.Action.PreviousResource.Tooltip")); //$NON-NLS-1$ | |
309 | prevTrace.setImageDescriptor(AbstractUIPlugin | |
310 | .imageDescriptorFromPlugin(Messages | |
311 | .getString("ResourcesView.tmf.UI"), | |
312 | "icons/prev_item.gif")); | |
313 | ||
314 | // action9 | |
315 | showLegend = new Action() { | |
316 | @Override | |
317 | public void run() { | |
318 | if (tsfviewer != null) { | |
319 | tsfviewer.showLegend(); | |
320 | } | |
321 | } | |
322 | }; | |
323 | showLegend.setText(Messages.getString("ResourcesView.Action.Legend")); //$NON-NLS-1$ | |
324 | showLegend.setToolTipText(Messages | |
325 | .getString("ResourcesView.Action.Legend.ToolTip")); //$NON-NLS-1$ | |
326 | ||
327 | // action10 | |
328 | filterTraces = new Action() { | |
329 | @Override | |
330 | public void run() { | |
331 | if (tsfviewer != null) { | |
332 | tsfviewer.filterTraces(); | |
333 | } | |
334 | } | |
335 | }; | |
336 | filterTraces.setText(Messages.getString("ResourcesView.Action.Filter")); //$NON-NLS-1$ | |
337 | filterTraces.setToolTipText(Messages | |
338 | .getString("ResourcesView.Action.Filter.ToolTip")); //$NON-NLS-1$ | |
339 | filterTraces.setImageDescriptor(AbstractUIPlugin | |
340 | .imageDescriptorFromPlugin(Messages | |
341 | .getString("ResourcesView.tmf.UI"), | |
342 | "icons/filter_items.gif")); | |
343 | ||
344 | // action10 | |
345 | zoomIn = new Action() { | |
346 | @Override | |
347 | public void run() { | |
348 | if (tsfviewer != null) { | |
349 | tsfviewer.zoomIn(); | |
350 | } | |
351 | } | |
352 | }; | |
353 | zoomIn.setText(Messages.getString("ResourcesView.Action.ZoomIn")); //$NON-NLS-1$ | |
354 | zoomIn.setToolTipText(Messages | |
355 | .getString("ResourcesView.Action.ZoomIn.Tooltip")); //$NON-NLS-1$ | |
356 | zoomIn.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin( | |
357 | Messages.getString("ResourcesView.tmf.UI"), | |
358 | "icons/zoomin_nav.gif")); | |
359 | ||
360 | // action10 | |
361 | zoomOut = new Action() { | |
362 | @Override | |
363 | public void run() { | |
364 | if (tsfviewer != null) { | |
365 | tsfviewer.zoomOut(); | |
366 | } | |
367 | } | |
368 | }; | |
369 | zoomOut.setText(Messages.getString("ResourcesView.Action.ZoomOut")); //$NON-NLS-1$ | |
370 | zoomOut.setToolTipText(Messages | |
371 | .getString("ResourcesView.Action.ZoomOut.tooltip")); //$NON-NLS-1$ | |
372 | zoomOut.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin( | |
373 | Messages.getString("ResourcesView.tmf.UI"), | |
374 | "icons/zoomout_nav.gif")); | |
375 | ||
8827c197 FC |
376 | // zoomFilter |
377 | zoomFilter = new Action() { | |
dfaf8391 FC |
378 | @Override |
379 | public void run() { | |
8827c197 FC |
380 | // Nothing to do, however the selection status is needed by the |
381 | // application | |
dfaf8391 FC |
382 | } |
383 | }; | |
8827c197 FC |
384 | |
385 | zoomFilter.setText(Messages.getString("ResourcesView.Action.ZoomFilter")); //$NON-NLS-1$ | |
386 | zoomFilter.setToolTipText(Messages.getString("ResourcesView.Action.ZoomFilter.tooltip")); //$NON-NLS-1$ | |
387 | zoomFilter.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Messages | |
388 | .getString("ResourcesView.tmf.UI"), "icons/filter_items.gif")); | |
389 | zoomFilter.setChecked(false); | |
390 | ||
dfaf8391 FC |
391 | // PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ELCL_SYNCED); |
392 | } | |
393 | ||
394 | /** | |
395 | * Passing the focus request to the viewer's control. | |
6e512b93 ASL |
396 | */ |
397 | @Override | |
398 | public void setFocus() { | |
dfaf8391 FC |
399 | tsfviewer.getControl().setFocus(); |
400 | } | |
401 | ||
8827c197 FC |
402 | /* |
403 | * (non-Javadoc) | |
404 | * | |
405 | * @see org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView# | |
406 | * tsfTmProcessSelEvent | |
407 | * (org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeSelectionEvent | |
408 | * ) | |
409 | */ | |
550d787e | 410 | @Override |
dfaf8391 | 411 | public void tsfTmProcessSelEvent(TmfTimeSelectionEvent event) { |
8827c197 FC |
412 | // common implementation |
413 | super.tsfTmProcessSelEvent(event); | |
dfaf8391 FC |
414 | } |
415 | ||
41dc35d0 FC |
416 | /* |
417 | * (non-Javadoc) | |
418 | * | |
419 | * @seeorg.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis. | |
420 | * ITmfTimeScaleSelectionListener | |
421 | * #tsfTmProcessTimeScaleEvent(org.eclipse.linuxtools | |
422 | * .tmf.ui.viewers.timeAnalysis.TmfTimeScaleSelectionEvent) | |
423 | */ | |
550d787e | 424 | @Override |
dfaf8391 | 425 | public void tsfTmProcessTimeScaleEvent(TmfTimeScaleSelectionEvent event) { |
8827c197 | 426 | super.tsfTmProcessTimeScaleEvent(event); |
dfaf8391 FC |
427 | } |
428 | ||
8827c197 FC |
429 | /* |
430 | * (non-Javadoc) | |
dfaf8391 | 431 | * |
8827c197 FC |
432 | * @see |
433 | * org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView#displayModel | |
434 | * (org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model. | |
435 | * ITmfTimeAnalysisEntry[], long, long, boolean, long, long, | |
436 | * java.lang.Object) | |
dfaf8391 | 437 | */ |
550d787e | 438 | @Override |
8827c197 FC |
439 | public void displayModel(final ITmfTimeAnalysisEntry[] items, final long startBoundTime, |
440 | final long endBoundTime, final boolean updateTimeBounds, final long startVisibleWindow, | |
441 | final long endVisibleWindow, final Object source) { | |
dfaf8391 | 442 | |
8827c197 FC |
443 | Display display = tsfviewer.getControl().getDisplay(); |
444 | display.asyncExec(new Runnable() { | |
dfaf8391 FC |
445 | |
446 | public void run() { | |
8827c197 FC |
447 | tsfviewer.display(items, startBoundTime, endBoundTime, updateTimeBounds); |
448 | // validate visible boundaries | |
449 | if (startVisibleWindow > -1 && endVisibleWindow > -1) { | |
450 | tsfviewer.setSelectVisTimeWindow(startVisibleWindow, endVisibleWindow, source); | |
451 | } | |
dfaf8391 FC |
452 | tsfviewer.resizeControls(); |
453 | } | |
454 | }); | |
455 | } | |
456 | ||
457 | @Override | |
458 | public void dispose() { | |
459 | // dispose parent resources | |
460 | super.dispose(); | |
dfaf8391 FC |
461 | |
462 | tsfviewer.removeWidgetSelectionListner(this); | |
463 | tsfviewer.removeWidgetTimeScaleSelectionListner(this); | |
464 | tsfviewer = null; | |
465 | } | |
466 | ||
41dc35d0 | 467 | /** |
8827c197 | 468 | * Registers as listener of time selection from other tmf views |
dfaf8391 | 469 | * |
8827c197 | 470 | * @param signal |
dfaf8391 | 471 | */ |
550d787e | 472 | @Override |
8827c197 FC |
473 | @TmfSignalHandler |
474 | public void synchToTime(TmfTimeSynchSignal signal) { | |
475 | super.synchToTime(signal); | |
dfaf8391 FC |
476 | } |
477 | ||
478 | /** | |
8827c197 FC |
479 | * Annotation Registers as listener of time range selection from other views |
480 | * The implementation handles the entry of the signal. | |
41dc35d0 FC |
481 | * |
482 | * @param signal | |
dfaf8391 | 483 | */ |
41dc35d0 | 484 | @TmfSignalHandler |
8827c197 FC |
485 | public void synchToTimeRange(TmfRangeSynchSignal signal) { |
486 | if (zoomFilter != null) { | |
487 | synchToTimeRange(signal, zoomFilter.isChecked()); | |
dfaf8391 | 488 | } |
dfaf8391 FC |
489 | } |
490 | ||
39332b5c | 491 | @Override |
8827c197 FC |
492 | public void modelIncomplete(ILttngSyntEventRequest request) { |
493 | // Nothing to do | |
494 | // The data will be refreshed on the next request | |
41dc35d0 | 495 | } |
dfaf8391 | 496 | |
41dc35d0 FC |
497 | /* |
498 | * (non-Javadoc) | |
499 | * | |
8827c197 FC |
500 | * @see org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView# |
501 | * getEventProcessor() | |
41dc35d0 | 502 | */ |
39332b5c | 503 | @Override |
8827c197 FC |
504 | public ITransEventProcessor getEventProcessor() { |
505 | return ResourcesEventToHandlerFactory.getInstance(); | |
506 | } | |
507 | ||
508 | /** | |
509 | * @param signal | |
510 | */ | |
511 | @TmfSignalHandler | |
512 | public void experimentSelected(TmfExperimentSelectedSignal<? extends TmfEvent> signal) { | |
513 | if (signal != null) { | |
514 | TmfTimeRange experimentTRange = signal.getExperiment().getTimeRange(); | |
d712a5f3 | 515 | |
8827c197 FC |
516 | // prepare time intervals in widget |
517 | ModelUpdateInit(experimentTRange, experimentTRange, signal.getSource()); | |
d712a5f3 | 518 | |
8827c197 FC |
519 | // request initial data |
520 | initialExperimentDataRequest(signal.getSource(), experimentTRange); | |
d712a5f3 | 521 | } |
41dc35d0 | 522 | } |
dfaf8391 | 523 | |
8827c197 FC |
524 | /** |
525 | * @param source | |
526 | * @param experimentTRange | |
527 | * @return Adjusted time window used for the request (smaller window to | |
528 | * initialize view) | |
41dc35d0 | 529 | */ |
8827c197 FC |
530 | private TmfTimeRange initialExperimentDataRequest(Object source, TmfTimeRange experimentTRange) { |
531 | // Adjust the initial time window to a shorter interval to allow | |
532 | // user to select the interesting area based on the perspective | |
533 | TmfTimeRange initTimeWindow = getInitTRange(experimentTRange); | |
dfaf8391 | 534 | |
f6b14ce2 | 535 | dataRequest(initTimeWindow, experimentTRange, true, ExecutionType.FOREGROUND); |
8827c197 FC |
536 | if (TraceDebug.isDEBUG()) { |
537 | TraceDebug.debug("Initialization request time range is: " + initTimeWindow.getStartTime().toString() + "-" | |
538 | + initTimeWindow.getEndTime().toString()); | |
dfaf8391 FC |
539 | } |
540 | ||
8827c197 FC |
541 | return initTimeWindow; |
542 | } | |
dfaf8391 | 543 | |
8827c197 FC |
544 | /* |
545 | * (non-Javadoc) | |
546 | * | |
547 | * @see org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView# | |
548 | * getParamsUpdater() | |
549 | */ | |
550d787e | 550 | @Override |
8827c197 FC |
551 | protected ParamsUpdater getParamsUpdater() { |
552 | return ResourceModelFactory.getParamsUpdater(); | |
553 | } | |
dfaf8391 | 554 | |
8827c197 FC |
555 | /* |
556 | * (non-Javadoc) | |
557 | * | |
558 | * @see org.eclipse.linuxtools.lttng.ui.views.common.AbsTimeUpdateView# | |
559 | * getItemContainer() | |
560 | */ | |
561 | @Override | |
562 | protected ItemContainer<?> getItemContainer() { | |
563 | return ResourceModelFactory.getResourceContainer(); | |
dfaf8391 | 564 | } |
dfaf8391 | 565 | } |