KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > analyzer > listeners > WindowData


1 /*
2  * WindowData.java
3  *
4  * Created on April 19, 2005, 11:24 AM
5  */

6
7 package analyzer.listeners;
8
9 import java.util.Date JavaDoc;
10 import java.util.ArrayList JavaDoc;
11 //import java.text.SimpleDateFormat;
12
import java.awt.Color JavaDoc;
13
14 /**
15  *
16  * @author loicsegapelli
17  */

18 public class WindowData implements Comparable JavaDoc{
19     
20     public String JavaDoc id;
21     public boolean editor;
22     public long open,activated;
23     private long openTime,activatedTime;
24     private boolean activatedB,openB;
25     Date JavaDoc start;
26     ArrayList JavaDoc actions;
27     Coord[] graphArray;
28     public int[] sliceX, sliceY;
29     public Color JavaDoc chartColor;
30     
31     
32     /** Creates a new instance of WindowData */
33     public WindowData(boolean editorWindow,String JavaDoc myId) {
34         activatedTime=openTime=open=activated=0;
35         openB=activatedB=false;
36         editor=editorWindow;
37         id=myId;
38         chartColor=Color.BLACK;
39         actions=new ArrayList JavaDoc();
40     }
41     
42     public void open(long ts){
43         openTime=ts;
44         if(start==null){
45             start=new Date JavaDoc(ts);
46         }
47         openB=true;
48     }
49     
50     public void close(long ts){
51         if(openB)open+=ts-openTime;
52         openB=false;
53     }
54     
55     public void activated(long ts){
56         addAction(ts, true);
57         activatedTime=ts;
58         activatedB=true;
59     }
60     
61     public void deactivated(long ts){
62         addAction(ts, false);
63         if(activatedB)activated+=ts-activatedTime;
64         activatedB=false;
65     }
66     
67     public void end(long ts){
68         if(openB)close(ts);
69         if(activatedB)deactivated(ts);
70         graphArray=(Coord[])actions.toArray(new Coord[0]);
71     }
72     
73     public int compareTo(Object JavaDoc o){
74         return id.compareTo(((WindowData)o).id);
75     }
76     
77     public void computeSlice(long start,long end){
78         int i=0;
79         while(i<graphArray.length){
80             if(graphArray[i].x>start)break;
81             i++;
82         }
83         if(i==graphArray.length)return;
84         
85         ArrayList JavaDoc coordList=new ArrayList JavaDoc();
86         
87         int j=i;
88         while(j<graphArray.length){
89             if(graphArray[j].x>end){
90                 break;
91             }
92             coordList.add(graphArray[j]);
93             j++;
94         }
95         if(coordList.size()>0){
96             Coord lastCoord=(Coord)coordList.get(coordList.size()-1);
97             boolean lastBool=lastCoord.y==1?true:false;
98             coordList.add(new Coord(end,lastBool));
99         }
100         sliceX=new int[coordList.size()];
101         sliceY=new int[coordList.size()];
102         Coord c;
103         for(int k=0;k<coordList.size();k++){
104             c=(Coord)coordList.get(k);
105             sliceX[k]=new Long JavaDoc((c.x-start)/1000).intValue();
106             sliceY[k]=c.y;
107         }
108     }
109     
110     private void addAction(long ts,boolean act){
111         Coord c1=new Coord(ts,activatedB);
112         Coord c2=new Coord(ts,act);
113         actions.add(c1);
114         actions.add(c2);
115     }
116     
117 }
118
Popular Tags