// Charles A. Loomis, Jr., and University of California, Santa Cruz, // Copyright (c) 2000 package org.freehep.swing.graphics; import java.awt.geom.AffineTransform; /** * GraphicalSelectionEvent is an event which is generated when an user * makes a graphical selection. This event contains information about * the source, the type of selection which was made, and the selection * type. * * @author Charles Loomis * @version $Id: GraphicalSelectionEvent.java 8584 2006-08-10 23:06:37Z duns $ */ public class GraphicalSelectionEvent extends java.util.EventObject { /** * This action code indicates no action. */ final static public int NO_ACTION = -1; /** * This action code indicates that the view should be zoomed with the * given parameters in the same view. */ final static public int ZOOM = 0; /** * This action code indicates that the view should be cloned and the zoom * applied to the clone. */ final static public int ZOOM_NEW_VIEW = 1; /** * This indicates that the selection should be used to select event * objects. These objects should replace any previously selected * objects. */ final static public int PICK = 2; /** * This indicates that the selection should be used to select event * objects and that these objects should be selected in addition to any * previously selected objects. */ final static public int PICK_ADD = 3; /** * This indicates that the selection should be used to select event * objects and that these objects should be deselected. */ final static public int UNPICK = 4; /** * This indicates that the component should switch to the next selection * mode. */ final static public int NEXT_MODE = 10; /** * This indicates that the component should switch to the previous * selection mode. */ final static public int PREVIOUS_MODE = 11; /** * This indicates that the component should switch to the default * selection mode. */ final static public int DEFAULT_MODE = 13; /** * An integer which describes what should be done with this selection. */ protected int actionCode; /** * The Object which describes the graphical selection which has * been made. */ protected Object selection; /** * The associated AffineTransform to be used if zooming into the * selected region is desired. */ private AffineTransform transform; /** * The constructor requires the source object, the selection type, * and the actual selection. * * @param source the Object which generates this event * @param selection the selection itself * @param actionCode integer giving action to be done * @param transform an AffineTransform which will, for example, * zoom into a selected region */ public GraphicalSelectionEvent(Object source, int actionCode, Object selection, AffineTransform transform) { super(source); this.actionCode = actionCode; this.selection = selection; this.transform = transform; } /** * Get the Object which describes the graphical selection. * * @return Object which describes the selection */ public Object getSelection() { return selection; } /** * Return an AffineTransform which is appropriate for this * selection. For a point, the transform might center the display * on this point. For a region, the transform might zoom into the * selected region. * * @return the appropriate AffineTransform */ public AffineTransform getTransform() { if (transform!=null) { return (AffineTransform) transform.clone(); } else { return null; } } /** * Return the action code for this event. * * @return an integer describing the action which should be taken */ public int getActionCode() { return actionCode; } }