View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17
    18  package org.apache.log4j.chainsaw;
    19
    20  import java.awt.event.MouseAdapter;
    21  import java.awt.event.MouseEvent;
    22
    23  import javax.swing.JPopupMenu;
    24
    25
    26  /**
    27   *
    28   * Ensures that a specific popupMenu is displayed when the relevant
    29   * mouse events are trapped.
    30   *
    31   * @author Scott Deboy &lt;sdeboy@apache.org&gt;
    32   * @author Paul Smith &lt;psmith@apache.org&gt;
    33   *
    34   */
    35  public class PopupListener extends MouseAdapter {
    36    final JPopupMenu popupMenu;
    37
    38    public PopupListener(JPopupMenu popupMenu) {
    39      this.popupMenu = popupMenu;
    40    }
    41
    42    public void mousePressed(MouseEvent e) {
    43      checkPopup(e);
    44    }
    45
    46    public void mouseReleased(MouseEvent e) {
    47      checkPopup(e);
    48    }
    49
    50    public void mouseClicked(MouseEvent e)
    51    {
    52        checkPopup(e);
    53    }
    54
    55    private void checkPopup(MouseEvent e) {
    56      if (e.isPopupTrigger()) {
    57        popupMenu.show(e.getComponent(), e.getX(), e.getY());
    58      }
    59    }
    60  }