org.jfree.chart.fx.interaction.AbstractMouseHandlerFX Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jfreechart Show documentation
Show all versions of jfreechart Show documentation
JFreeChart is a class library, written in Java, for generating charts.
Utilising the Java2D APIs, it currently supports bar charts, pie charts,
line charts, XY-plots and time series plots.
/* ===========================================================
* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2014, by Object Refinery Limited and Contributors.
*
* Project Info: http://www.jfree.org/jfreechart/index.html
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.]
*
* ---------------------------
* AbstractMouseHandlerFX.java
* ---------------------------
* (C) Copyright 2014, by Object Refinery Limited and Contributors.
*
* Original Author: David Gilbert (for Object Refinery Limited);
* Contributor(s): -;
*
* Changes:
* --------
* 25-Jun-2014 : Version 1 (DG);
*
*/
package org.jfree.chart.fx.interaction;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.ScrollEvent;
import org.jfree.chart.fx.ChartCanvas;
import org.jfree.chart.util.ParamChecks;
/**
* A base class that can be used to implement the {@link MouseHandlerFX}
* interface.
*
* THE API FOR THIS CLASS IS SUBJECT TO CHANGE IN FUTURE RELEASES. This is
* so that we can incorporate feedback on the (new) JavaFX support in
* JFreeChart.
*
* @since 1.0.18
*/
public class AbstractMouseHandlerFX implements MouseHandlerFX {
/** The handler id. */
private String id;
/**
* A flag used to enable/disable the handler (usually temporarily, removing
* a handler is the preferred way to disable it permanently).
*/
private boolean enabled;
/** Requires ALT key modifier? */
private boolean altKey;
/** Requires CTRL key modifier? */
private boolean ctrlKey;
/** Requires META key modifier? */
private boolean metaKey;
/** Requires SHIFT key modifier? */
private boolean shiftKey;
/**
* Creates a new instance. The modifier keys are used to select a
* mouse handler to be the current "live" handler (when a handler is
* used as an auxiliary handler, the modifier keys are not relevant).
*
* @param id the handler id (null
not permitted).
* @param altKey require ALT key modifier?
* @param ctrlKey require ALT key modifier?
* @param metaKey require ALT key modifier?
* @param shiftKey require ALT key modifier?
*/
public AbstractMouseHandlerFX(String id, boolean altKey, boolean ctrlKey,
boolean metaKey, boolean shiftKey) {
ParamChecks.nullNotPermitted(id, "id");
this.id = id;
this.enabled = true;
this.altKey = altKey;
this.ctrlKey = ctrlKey;
this.metaKey = metaKey;
this.shiftKey = shiftKey;
}
/**
* Returns the ID for the handler.
*
* @return The ID (never null
).
*/
@Override
public String getID() {
return this.id;
}
/**
* Returns the flag that controls whether or not the handler is enabled.
*
* @return A boolean.
*/
@Override
public boolean isEnabled() {
return this.enabled;
}
/**
* Sets the flag that controls the enabled/disabled state of the handler.
*
* @param enabled the new flag value.
*/
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
/**
* Returns true
if the specified mouse event has modifier
* keys that match this handler.
*
* @param e the mouse event (null
not permitted).
*
* @return A boolean.
*/
@Override
public boolean hasMatchingModifiers(MouseEvent e) {
boolean b = true;
b = b && (this.altKey == e.isAltDown());
b = b && (this.ctrlKey == e.isControlDown());
b = b && (this.metaKey == e.isMetaDown());
b = b && (this.shiftKey == e.isShiftDown());
return b;
}
/**
* Handles a mouse moved event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleMouseMoved(ChartCanvas canvas, MouseEvent e) {
// does nothing unless overridden
}
/**
* Handles a mouse clicked event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleMouseClicked(ChartCanvas canvas, MouseEvent e) {
// does nothing unless overridden
}
/**
* Handles a mouse pressed event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleMousePressed(ChartCanvas canvas, MouseEvent e) {
// does nothing unless overridden
}
/**
* Handles a mouse dragged event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleMouseDragged(ChartCanvas canvas, MouseEvent e) {
// does nothing unless overridden
}
/**
* Handles a mouse released event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleMouseReleased(ChartCanvas canvas, MouseEvent e) {
// does nothing unless overridden
}
/**
* Handles a scroll event. This implementation does nothing,
* override the method if required.
*
* @param canvas the canvas (null
not permitted).
* @param e the event (null
not permitted).
*/
@Override
public void handleScroll(ChartCanvas canvas, ScrollEvent e) {
// does nothing unless overridden
}
}