public void initTable() {
        tableModel.addTableModelListener(deckTable);
        deckTable.setRowSelectionAllowed(true);
        deckTable.getTableHeader().setReorderingAllowed(false);
        //deckTable.setRowSorter(sorter = new TableRowSorter<DeckTableModel>(tableModel));
        //sorter.setSortsOnUpdates(true);
        deckTable.setRowHeight(25);
        

        
        deckTable.setDeck(deck);
        
        deckTable.setDragEnabled(true);
        deckTable.setDropMode(DropMode.INSERT_ROWS);
        deckTable.setTransferHandler(new DeckTableTransferHandler(this));
        deckTable.setFillsViewportHeight(true);
        

        
        deckTable.setDefaultRenderer(Object.class, new DeckTableRowCellRenderer(true));
        
        initTableMouseListener();
        initTableHeaderListener();
        
        initImageListMouseListener();
        
        imageList.getList().setDragEnabled(true);
        imageList.getList().setDropMode(DropMode.INSERT);
        imageList.getList().setTransferHandler(new ImageListTransferHandler(imageList, this));
        
        ListSelectionModel cellSelectionModel = deckTable.getSelectionModel();
        cellSelectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if (e.getValueIsAdjusting()) {
                    return;
                }
                cardBuffer.clear();
                for (int row: deckTable.getSelectedRows()) {
                	if (row != -1) {
                		cardBuffer.add(row);
                	}
                }
                if (deckTable.getSelectedRow() != -1) {
                	//this was code from when the refComplex was visible on page (maybe bring back as alternate view)
                    //imageSelection.setCurrentImage(deck.get(deckTable.getSelectedRow()).getImage());
                    //cardStats.setText(deck.get(deckTable.getSelectedRow()).getDescription());
                    //new CardInfoPanel(deck.get(deckTable.getSelectedRow()));
                    //new CardInfoPanel();
                }
                else {
                    //imageSelection.resetCurrentImage();
                    //cardStats.setText("");
                }    
            }
        });
    }