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