package cit.PureATN; import java.awt.Graphics; import java.util.ArrayList; import java.util.Date; public class Stroke { transient ArrayList<IPoint> points; String date; String time; long start_epoch; transient int prex = -1, prey = -1; int[][] stroke; int count; int duration; transient PenUser penuser; public Stroke(PenUser _pu){ penuser = _pu; date = DPenReceiver.sdfdate.format(new Date()); time = DPenReceiver.sdftime.format(new Date()); start_epoch = System.currentTimeMillis(); } public void add(int x, int y){ if (x != prex || y!= prey){ if (points == null) { points = new ArrayList<IPoint>(); points.add(new IPoint(x,y)); } else { points.add(new IPoint(x,y)); penuser.send(prex,prey,x,y); Note.theapp.repaint(); } } prex = x; prey = y; } public void draw(Graphics g){ IPoint p0 = points.get(0); for(int i=1;i<points.size();i++){ IPoint p1 = points.get(i); g.drawLine(p0.x1, p0.y1, p1.x1, p1.y1); p0 = p1; } } // build stroke public void finish(){ stroke = new int[points.size()][]; for(int i=0;i<points.size();i++){ stroke[i] = points.get(i).toIntAry(start_epoch); } count = points.size(); duration = stroke[points.size()-1][2]; } }