public ClassMemberListPanel()

in src/main/java/org/adoptopenjdk/jitwatch/ui/main/ClassMemberListPanel.java [62:127]


    public ClassMemberListPanel(final IStageAccessProxy proxy, final JITWatchConfig config)
    {
        this.config = config;

        memberListModel = new DefaultListModel<>();
        memberList = new JBList<>(memberListModel);
        memberList.setCellRenderer(new MetaMethodCell());
        memberList.addListSelectionListener(new ListSelectionListener()
        {
            @Override
            public void valueChanged(ListSelectionEvent e)
            {
                if (!selectedProgrammatically && !e.getValueIsAdjusting())
                {
                    IMetaMember newVal = memberList.getSelectedValue();
                    notifyListeners(newVal);
                }
            }
        });

        final JPopupMenu menuCompiled = buildContextMenuCompiledMember(proxy);
        final JPopupMenu menuUncompiled = buildContextMenuUncompiledMember(proxy);

        memberList.addMouseListener(new MouseAdapter()
        {
            @Override
            public void mousePressed(MouseEvent e)
            {
                if (e.isPopupTrigger())
                {
                    showContextMenu(e);
                }
            }

            @Override
            public void mouseReleased(MouseEvent e)
            {
                if (e.isPopupTrigger())
                {
                    showContextMenu(e);
                }
            }

            // TODO: remove?
            private void showContextMenu(MouseEvent e)
            {
                int index = memberList.locationToIndex(e.getPoint());
                if (index >= 0)
                {
                    memberList.setSelectedIndex(index);
                    IMetaMember selectedMember = memberList.getSelectedValue();
                    if (selectedMember.isCompiled())
                    {
                        menuCompiled.show(memberList, e.getX(), e.getY());
                    }
                    else
                    {
                        menuUncompiled.show(memberList, e.getX(), e.getY());
                    }
                }
            }
        });

        setLayout(new BorderLayout());
        add(new JScrollPane(memberList), BorderLayout.CENTER);
    }