public void render(Graphics2D g) {
		if (list.isEmpty())
			return;
		Stroke oldStroke = g.getStroke();
		Color oldColor = g.getColor();
		Color color = ((MDView) model.getView()).contrastBackground();
		int ex = 0, ey = 0, sw, sh, xc, yc;
		boolean b;
		String s;
		g.setFont(FONT12);
		for (Object o : list) {
			b = false;
			if (o instanceof Integer) {
				Particle p = model.getParticle(((Integer) o).intValue());
				ex = (int) p.rx;
				ey = (int) p.ry;
				b = true;
			}
			else if (o instanceof Point) {
				ex = ((Point) o).x;
				ey = ((Point) o).y;
				b = true;
			}
			if (b) {
				g.setColor(color);
				g.setStroke(ViewAttribute.DASHED);
				g.drawLine((int) owner.rx, (int) owner.ry, ex, ey);
				s = Particle.format.format(0.01 * Math.sqrt((owner.rx - ex) * (owner.rx - ex) + (owner.ry - ey)
						* (owner.ry - ey)))
						+ "nm";
				sw = g.getFontMetrics().stringWidth(s);
				sh = g.getFontMetrics().getHeight();
				xc = (int) ((owner.rx + ex) * 0.5);
				yc = (int) ((owner.ry + ey) * 0.5);
				g.setStroke(ViewAttribute.THIN);
				g.setColor(new Color(0xccffffff & model.getView().getBackground().darker().getRGB(), true));
				g.fillRect(xc - 5, yc - sh, sw + 10, sh + 6);
				g.setColor(color);
				g.drawRect(xc - 5, yc - sh, sw + 10, sh + 6);
				g.drawString(s, xc, yc);
				if (owner.isSelected() && ((MDView) model.getView()).getAction() == UserAction.MEAS_ID) {
					g.setColor(Color.green);
					xPoints[0] = ex - 4;
					yPoints[0] = ey;
					xPoints[1] = ex;
					yPoints[1] = ey + 4;
					xPoints[2] = ex + 4;
					yPoints[2] = ey;
					xPoints[3] = ex;
					yPoints[3] = ey - 4;
					g.fillPolygon(xPoints, yPoints, 4);
					g.setColor(color);
					g.drawPolygon(xPoints, yPoints, 4);
				}
				else {
					g.fillOval(ex - 2, ey - 2, 4, 4);
				}
			}
		}
		g.setStroke(oldStroke);
		g.setColor(oldColor);
	}