void addButton_actionPerformed(ActionEvent e) {
        setTitle("Deck Editor : " + customMenu.getDeckName() + " : unsaved");

        int n = topTable.getSelectedRow();
        if (n != -1) {
            Card c = topModel.rowToCard(n);

            if (customMenu.getGameType().equals(Constant.GameType.Constructed)) {
                Card newC = new Card();
                newC.setName(c.getName());
                newC.setColor(c.getColor());
                newC.setType(c.getType());
                newC.setManaCost(c.getManaCost());
                newC.setBaseAttack(c.getBaseAttack());
                newC.setBaseDefense(c.getBaseDefense());
                newC.setBaseLoyalty(c.getBaseLoyalty());
                newC.setRarity(c.getRarity());
                newC.setCurSetCode(c.getCurSetCode());
                newC.setImageFilename(c.getImageFilename());
                newC.setSets(c.getSets());
                newC.setText(c.getText());

                bottomModel.addCard(newC);
                bottomModel.resort();
            } else {
                //if(!Constant.GameType.Constructed.equals(customMenu.getGameType())) {
                bottomModel.addCard(c);
                bottomModel.resort();

                top.remove(c);
                topModel.removeCard(c);
            }

            //3 conditions" 0 cards left, select the same row, select next row
            int size = topModel.getRowCount();
            if (size != 0) {
                if (size == n) n--;
                topTable.addRowSelectionInterval(n, n);
            }
        }//if(valid row)
    }//addButton_actionPerformed