1/*******************************************************************************
2 * Copyright (c) 2000, 2009 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 *     IBM Corporation - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.test.performance.ui;
12
13import java.util.Comparator;
14
15import org.eclipse.swt.graphics.Color;
16import org.eclipse.swt.graphics.GC;
17import org.eclipse.swt.graphics.Point;
18
19public class TimeLineGraphItem {
20
21
22    String title;
23    String description=null;
24    double value;
25    Color color;
26    boolean displayDescription=false;
27    long timestamp;
28    boolean isSpecial=false;
29    boolean drawAsBaseline=false;
30    int x;
31    int y;
32
33    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp, boolean isSpecial,boolean isBaseline) {
34    	this(title, description, value, color,display, timestamp,isSpecial);
35    	this.drawAsBaseline=isBaseline;
36    }
37
38    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp, boolean isSpecial) {
39    	this(title, description, value, color,display, timestamp);
40    	this.isSpecial=isSpecial;
41    }
42
43    TimeLineGraphItem(String title, String description,double value,Color color,boolean display, long timestamp) {
44    	this(title, description, value, color,timestamp);
45    	this.displayDescription=display;
46    }
47
48    TimeLineGraphItem(String title, String description, double value, Color color,long timestamp) {
49        this.title= title;
50        this.value= value;
51        this.color= color;
52        this.description= description;
53        this.timestamp=timestamp;
54    }
55
56    Point getSize(GC g) {
57        Point e1= g.stringExtent(this.description);
58        Point e2= g.stringExtent(this.title);
59        return new Point(Math.max(e1.x, e2.x), e1.y+e2.y);
60    }
61
62    public static class GraphItemComparator implements Comparator{
63		public int compare(Object o1, Object o2) {
64			long ts1=((TimeLineGraphItem)o1).timestamp;
65			long ts2=((TimeLineGraphItem)o2).timestamp;
66
67			if (ts1>ts2)
68				return 1;
69			if (ts1<ts2)
70				return -1;
71
72			return 0;
73		}
74    }
75
76	public int getX() {
77		return this.x;
78	}
79
80	public void setX(int x) {
81		this.x = x;
82	}
83
84	public int getY() {
85		return this.y;
86	}
87
88	public void setY(int y) {
89		this.y = y;
90	}
91
92
93}
94