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 javax.swing.*;
    21  import java.awt.event.MouseAdapter;
    22  import java.awt.event.MouseEvent;
    23
    24
    25  /**
    26   * Ensures that a specific popupMenu is displayed when the relevant
    27   * mouse events are trapped.
    28   *
    29   * @author Scott Deboy &lt;sdeboy@apache.org&gt;
    30   * @author Paul Smith &lt;psmith@apache.org&gt;
    31   */
    32  public class PopupListener extends MouseAdapter {
    33      final JPopupMenu popupMenu;
    34
    35      public PopupListener(JPopupMenu popupMenu) {
    36          this.popupMenu = popupMenu;
    37      }
    38
    39      public void mousePressed(MouseEvent e) {
    40          checkPopup(e);
    41      }
    42
    43      public void mouseReleased(MouseEvent e) {
    44          checkPopup(e);
    45      }
    46
    47      public void mouseClicked(MouseEvent e) {
    48          checkPopup(e);
    49      }
    50
    51      private void checkPopup(MouseEvent e) {
    52          if (e.isPopupTrigger()) {
    53              popupMenu.show(e.getComponent(), e.getX(), e.getY());
    54          }
    55      }
    56  }