public void takeControl() {
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        if(this.splash != null) {
            splash.setVisible(false);
            splash.dispose();
        }
        
        this.loadPerksAndFlaws();
        this.loadGear();
        this.listCharacterEdgesFlaws.setCellRenderer(new EdgeFlawListRenderer());
        this.listCharacterEdgesFlaws.setModel(new DefaultListModel());
        
        this.listCharacterEdgesFlaws.addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent e) {
                if(!e.getValueIsAdjusting()) {
                    DefaultListModel dlm = (DefaultListModel)listCharacterEdgesFlaws.getModel();
                    
                    for(int i=0; i<listCharacterEdgesFlaws.getModel().getSize(); i++) {
                        dlm.setElementAt(dlm.getElementAt(i), i);
                    }
                }
                
                
                if(listFlaws.getSelectedValue() != null) {
                    if(listFlaws.getSelectedValue() instanceof Flaw) {
                        Flaw f = (Flaw)listFlaws.getSelectedValue();
                        lblEdgeFlawKarma.setText("+" + f.getCost() + " Punkte");
                        lblEdgeFlawKarma.setForeground(new Color(0xc0, 0x00, 0x00, 0xff));
                        txtEdgeFlawDescription.setText(f.getDescription());
                    } else if(listFlaws.getSelectedValue() instanceof Perk) {
                        Perk f = (Perk)listPerks.getSelectedValue();
                        lblEdgeFlawKarma.setText("-" + f.getCost() + " Punkte");
                        lblEdgeFlawKarma.setForeground(new Color(0x00, 0xc0, 0x00, 0xff));
                        txtEdgeFlawDescription.setText(f.getDescription());
                    }
                }
                
                
            }
        });
        
        this.listFlaws.addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent e) {
                if(listFlaws.getSelectedValue() != null) {
                    Flaw f = (Flaw)listFlaws.getSelectedValue();
                    lblEdgeFlawKarma.setText("+" + f.getCost() + " Punkte");
                    lblEdgeFlawKarma.setForeground(new Color(0xc0, 0x00, 0x00, 0xff));
                    txtEdgeFlawDescription.setText(f.getDescription());
                }
            }
        });
        
        this.listPerks.addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent e) {
                if(listPerks.getSelectedValue() != null) {
                    Perk f = (Perk)listPerks.getSelectedValue();
                    lblEdgeFlawKarma.setText("-" + f.getCost() + " Punkte");
                    lblEdgeFlawKarma.setForeground(new Color(0x00, 0xc0, 0x00, 0xff));
                    txtEdgeFlawDescription.setText(f.getDescription());
                }
            }
        });
        
        
    }