1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/*******************************************************************************
2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2000, 2009 IBM Corporation and others.
3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * All rights reserved. This program and the accompanying materials
4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * are made available under the terms of the Eclipse Public License v1.0
5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * which accompanies this distribution, and is available at
6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * http://www.eclipse.org/legal/epl-v10.html
7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Contributors:
9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *     IBM Corporation - initial API and implementation
10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *******************************************************************************/
11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpackage org.eclipse.test.performance.ui;
12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Comparator;
14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.eclipse.swt.graphics.Color;
16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.eclipse.swt.graphics.GC;
17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.eclipse.swt.graphics.Point;
18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class TimeLineGraphItem {
20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    String title;
23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    String description=null;
24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    double value;
25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    Color color;
26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    boolean displayDescription=false;
27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    long timestamp;
28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    boolean isSpecial=false;
29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    boolean drawAsBaseline=false;
30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    int x;
31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    int y;
32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp, boolean isSpecial,boolean isBaseline) {
34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this(title, description, value, color,display, timestamp,isSpecial);
35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this.drawAsBaseline=isBaseline;
36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp, boolean isSpecial) {
39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this(title, description, value, color,display, timestamp);
40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this.isSpecial=isSpecial;
41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp) {
44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this(title, description, value, color,timestamp);
45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    	this.displayDescription=display;
46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    TimeLineGraphItem(String title, String description, double value, Color color,long timestamp) {
49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        this.title= title;
50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        this.value= value;
51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        this.color= color;
52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        this.description= description;
53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        this.timestamp=timestamp;
54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    Point getSize(GC g) {
57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        Point e1= g.stringExtent(this.description);
58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        Point e2= g.stringExtent(this.title);
59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll        return new Point(Math.max(e1.x, e2.x), e1.y+e2.y);
60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    public static class GraphItemComparator implements Comparator{
63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		public int compare(Object o1, Object o2) {
64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			long ts1=((TimeLineGraphItem)o1).timestamp;
65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			long ts2=((TimeLineGraphItem)o2).timestamp;
66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			if (ts1>ts2)
68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				return 1;
69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			if (ts1<ts2)
70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				return -1;
71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			return 0;
73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    }
75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public int getX() {
77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return this.x;
78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void setX(int x) {
81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		this.x = x;
82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public int getY() {
85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return this.y;
86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void setY(int y) {
89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		this.y = y;
90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll}
94