public CachedProbe(AffyProbe ap, Vector<AffyExperiment> expts) { probe = ap; min = max = 0.0; color = Color.lightGray; stroke = new BasicStroke((float) 2.0); values = new Vector<Double>(); for (AffyExperiment e : expts) { AffyMeasurement am = e.getMeasurement(probe); if (am != null) { values.add(am.getValue()); min = Math.min(am.getValue(), min); max = Math.max(am.getValue(), max); } else { values.add(null); } } }
public void paintProbe(Graphics2D g2, int x1, int y1, int x2, int y2, double tmin, double tmax) { g2.setStroke(stroke); g2.setColor(color); int ppx = -1, ppy = -1; for (int i = 0; i < values.size(); i++) { Double v = values.get(i); if (v != null && tmax - tmin > 0.0) { double frac = (v - tmin) / (tmax - tmin); int pixY = y2 - (int) Math.round(frac * (y2 - y1)); int pixX = x1 + (int) Math.floor((double) (i + 1) / (double) (values.size() + 2)); if (ppx != -1) { g2.drawLine(ppx, ppy, pixX, pixY); } ppx = pixX; ppy = pixY; } else { ppx = ppy = -1; } } }