package com.explodingpixels.macwidgets; import com.explodingpixels.macwidgets.SourceList; import com.explodingpixels.macwidgets.SourceListCategory; import com.explodingpixels.macwidgets.SourceListContextMenuProvider; import com.explodingpixels.macwidgets.SourceListItem; import com.explodingpixels.widgets.WindowUtils; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.awt.BorderLayout; public class DSourceListContextMenuProviderTest { @Before public void setUp() throws Exception { } @Test public void doTest() throws Exception { final SourceListContextMenuProvider menuProvider = new SourceListContextMenuProvider() { public JPopupMenu createContextMenu() { JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(new JMenuItem("Generic Menu for SourceList")); return popupMenu; } public JPopupMenu createContextMenu(SourceListItem item) { JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(new JMenuItem("Menu for " + item.getText())); return popupMenu; } public JPopupMenu createContextMenu(SourceListCategory category) { JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(new JMenuItem("Menu for " + category.getText())); return popupMenu; } }; SwingUtilities.invokeLater(new Runnable() { public void run() { SourceList sourceList = DSourceListMailTest.createSourceList(); sourceList.setSourceListContextMenuProvider(menuProvider); JFrame frame = new JFrame(); WindowUtils.createAndInstallRepaintWindowFocusListener(frame); frame.add(sourceList.getComponent(), BorderLayout.CENTER); frame.setSize(225, 250); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setVisible(true); } }); } @After public void tearDown() throws Exception { } }