Package com.jidesoft.spinner

Source Code of com.jidesoft.spinner.SpinnerWheelSupport

/*
* @(#)SpinnerWheelSupport.java 7/28/2006
*
* Copyright 2002 - 2006 JIDE Software Inc. All rights reserved.
*/

package com.jidesoft.spinner;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;

/**
* A helper class to add mouse wheel support to JSpinner. You can call {@link #installMouseWheelSupport(javax.swing.JSpinner)}
* to add the support and {@link #uninstallMouseWheelSupport(javax.swing.JSpinner)} to remove the support.
*/
public class SpinnerWheelSupport {

    public static final String CLIENT_PROPERTY_MOUSE_WHEEL_LISTENER = "mouseWheelListener";
    protected static final String ACTION_NAME_INCREMENT = "increment";
    protected static final String ACTION_NAME_DECREMENT = "decrement";

    public static void installMouseWheelSupport(final JSpinner spinner) {
        MouseWheelListener l = new MouseWheelListener() {
            public void mouseWheelMoved(MouseWheelEvent e) {
                if (spinner == null || !spinner.isEnabled()) {
                    return;
                }
                int rotation = e.getWheelRotation();
                if (rotation < 0) {
                    Action action = spinner.getActionMap().get(ACTION_NAME_INCREMENT);
                    if (action != null) {
                        action.actionPerformed(new ActionEvent(e.getSource(), 0, ACTION_NAME_INCREMENT));
                    }
                }
                else if (rotation > 0) {
                    Action action = spinner.getActionMap().get(ACTION_NAME_DECREMENT);
                    if (action != null) {
                        action.actionPerformed(new ActionEvent(e.getSource(), 0, ACTION_NAME_DECREMENT));
                    }
                }
            }
        };
        spinner.addMouseWheelListener(l);
        spinner.putClientProperty(CLIENT_PROPERTY_MOUSE_WHEEL_LISTENER, l);
    }

    public static void uninstallMouseWheelSupport(final JSpinner spinner) {
        MouseWheelListener l = (MouseWheelListener) spinner.getClientProperty(CLIENT_PROPERTY_MOUSE_WHEEL_LISTENER);
        if (l != null) {
            spinner.removeMouseWheelListener(l);
        }
    }
}
TOP

Related Classes of com.jidesoft.spinner.SpinnerWheelSupport

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.