public StdImage getColumnDragImage(Column column) {
		StdImage offscreen = null;
		synchronized (getTreeLock()) {
			Graphics2D gc = null;
			try {
				Rectangle bounds = new Rectangle(0, 0, column.getWidth() + (mDrawColumnDividers ? 2 : 0), getVisibleRect().height + (mHeaderPanel != null ? mHeaderPanel.getHeight() + 1 : 0));
				offscreen = StdImage.createTransparent(getGraphicsConfiguration(), bounds.width, bounds.height);
				gc = GraphicsUtilities.prepare(offscreen.getGraphics());
				gc.setClip(bounds);
				gc.setBackground(new Color(0, true));
				gc.clearRect(0, 0, bounds.width, bounds.height);
				gc.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
				gc.setColor(getBackground());
				gc.fill(bounds);
				gc.setColor(getDividerColor());
				if (mDrawRowDividers) {
					gc.drawLine(bounds.x, bounds.y, bounds.x + bounds.width, bounds.y);
					gc.drawLine(bounds.x, bounds.y + bounds.height - 1, bounds.x + bounds.width, bounds.y + bounds.height - 1);
					bounds.y++;
					bounds.height -= 2;
				}
				if (mDrawColumnDividers) {
					gc.drawLine(bounds.x, bounds.y, bounds.x, bounds.y + bounds.height);
					gc.drawLine(bounds.x + bounds.width - 1, bounds.y, bounds.x + bounds.width - 1, bounds.y + bounds.height);
					bounds.x++;
					bounds.width -= 2;
				}
				drawOneColumn(gc, column, bounds);
			} catch (Exception exception) {
				Log.error(exception);
			} finally {
				if (gc != null) {
					gc.dispose();
				}
			}
		}
		return offscreen;
	}