public StdImage createDragImage(Point dragOrigin) {
		Graphics2D gc = null;
		StdImage off2 = null;
		mDrawingDragImage = true;
		mDragClip = null;
		StdImage off1 = createImage();
		mDrawingDragImage = false;
		if (mDragClip == null) {
			mDragClip = new Rectangle(dragOrigin.x, dragOrigin.y, 1, 1);
		}
		try {
			off2 = StdImage.createTransparent(getGraphicsConfiguration(), mDragClip.width, mDragClip.height);
			gc = off2.getGraphics();
			gc.setClip(new Rectangle(0, 0, mDragClip.width, mDragClip.height));
			gc.setBackground(new Color(0, true));
			gc.clearRect(0, 0, mDragClip.width, mDragClip.height);
			gc.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
			Point pt = toContentView(new Point(mHeaderBounds.x, mHeaderBounds.y));
			gc.drawImage(off1, -(mDragClip.x - pt.x), -(mDragClip.y - pt.y), this);
		} catch (Exception paintException) {
			off2 = null;
			mDragClip = new Rectangle(dragOrigin.x, dragOrigin.y, 1, 1);
			Log.error(paintException);
		} finally {
			if (gc != null) {
				gc.dispose();
			}
		}
		return off2 != null ? off2 : off1;
	}