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);
}