/*****************************************************************************
- * Copyright (c) 2007, 2008 Intel Corporation, 2010, 2012 Ericsson.
+ * Copyright (c) 2007, 2013 Intel Corporation, Ericsson
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* Ruslan A. Scherbakov, Intel - Initial API and implementation
* Alvaro Sanchez-Leon - Updated for TMF
* Patrick Tasse - Refactoring
- *
*****************************************************************************/
package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets;
private void calcTimeDelta(int width, double pixelsPerNanoSec) {
double minDelta = (pixelsPerNanoSec == 0) ? YEAR_IN_NS : width / pixelsPerNanoSec;
long unit = 1;
- if (_timeProvider != null && _timeProvider.isCalendarFormat()) {
+ if (_timeProvider != null && _timeProvider.getTimeFormat().equals(TimeFormat.CALENDAR)) {
if (minDelta > 6 * MONTH_IN_NS) {
unit = YEAR_IN_NS;
} else if (minDelta > 3 * MONTH_IN_NS) {
_rect0.width = labelWidth;
long time;
- if (_timeProvider != null && _timeProvider.isCalendarFormat()) {
+ if (_timeProvider != null && _timeProvider.getTimeFormat().equals(TimeFormat.CALENDAR)) {
time = floorToCalendar(time0, _timeDelta);
} else {
time = (time0 / _timeDelta) * _timeDelta;
int y = _rect0.y + _rect0.height;
- if (_timeProvider != null && _timeProvider.isCalendarFormat()) {
+ if (_timeProvider != null && _timeProvider.getTimeFormat().equals(TimeFormat.CALENDAR)) {
timeDraw.drawAbsHeader(gc, time, absHeaderRect);
}
if (pixelsPerNanoSec == 0 || time > Long.MAX_VALUE - _timeDelta || _timeDelta == 0) {
break;
}
- if (_timeProvider != null && _timeProvider.isCalendarFormat()) {
+ if (_timeProvider != null && _timeProvider.getTimeFormat().equals(TimeFormat.CALENDAR)) {
if (_timeDelta >= YEAR_IN_NS) {
long millis = time / 1000000L;
GREGORIAN_CALENDAR.setTime(new Date(millis));
}
private long floorToCalendar(long time, long timeDelta) {
+ long ret = time;
+
if (_timeDelta >= YEAR_IN_NS) {
- GREGORIAN_CALENDAR.setTime(new Date(time / 1000000));
+ GREGORIAN_CALENDAR.setTime(new Date(ret / 1000000));
int year = GREGORIAN_CALENDAR.get(Calendar.YEAR);
int yearDelta = (int) (timeDelta / YEAR_IN_NS);
year = (year / yearDelta) * yearDelta;
GREGORIAN_CALENDAR.set(Calendar.MINUTE, 0);
GREGORIAN_CALENDAR.set(Calendar.SECOND, 0);
GREGORIAN_CALENDAR.set(Calendar.MILLISECOND, 0);
- time = GREGORIAN_CALENDAR.getTimeInMillis() * 1000000;
+ ret = GREGORIAN_CALENDAR.getTimeInMillis() * 1000000;
} else if (_timeDelta >= MONTH_IN_NS) {
- GREGORIAN_CALENDAR.setTime(new Date(time / 1000000));
+ GREGORIAN_CALENDAR.setTime(new Date(ret / 1000000));
int month = GREGORIAN_CALENDAR.get(Calendar.MONTH);
int monthDelta = (int) (timeDelta / MONTH_IN_NS);
month = (month / monthDelta) * monthDelta;
GREGORIAN_CALENDAR.set(Calendar.MINUTE, 0);
GREGORIAN_CALENDAR.set(Calendar.SECOND, 0);
GREGORIAN_CALENDAR.set(Calendar.MILLISECOND, 0);
- time = GREGORIAN_CALENDAR.getTimeInMillis() * 1000000;
+ ret = GREGORIAN_CALENDAR.getTimeInMillis() * 1000000;
} else {
- long offset = GREGORIAN_CALENDAR.getTimeZone().getOffset(time / 1000000L) * 1000000L;
- time += offset;
- time = (time / timeDelta) * timeDelta;
- time -= offset;
+ long offset = GREGORIAN_CALENDAR.getTimeZone().getOffset(ret / 1000000L) * 1000000L;
+ ret += offset;
+ ret = (ret / timeDelta) * timeDelta;
+ ret -= offset;
}
- return time;
+ return ret;
}
private int calculateDigits(long time0, long time1) {
int numDigits = 5;
long timeRange = time1 - time0;
- if (_timeProvider.isCalendarFormat()) {
+ if (_timeProvider.getTimeFormat().equals(TimeFormat.CALENDAR)) {
// Calculate the number of digits to represent the minutes provided
// 11:222
// HH:mm:ss
@Override
public void draw(GC gc, long time, Rectangle rect) {
- time /= 1000000000;
- Utils.drawText(gc, sep(time), rect, true);
+ long correctTime = time / 1000000000;
+ Utils.drawText(gc, sep(correctTime), rect, true);
}
@Override
@Override
public void draw(GC gc, long time, Rectangle rect) {
- time /= 1000000;
- long ms = time % 1000;
- time /= 1000;
- Utils.drawText(gc, sep(time) + "." + pad(ms), rect, true); //$NON-NLS-1$
+ long correctTime = time / 1000000;
+ long ms = correctTime % 1000;
+ correctTime /= 1000;
+ Utils.drawText(gc, sep(correctTime) + "." + pad(ms), rect, true); //$NON-NLS-1$
}
@Override
@Override
public void draw(GC gc, long time, Rectangle rect) {
- time /= 1000;
- long mcs = time % 1000;
- time /= 1000;
- long ms = time % 1000;
- time /= 1000;
- Utils.drawText(gc, sep(time) + "." + pad(ms) + " " + pad(mcs), rect, true); //$NON-NLS-1$ //$NON-NLS-2$
+ long correctTime = time / 1000;
+ long mcs = correctTime % 1000;
+ correctTime /= 1000;
+ long ms = correctTime % 1000;
+ correctTime /= 1000;
+ Utils.drawText(gc, sep(correctTime) + "." + pad(ms) + " " + pad(mcs), rect, true); //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
@Override
public void draw(GC gc, long time, Rectangle rect) {
long ns = time % 1000;
- time /= 1000;
- long mcs = time % 1000;
- time /= 1000;
- long ms = time % 1000;
- time /= 1000;
- Utils.drawText(gc, sep(time) + "." + pad(ms) + " " + pad(mcs) + " " + pad(ns), rect, true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ long correctTime = time / 1000;
+ long mcs = correctTime % 1000;
+ correctTime /= 1000;
+ long ms = correctTime % 1000;
+ correctTime /= 1000;
+ Utils.drawText(gc, sep(correctTime) + "." + pad(ms) + " " + pad(mcs) + " " + pad(ns), rect, true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@Override