@SuppressWarnings("serial")
		public MyTable()
		{
			data = new Object[30][5];
			for (int i = 0; i < 30; i++)
			{
				data[i][0] = new Boolean(false);
				data[i][1] = "Column " + i;
				data[i][2] = (Math.random() > 0.5) ? new ImageIcon(
						JTableRenderer.class.getResource(IMAGE_PATH
								+ "preferences.gif")) : null;
				data[i][3] = (Math.random() > 0.5) ? new ImageIcon(
						JTableRenderer.class.getResource(IMAGE_PATH
								+ "preferences.gif")) : null;
				data[i][4] = (Math.random() > 0.5) ? new ImageIcon(
						JTableRenderer.class.getResource(IMAGE_PATH
								+ "preferences.gif")) : null;
			}
			setModel(createModel());
			setTableHeader(null);
			setAutoscrolls(true);
			setGridColor(Color.WHITE);
			TableColumn column = getColumnModel().getColumn(0);
			column.setMaxWidth(20);
			column = getColumnModel().getColumn(2);
			column.setMaxWidth(12);
			column = getColumnModel().getColumn(3);
			column.setMaxWidth(12);
			column = getColumnModel().getColumn(4);
			column.setMaxWidth(12);

			setTransferHandler(new TransferHandler()
			{

				/* (non-Javadoc)
				 * @see javax.swing.TransferHandler#getSourceActions(javax.swing.JComponent)
				 */
				@Override
				public int getSourceActions(JComponent c)
				{
					return COPY_OR_MOVE;
				}

				/*
				 * (non-Javadoc)
				 * 
				 * @see javax.swing.TransferHandler#createTransferable(javax.swing.JComponent)
				 */
				@Override
				protected Transferable createTransferable(JComponent c)
				{
					sourceRow = getSelectedRow();
					dragSource = JTableRenderer.this;
					//mxRectangle bounds = new mxRectangle(0, 0, MyTable.this
					//		.getWidth(), 20);
					return new mxGraphTransferable(null, null, null);
				}

			});

			setDragEnabled(true);
			setDropTarget(new DropTarget(this, // component
					DnDConstants.ACTION_COPY_OR_MOVE, // actions
					this));
			setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
		}