View Javadoc

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  }