1 /*
2
3 dsh-venn-cytoscape-plugin Cytoscape plugin for venn diagrams.
4 Copyright (c) 2010-2012 held jointly by the individual authors.
5
6 This library is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or (at
9 your option) any later version.
10
11 This library is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with this library; if not, write to the Free Software Foundation,
18 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
19
20 > http://www.fsf.org/licensing/licenses/lgpl.html
21 > http://www.opensource.org/licenses/lgpl-license.php
22
23 */
24 package org.dishevelled.venn.cytoscape;
25
26 import java.awt.event.MouseAdapter;
27 import java.awt.event.MouseEvent;
28
29 import javax.swing.JPopupMenu;
30
31 /**
32 * Context menu listener.
33 *
34 * @author Michael Heuer
35 * @version $Revision$ $Date$
36 */
37 final class ContextMenuListener
38 extends MouseAdapter
39 {
40 /** Context menu. */
41 private final JPopupMenu contextMenu;
42
43
44 /**
45 * Create a new context menu listener for the specified context menu.
46 *
47 * @param contextMenu context menu, must not be null
48 */
49 ContextMenuListener(final JPopupMenu contextMenu)
50 {
51 if (contextMenu == null)
52 {
53 throw new IllegalArgumentException("contextMenu must not be null");
54 }
55 this.contextMenu = contextMenu;
56 }
57
58
59 /** {@inheritDoc} */
60 public void mousePressed(final MouseEvent event)
61 {
62 if (event.isPopupTrigger())
63 {
64 showContextMenu(event);
65 }
66 }
67
68 /** {@inheritDoc} */
69 public void mouseReleased(final MouseEvent event)
70 {
71 if (event.isPopupTrigger())
72 {
73 showContextMenu(event);
74 }
75 }
76
77 /**
78 * Show context menu.
79 *
80 * @param event mouse event
81 */
82 private void showContextMenu(final MouseEvent event)
83 {
84 contextMenu.show(event.getComponent(), event.getX(), event.getY());
85 }
86 }