2 * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 package org
.lttng
.scope
.tmf2
.views
.ui
.jfx
.testapp
;
12 import java
.util
.List
;
13 import java
.util
.concurrent
.FutureTask
;
15 import org
.eclipse
.jdt
.annotation
.Nullable
;
16 import org
.lttng
.scope
.tmf2
.views
.core
.TimeRange
;
17 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.provider
.arrows
.TimeGraphModelArrowProvider
;
18 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.ColorDefinition
;
19 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.TimeGraphEvent
;
20 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.arrows
.TimeGraphArrow
;
21 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.arrows
.TimeGraphArrowRender
;
22 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.arrows
.TimeGraphArrowSeries
;
23 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.arrows
.TimeGraphArrowSeries
.LineStyle
;
24 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.tree
.TimeGraphTreeElement
;
25 import org
.lttng
.scope
.tmf2
.views
.core
.timegraph
.model
.render
.tree
.TimeGraphTreeRender
;
27 import com
.google
.common
.collect
.ImmutableList
;
29 class TestModelArrowProvider1
extends TimeGraphModelArrowProvider
{
31 public static final String SERIES_NAME
= "Red";
33 private static final TimeGraphArrowSeries ARROW_SERIES
= new TimeGraphArrowSeries(
35 new ColorDefinition(255, 0, 0),
38 public TestModelArrowProvider1() {
43 public TimeGraphArrowRender
getArrowRender(TimeGraphTreeRender treeRender
, TimeRange timeRange
, @Nullable FutureTask
<?
> task
) {
44 TimeGraphArrowSeries series
= getArrowSeries();
45 List
<TimeGraphTreeElement
> treeElems
= treeRender
.getAllTreeElements();
47 /* Draw 3 arrows total */
48 TimeGraphEvent startEvent
= new TimeGraphEvent(ts(timeRange
, 0.1), treeElems
.get(0));
49 TimeGraphEvent endEvent
= new TimeGraphEvent(ts(timeRange
, 0.3), treeElems
.get(5));
50 TimeGraphArrow arrow1
= new TimeGraphArrow(startEvent
, endEvent
, series
);
52 startEvent
= new TimeGraphEvent(ts(timeRange
, 0.2), treeElems
.get(3));
53 endEvent
= new TimeGraphEvent(ts(timeRange
, 0.5), treeElems
.get(12));
54 TimeGraphArrow arrow2
= new TimeGraphArrow(startEvent
, endEvent
, series
);
56 startEvent
= new TimeGraphEvent(ts(timeRange
, 0.6), treeElems
.get(15));
57 endEvent
= new TimeGraphEvent(ts(timeRange
, 0.8), treeElems
.get(2));
58 TimeGraphArrow arrow3
= new TimeGraphArrow(startEvent
, endEvent
, series
);
60 List
<TimeGraphArrow
> arrows
= ImmutableList
.of(arrow1
, arrow2
, arrow3
);
61 return new TimeGraphArrowRender(timeRange
, arrows
);
64 private static long ts(TimeRange range
, double ratio
) {
65 return (long) (range
.getDuration() * ratio
+ range
.getStart());