1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| chart.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
xMov = e.getX();
yMov = e.getY();
boolMov = true;
repaint();
// boolMov = false;
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
});
protected void paintChildren(final Graphics g) {
super.paintChildren(g);
try {
ChartDataView dataView = getDataView(1);
JCDefaultDataSource dataSource = (JCDefaultDataSource) dataView.getDataSource();
double[] x = dataSource.getXSeries(0);
double[] hi = dataSource.getYSeries(0);
double[] lo = dataSource.getYSeries(1);
SwtUtilities.runSyncOrAsync(new Runnable() {
public void run() {
if (!table.isDisposed()) {
points = table.getCellSelection();
}
model = (DefaultConfidenceTableModel) table.getModel();
}
});
for (int i = 0; i < x.length; i++) {
Point phi = dataView.dataCoordToCoord(x[i], hi[i]);
Point plo = dataView.dataCoordToCoord(x[i], lo[i]);
g.drawLine(phi.x - 2, phi.y, phi.x + 2, phi.y);
g.drawLine(plo.x - 2, plo.y, plo.x + 2, plo.y);
for (int j = 0; (points != null) && (j < points.length); j++) {
if ((i > 0) && (model != null)
&& (x[i] == model.getTime(points[j].y - 1)) && !boolMov) {
g.setColor(Color.red);
g.drawLine(phi.x - 2, phi.y, phi.x + 2, phi.y);
g.drawLine(plo.x - 2, plo.y, plo.x + 2, plo.y);
g.drawLine(phi.x, phi.y, plo.x, plo.y);
g.setColor(Color.black);
break;
}
else if ((i > 0) && (model != null)
&& (x[i] == model.getTime(points[j].y - 1)) && boolMov) {
g.setColor(Color.green);
g.drawLine(phi.x - 2, yMov, phi.x + 2, yMov);
g.drawLine(plo.x - 2, plo.y, plo.x + 2, plo.y);
g.drawLine(phi.x, yMov, plo.x, plo.y);
g.setColor(Color.black);
}
}
}
model = null;
}
catch (Exception e) {
log.warn(e, e);
}
} |
Partager