public MenuPanel(final Handler handler, int random) {
        super();
        this.handler = handler;
        this.random = random;

        if(random == 0) color = "_green";
        else if(random == 1) color = "_blue";
        else color = "_orange";

        Border panelBorder = new LineBorder(GUI3.guiColor);

        //set LayoutMng
        this.setLayout(new MigLayout("fill"));
        this.setBorder(panelBorder);
        this.setBackground(Color.BLACK);

        DefaultMutableTreeNode top = new DefaultMutableTreeNode(new TreeNodeObject("Decoding Tools"));
        createNodes(top);
        methodTree = new JTree(top);
        methodTree.setBackground(Color.black);
        methodTree.setFont(GUI3.INGRESS_FONT);
        methodTree.setCellRenderer(new TreeCellRenderer());
        methodTree.addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent evt) {
                TreePath path = methodTree.getPathForLocation(evt.getX(), evt.getY());
                if(path == null) return;
                DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) path.getLastPathComponent();
                if(treeNode.getUserObject() instanceof TreeNodeObject) {
                    TreeNodeObject co = (TreeNodeObject) treeNode.getUserObject();
                    co.setSelected(!co.isSelected());
                    handler.toggleDecodingMethod(co.getMethodID());
                    methodTree.repaint();
                }
            }
        });

        JPanel toolbar = new JPanel();
        optionPanel = new OptionsPanel(handler, optioncollapsed, random);
        JScrollPane treeView = new JScrollPane(methodTree);
        treeView.setBorder(new EmptyBorder(0, 0, 0, 0));
        treeView.setFont(GUI3.INGRESS_FONT);

        JButton expandAll = new JButton(makeImageIcon("/images/expand_all" + color + ".png"));
        JButton collapseAll = new JButton(makeImageIcon("/images/collapse_all" + color + ".png"));
        JButton selectAll = new JButton(makeImageIcon("/images/check_all" + color + ".png"));
        JButton selectNone = new JButton(makeImageIcon("/images/check_none" + color + ".png"));
        JButton inverseSelection = new JButton(makeImageIcon("/images/check_invert" + color + ".png"));

        expandAll.setToolTipText("expand all");
        collapseAll.setToolTipText("collapse all");
        selectAll.setToolTipText("select all");
        selectNone.setToolTipText("deselect all");
        inverseSelection.setToolTipText("inverse selection");

        expandAll.setBackground(Color.black);
        collapseAll.setBackground(Color.black);
        selectAll.setBackground(Color.black);
        selectNone.setBackground(Color.black);
        inverseSelection.setBackground(Color.black);

        expandAll.setForeground(Color.green);
        collapseAll.setForeground(Color.green);
        selectAll.setForeground(Color.green);
        selectNone.setForeground(Color.green);
        inverseSelection.setForeground(Color.green);

        expandAll.setFont(GUI3.INGRESS_FONT);
        collapseAll.setFont(GUI3.INGRESS_FONT);
        selectAll.setFont(GUI3.INGRESS_FONT);
        selectNone.setFont(GUI3.INGRESS_FONT);
        inverseSelection.setFont(GUI3.INGRESS_FONT);

        expandAll.setActionCommand("TreeExpandAll");
        expandAll.addActionListener(handler);

        collapseAll.setActionCommand("TreeCollapseAll");
        collapseAll.addActionListener(handler);

        selectAll.setActionCommand("TreeSelectAll");
        selectAll.addActionListener(handler);

        selectNone.setActionCommand("TreeSelectNone");
        selectNone.addActionListener(handler);

        inverseSelection.setActionCommand("TreeInverseSelection");
        inverseSelection.addActionListener(handler);

        toolbar.setLayout(new MigLayout("gap 0, insets 0, fill"));
        toolbar.setBackground(Color.BLACK);
        toolbar.add(expandAll);
        toolbar.add(collapseAll);
        toolbar.add(selectAll);
        toolbar.add(selectNone);
        toolbar.add(inverseSelection);

        this.add(toolbar, "dock north");
        this.add(treeView, "growx, growy, push,wrap");
        this.add(optionPanel, "dock south");
    }