}
@Override
public void paintControl(PaintEvent e) {
if (mds == null) return;
Device device = e.gc.getDevice();
e.gc.setAntialias(SWT.ON);
e.gc.setAlpha(128);
e.gc.drawOval(256-zoom, 256-zoom, zoom*2, zoom*2);
final double[][] pps = mds.points();
if (pps == null) return;
for (int i = 0; i < pps[0].length; i++) {
int x = (int) (pps[0][i] * zoom + 256);
int y = (int) (pps[1][i] * zoom + 256);
e.gc.drawLine(x - 2, y - 2, x + 2, y + 2);
e.gc.drawLine(x - 2, y + 2, x + 2, y - 2);
}
e.gc.setForeground(device.getSystemColor(SWT.COLOR_RED));
drawEdges(e.gc);
e.gc.setForeground(device.getSystemColor(SWT.COLOR_BLUE));
drawHistogram(e, mds.config_dist.getHistogram());
e.gc.setForeground(device.getSystemColor(SWT.COLOR_GREEN));
drawHistogram(e, mds.Dtarget.getHistogram());
}