001/* =========================================================== 002 * Orson Charts : a 3D chart library for the Java(tm) platform 003 * =========================================================== 004 * 005 * (C)opyright 2013-2022, by David Gilbert. All rights reserved. 006 * 007 * https://github.com/jfree/orson-charts 008 * 009 * This program is free software: you can redistribute it and/or modify 010 * it under the terms of the GNU General Public License as published by 011 * the Free Software Foundation, either version 3 of the License, or 012 * (at your option) any later version. 013 * 014 * This program is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU General Public License for more details. 018 * 019 * You should have received a copy of the GNU General Public License 020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 021 * 022 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 023 * Other names may be trademarks of their respective owners.] 024 * 025 * If you do not wish to be bound by the terms of the GPL, an alternative 026 * commercial license can be purchased. For details, please see visit the 027 * Orson Charts home page: 028 * 029 * http://www.object-refinery.com/orsoncharts/index.html 030 * 031 */ 032 033package org.jfree.chart3d.interaction; 034 035import java.awt.event.MouseEvent; 036import java.io.Serializable; 037import java.util.EventObject; 038import org.jfree.chart3d.Chart3D; 039import org.jfree.chart3d.Chart3DPanel; 040import org.jfree.chart3d.graphics3d.RenderedElement; 041 042/** 043 * A mouse event for a chart that is displayed in a {@link Chart3DPanel}. 044 * 045 * @see Chart3DMouseListener 046 * 047 * @since 1.3 048 */ 049public class Chart3DMouseEvent extends EventObject implements Serializable { 050 051 /** The chart that the mouse event relates to. */ 052 private final Chart3D chart; 053 054 /** The Java mouse event that triggered this event. */ 055 private final MouseEvent trigger; 056 057 /** The chart element (if any). */ 058 private final RenderedElement element; 059 060 /** 061 * Constructs a new event. 062 * 063 * @param chart the source chart ({@code null} not permitted). 064 * @param trigger the mouse event that triggered this event 065 * ({@code null} not permitted). 066 * @param element the element (if any) under the mouse pointer 067 * ({@code null} permitted). 068 */ 069 public Chart3DMouseEvent(Chart3D chart, MouseEvent trigger, 070 RenderedElement element) { 071 super(chart); 072 this.chart = chart; 073 this.trigger = trigger; 074 this.element = element; 075 } 076 077 /** 078 * Returns the chart that the mouse event relates to. 079 * 080 * @return The chart (never {@code null}). 081 */ 082 public Chart3D getChart() { 083 return this.chart; 084 } 085 086 /** 087 * Returns the mouse event that triggered this event. 088 * 089 * @return The event (never {@code null}). 090 */ 091 public MouseEvent getTrigger() { 092 return this.trigger; 093 } 094 095 /** 096 * Returns the interactive element (if any) under the mouse point. 097 * 098 * @return The chart entity (possibly {@code null}). 099 */ 100 public RenderedElement getElement() { 101 return this.element; 102 } 103 104} 105