public CardListPanel() {
		final CardTableModel dm = new CardTableModel();
		final JTable t = new JTable(dm);
		dm.setTable(t);
		t.getColumnModel().getColumn(0).setCellRenderer(
				new DefaultTableCellRenderer() {

					private static final long serialVersionUID = -9109954835956521771L;

					@Override
					public Component getTableCellRendererComponent(
							JTable table, Object value, boolean isSelected,
							boolean hasFocus, int row, int column) {
						if (value instanceof Card) {
							Card c = (Card) value;
							value = c.getName();
							Component comp = super
									.getTableCellRendererComponent(table,
											value, isSelected, hasFocus, row,
											column);
							if (!isSelected) {
								if (!c.isEnabled()) {
									comp.setForeground(Color.GRAY);
								} else {
									comp.setForeground(Color.BLACK);
								}
							}
							return comp;
						} else {
							return super.getTableCellRendererComponent(table,
									value, isSelected, hasFocus, row, column);
						}
					}

				});

		this.setLayout(new BorderLayout());

		JPanel tools = new JPanel();
		tools.setOpaque(false);
		tools.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.insets = new Insets(2, 2, 3, 2);
		c.gridx = 0;
		/*
		 * c.gridy=0; tools.add(new JButton("Remove"),c); c.gridx++;
		 * tools.add(new JButton("Assign to user"),c);
		 */
		JPanel blank = new JPanel();
		blank.setOpaque(false);
		c.weightx = 1;
		c.gridx++;
		tools.add(blank, c);
		this.add(tools, BorderLayout.NORTH);

		split = new JSplitPane();
		JScrollPane comp = new JScrollPane(t);
		comp.setMinimumSize(new Dimension(200, 200));
		comp.setPreferredSize(new Dimension(200, 200));
		split.setLeftComponent(comp);
		split.setRightComponent(new JPanel());

		this.add(split, BorderLayout.CENTER);

		t.getSelectionModel().addListSelectionListener(
				new ListSelectionListener() {

					@Override
					public void valueChanged(ListSelectionEvent e) {

						if (!e.getValueIsAdjusting()) {
							int first = t.getSelectedRow();
							if (first >= 0) {
								Card c = dm.getCard(first);
								if (c != null) {
									if (split.getRightComponent() instanceof CardPropertiesPanel) {
										CardPropertiesPanel up = (CardPropertiesPanel) split
												.getRightComponent();
										if (up.getCurrentCard().equals(c)) {
											return;
										}
									}

									split
											.setRightComponent(new CardPropertiesPanel(
													c));
								} else {
									System.err
											.println("ClientListPanel: First index:"
													+ first);
								}
							}
						}

					}
				});
	}