ExtendedSelectAction.java revision 1472:c18cbe5936b8
1167465Smp/*
259243Sobrien * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
359243Sobrien * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
459243Sobrien *
559243Sobrien * This code is free software; you can redistribute it and/or modify it
659243Sobrien * under the terms of the GNU General Public License version 2 only, as
759243Sobrien * published by the Free Software Foundation.
859243Sobrien *
959243Sobrien * This code is distributed in the hope that it will be useful, but WITHOUT
1059243Sobrien * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1159243Sobrien * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1259243Sobrien * version 2 for more details (a copy is included in the LICENSE file that
1359243Sobrien * accompanied this code).
1459243Sobrien *
1559243Sobrien * You should have received a copy of the GNU General Public License version
1659243Sobrien * 2 along with this work; if not, write to the Free Software Foundation,
17100616Smp * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1859243Sobrien *
1959243Sobrien * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2059243Sobrien * or visit www.oracle.com if you need additional information or have any
2159243Sobrien * questions.
2259243Sobrien *
2359243Sobrien */
2459243Sobrienpackage com.sun.hotspot.igv.util;
2559243Sobrien
2659243Sobrienimport java.awt.event.MouseEvent;
2759243Sobrienimport javax.swing.JPanel;
2859243Sobrienimport org.netbeans.api.visual.action.ActionFactory;
2959243Sobrienimport org.netbeans.api.visual.action.SelectProvider;
3059243Sobrienimport org.netbeans.api.visual.action.WidgetAction;
3159243Sobrienimport org.netbeans.api.visual.action.WidgetAction.State;
3259243Sobrienimport org.netbeans.api.visual.action.WidgetAction.WidgetKeyEvent;
3359243Sobrienimport org.netbeans.api.visual.action.WidgetAction.WidgetMouseEvent;
3459243Sobrienimport org.netbeans.api.visual.widget.Widget;
35167465Smp
3659243Sobrien/**
3759243Sobrien *
3859243Sobrien * @author Thomas Wuerthinger
39167465Smp */
4059243Sobrienpublic class ExtendedSelectAction extends WidgetAction.Adapter {
4159243Sobrien
4259243Sobrien    private WidgetAction innerAction;
4359243Sobrien    private JPanel panel;
4459243Sobrien
4559243Sobrien    public ExtendedSelectAction(SelectProvider provider) {
4659243Sobrien        innerAction = ActionFactory.createSelectAction(provider);
4759243Sobrien        panel = new JPanel();
4859243Sobrien    }
4959243Sobrien
5059243Sobrien    @Override
5159243Sobrien    public State mousePressed(Widget widget, WidgetMouseEvent event) {
5259243Sobrien        // TODO: Solve this differently?
5359243Sobrien        if (event.getButton() != MouseEvent.BUTTON2) {
5459243Sobrien            return innerAction.mousePressed(widget, new WidgetMouseEvent(event.getEventID(), new MouseEvent(panel, (int) event.getEventID(), event.getWhen(), event.getModifiersEx(), event.getPoint().x, event.getPoint().y, event.getClickCount(), event.isPopupTrigger(), MouseEvent.BUTTON1)));
5559243Sobrien        } else {
5659243Sobrien            return super.mousePressed(widget, event);
5759243Sobrien        }
5859243Sobrien    }
5959243Sobrien
6059243Sobrien    @Override
6159243Sobrien    public State mouseReleased(Widget widget, WidgetMouseEvent event) {
6259243Sobrien        return innerAction.mouseReleased(widget, event);
6359243Sobrien    }
6459243Sobrien
6559243Sobrien    @Override
6659243Sobrien    public State keyTyped(Widget widget, WidgetKeyEvent event) {
6759243Sobrien        return innerAction.keyTyped(widget, event);
6859243Sobrien    }
6959243Sobrien}
7059243Sobrien