View Javadoc

1   package com.melloware.jukes.tray;
2   
3   import java.awt.event.MouseAdapter;
4   import java.awt.event.MouseEvent;
5   
6   import javax.swing.JPopupMenu;
7   
8   import org.apache.commons.logging.Log;
9   import org.apache.commons.logging.LogFactory;
10  
11  /**
12   * Listens for all mouse events on the Tray Icon.
13   * <p>
14   * Copyright (c) 1999-2007 Melloware, Inc. <http://www.melloware.com>
15   * @author Emil A. Lefkof III <info@melloware.com>
16   * @version 4.0
17   */
18  public class JukesTrayMouseAdapter extends MouseAdapter {
19     private static final Log LOG = LogFactory.getLog(JukesTrayMouseAdapter.class);
20     private final JPopupMenu jpopup;
21     private final JukesTrayIcon trayIcon;
22  
23     /**
24      * Default constructor.
25      * <p>
26      * @param aTrayIcon the parent of this adapter to allow
27      */
28     public JukesTrayMouseAdapter(JukesTrayIcon aTrayIcon, JPopupMenu aJpopupMenu) {
29        super();
30        this.trayIcon = aTrayIcon;
31        this.jpopup = aJpopupMenu;
32     }
33  
34     /*
35      * (non-Javadoc)
36      * @see java.awt.event.MouseAdapter#mousePressed(java.awt.event.MouseEvent)
37      */
38     public void mousePressed(MouseEvent evt) {
39  
40        if (((evt.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) && (evt.getClickCount() == 1)) {
41           LOG.debug("Tray Swing popup menu displayed.");
42           jpopup.setLocation(evt.getX(), evt.getY());
43           jpopup.setInvoker(jpopup);
44           jpopup.setVisible(true);
45           return;
46        }
47  
48        // left mouse button pressed once
49        if (((evt.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) && (evt.getClickCount() == 1)) {
50           LOG.debug("[Tray icon left single click].");
51           trayIcon.leftClicked();
52        }
53  
54        // left mouse button pressed twice
55        if (((evt.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) && (evt.getClickCount() == 2)) {
56           LOG.debug("[Tray icon left double clicked].");
57           trayIcon.showWindow();
58        }
59  
60        // middle mouse button pressed once
61        if (((evt.getModifiers() & MouseEvent.BUTTON2_MASK) != 0) && (evt.getClickCount() == 1)) {
62           LOG.debug("[Tray icon mouse wheel clicked].");
63           trayIcon.middleClicked();
64        }
65     }
66  
67  }