Import views plugins
[deliverable/tracecompass.git] / tmf / org.lttng.scope.tmf2.views.ui / src / org / lttng / scope / tmf2 / views / ui / jfx / testapp / TestModelArrowProvider1.java
1 /*
2 * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
3 *
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
8 */
9
10 package org.lttng.scope.tmf2.views.ui.jfx.testapp;
11
12 import java.util.List;
13 import java.util.concurrent.FutureTask;
14
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;
26
27 import com.google.common.collect.ImmutableList;
28
29 class TestModelArrowProvider1 extends TimeGraphModelArrowProvider {
30
31 public static final String SERIES_NAME = "Red";
32
33 private static final TimeGraphArrowSeries ARROW_SERIES = new TimeGraphArrowSeries(
34 SERIES_NAME,
35 new ColorDefinition(255, 0, 0),
36 LineStyle.FULL);
37
38 public TestModelArrowProvider1() {
39 super(ARROW_SERIES);
40 }
41
42 @Override
43 public TimeGraphArrowRender getArrowRender(TimeGraphTreeRender treeRender, TimeRange timeRange, @Nullable FutureTask<?> task) {
44 TimeGraphArrowSeries series = getArrowSeries();
45 List<TimeGraphTreeElement> treeElems = treeRender.getAllTreeElements();
46
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);
51
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);
55
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);
59
60 List<TimeGraphArrow> arrows = ImmutableList.of(arrow1, arrow2, arrow3);
61 return new TimeGraphArrowRender(timeRange, arrows);
62 }
63
64 private static long ts(TimeRange range, double ratio) {
65 return (long) (range.getDuration() * ratio + range.getStart());
66 }
67
68 }
This page took 0.037206 seconds and 5 git commands to generate.