1 /*******************************************************************************
2 * Copyright (c) 2011 Ericsson
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 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12 package org
.eclipse
.linuxtools
.lttng
.ui
.views
.latency
.model
;
15 * <b><u>GraphScaledData</u></b>
16 * Convenience class for scaled distribution data.
19 import java
.util
.Arrays
;
21 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.distribution
.model
.BaseDistributionData
;
23 public class GraphScaledData
{
25 // ------------------------------------------------------------------------
27 // ------------------------------------------------------------------------
31 private int fBarWidth
;
32 private int[][] fData
;
33 private BaseDistributionData fHorDistributionData
;
34 private BaseDistributionData fVerDistributionData
;
35 private long fCurrentEventTime
;
37 // ------------------------------------------------------------------------
39 // ------------------------------------------------------------------------
41 public GraphScaledData(int width
, int height
, int barWidth
) {
45 int horNbBuckets
= (int)width
/barWidth
;
46 int verNbBuckets
= (int)height
/barWidth
;
47 fData
= new int[horNbBuckets
][verNbBuckets
];
48 for (int[] row
: fData
) {
51 fHorDistributionData
= new BaseDistributionData(horNbBuckets
);
52 fHorDistributionData
.clear();
54 fVerDistributionData
= new BaseDistributionData(verNbBuckets
);
55 fVerDistributionData
.clear();
57 fCurrentEventTime
= Config
.INVALID_EVENT_TIME
;
60 // ------------------------------------------------------------------------
62 // ------------------------------------------------------------------------
64 public int getWidth() {
68 public int getHeight() {
72 public int getBarWidth() {
76 public int[][] getData() {
80 public int getHorNbBuckets() {
81 return fHorDistributionData
.getNbBuckets();
84 public int getVerNbBuckets() {
85 return fVerDistributionData
.getNbBuckets();
88 public long getHorFirstBucketTime() {
89 return fHorDistributionData
.getFirstBucketTime();
92 public long getVerFirstBucketTime() {
93 return fVerDistributionData
.getFirstBucketTime();
96 public long getHorLastBucketTime() {
97 return fHorDistributionData
.getLastBucketTime();
100 public long getVerLastBucketTime() {
101 return fVerDistributionData
.getLastBucketTime();
104 public long getHorFirstEventTime() {
105 return fHorDistributionData
.getFirstEventTime();
108 public long getVerFirstEventTime() {
109 return fVerDistributionData
.getFirstEventTime();
112 public long getHorLastEventTime() {
113 return fHorDistributionData
.getLastEventTime();
116 public long getVerLastEventTime() {
117 return fVerDistributionData
.getLastEventTime();
120 public long getHorBucketDuration() {
121 return fHorDistributionData
.getBucketDuration();
124 public long getVerBucketDuration() {
125 return fVerDistributionData
.getBucketDuration();
128 public int getHorLastBucket() {
129 return fHorDistributionData
.getLastBucket();
132 public int getVerLastBucket() {
133 return fVerDistributionData
.getLastBucket();
136 public long getHorBucketStartTime(int index
) {
137 return fHorDistributionData
.getBucketStartTime(index
);
140 public long getHorBucketEndTime(int index
) {
141 return fHorDistributionData
.getBucketEndTime(index
);
144 public long getVerBucketStartTime(int index
) {
145 return fVerDistributionData
.getBucketStartTime(index
);
148 public long getVerBucketEndTime(int index
) {
149 return fVerDistributionData
.getBucketEndTime(index
);
152 public int getEventCount(int horIndex
, int verIndex
) {
153 return fData
[horIndex
][verIndex
];
156 public long getCurrentEventTime() {
157 return fCurrentEventTime
;
160 public boolean isCurrentEventTimeValid() {
161 if (fCurrentEventTime
== Config
.INVALID_EVENT_TIME
|| fCurrentEventTime
< getHorFirstEventTime() || fCurrentEventTime
> getHorLastEventTime()) {
167 public int getHorBucketIndex(long time
) {
168 return fHorDistributionData
.getIndex(time
);
171 public int getVerBucketIndex(long time
) {
172 return fVerDistributionData
.getIndex(time
);
175 public boolean isHorIndexValid(int index
) {
176 return fHorDistributionData
.isIndexValid(index
);
179 public boolean isVerIndexValid(int index
) {
180 return fVerDistributionData
.isIndexValid(index
);
183 // ------------------------------------------------------------------------
185 // ------------------------------------------------------------------------
187 public void setWidth(int width
) {
191 public void setHeight(int height
) {
195 public void setBarWidth(int barWidth
) {
196 fBarWidth
= barWidth
;
199 public void setData(int[][] data
) {
203 public void setHorFirstBucketTime(long firstBucketTime
) {
204 fHorDistributionData
.setFirstBucketTime(firstBucketTime
);
207 public void setVerFirstBucketTime(long firstBucketTime
) {
208 fVerDistributionData
.setFirstBucketTime(firstBucketTime
);
211 public void setHorFirstEventTime(long firstEventTime
) {
212 fHorDistributionData
.setFirstEventTime(firstEventTime
);
215 public void setVerFirstEventTime(long firstEventTime
) {
216 fVerDistributionData
.setFirstEventTime(firstEventTime
);
219 public void setHorLastEventTime(long lastEventTime
) {
220 fHorDistributionData
.setLastEventTime(lastEventTime
);
223 public void setVerLastEventTime(long lastEventTime
) {
224 fVerDistributionData
.setLastEventTime(lastEventTime
);
227 public void setHorBucketDuration(long bucketDuration
) {
228 fHorDistributionData
.setBucketDuration(bucketDuration
);
231 public void setVerBucketDuration(long bucketDuration
) {
232 fVerDistributionData
.setBucketDuration(bucketDuration
);
235 public void setHorLastBucket(int lastBucket
) {
236 fHorDistributionData
.setLastBucket(lastBucket
);
239 public void setVerLastBucket(int lastBucket
) {
240 fVerDistributionData
.setLastBucket(lastBucket
);
243 public void setCurrentEventTime(long currentEventTime
) {
244 fCurrentEventTime
= currentEventTime
;