public Element drawLine(List<mxPoint> pts, Map<String, Object> style)
	{
		String strokeColor = mxUtils.getString(style,
				mxConstants.STYLE_STROKECOLOR);
		float strokeWidth = (float) (mxUtils.getFloat(style,
				mxConstants.STYLE_STROKEWIDTH, 1) * scale);

		Element elem = document.createElement("v:shape");

		if (strokeColor != null && strokeWidth > 0)
		{
			mxPoint pt = pts.get(0);
			Rectangle r = new Rectangle(pt.getPoint());

			StringBuilder buf = new StringBuilder("m " + Math.round(pt.getX())
					+ " " + Math.round(pt.getY()));

			for (int i = 1; i < pts.size(); i++)
			{
				pt = pts.get(i);
				buf.append(" l " + Math.round(pt.getX()) + " "
						+ Math.round(pt.getY()));

				r = r.union(new Rectangle(pt.getPoint()));
			}

			String d = buf.toString();
			elem.setAttribute("path", d);
			elem.setAttribute("filled", "false");
			elem.setAttribute("strokecolor", strokeColor);
			elem.setAttribute("strokeweight", String.valueOf(strokeWidth)
					+ "px");

			String s = "position:absolute;" + "left:" + String.valueOf(r.x)
					+ "px;" + "top:" + String.valueOf(r.y) + "px;" + "width:"
					+ String.valueOf(r.width) + "px;" + "height:"
					+ String.valueOf(r.height) + "px;";
			elem.setAttribute("style", s);

			elem.setAttribute("coordorigin",
					String.valueOf(r.x) + " " + String.valueOf(r.y));
			elem.setAttribute("coordsize", String.valueOf(r.width) + " "
					+ String.valueOf(r.height));
		}

		appendVmlElement(elem);

		return elem;
	}