public void show(final Command exitCommand) {
        final Command exit = new Command() {
            private static final long serialVersionUID = -7428793574300520612L;

            public void execute() {
                Gui_Quest_DeckEditor.this.dispose();
                exitCommand.execute();
            }
        };

        //do not change this!!!!
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent ev) {
                customMenu.close();
            }
        });


        setup();

        customMenu = new Gui_Quest_DeckEditor_Menu(this, exit);
        this.setJMenuBar(customMenu);


        forge.quest.data.QuestData questData = AllZone.getQuestData();
        Deck deck = null;

        //open deck that the player used if QuestData has it
        if (Constant.Runtime.HumanDeck[0] != null
                && questData.getDeckNames().contains(Constant.Runtime.HumanDeck[0].getName())) {
            deck = questData.getDeck(Constant.Runtime.HumanDeck[0].getName());
        } else {
            deck = new Deck(Constant.GameType.Sealed);
            deck.setName("");
        }

        //tell Gui_Quest_DeckEditor the name of the deck
        customMenu.setHumanPlayer(deck.getName());


        //convert Deck main into CardList to show on the screen
        //convert Deck main into CardList to show on the screen
        CardList bottom = new CardList();
        for (int i = 0; i < deck.countMain(); i++) {
            bottom.add(AllZone.getCardFactory().getCard(deck.getMain(i), null));
        }


        java.util.ArrayList<String> list = (ArrayList<String>)AllZone.getQuestData().getCardpool();

        CardList cardpool = Gui_Quest_DeckEditor_Menu.covertToCardList(list);

        //remove bottom cards that are in the deck from the card pool
        for (int i = 0; i < bottom.size(); i++) {
            if (cardpool.containsName(bottom.get(i).getName())) cardpool.remove(bottom.get(i).getName());
        }

        //show cards, makes this user friendly, lol, well may, ha
        updateDisplay(cardpool, bottom);


        //this affects the card pool
        topModel.sort(4, true);//sort by type
        topModel.sort(3, true);//then sort by color

        bottomModel.sort(1, true);
    }//show(Command)