1 /* 2 * Copyright (c) 2005, the JUNG Project and the Regents of the University of 3 * California All rights reserved. 4 * 5 * This software is open-source under the BSD license; see either "license.txt" 6 * or http://jung.sourceforge.net/license.txt for a description. 7 * 8 * Created on Jul 6, 2005 9 */ 10 11 package edu.uci.ics.jung.visualization.control; 12 13 import java.awt.Cursor; 14 import java.awt.Point; 15 import java.awt.event.MouseEvent; 16 17 /** 18 * a base class for GraphMousePlugin instances. Holds some members 19 * common to all GraphMousePlugins 20 * @author thomasnelson 21 * 22 */ 23 public abstract class AbstractGraphMousePlugin implements GraphMousePlugin { 24 25 /** 26 * modifiers to compare against mouse event modifiers 27 */ 28 protected int modifiers; 29 30 /** 31 * the location in the View where the mouse was pressed 32 */ 33 protected Point down; 34 35 /** 36 * the special cursor that plugins may display 37 */ 38 protected Cursor cursor; 39 40 /** 41 * create an instance with passed values 42 * @param modifiers 43 */ 44 public AbstractGraphMousePlugin(int modifiers) { 45 this.modifiers = modifiers; 46 } 47 48 /** 49 * getter for mouse modifiers 50 */ 51 public int getModifiers() { 52 return modifiers; 53 } 54 55 /** 56 * setter for mouse modifiers 57 */ 58 public void setModifiers(int modifiers) { 59 this.modifiers = modifiers; 60 } 61 62 /** 63 * check the mouse event modifiers against the 64 * instance member modifiers. Default implementation 65 * checks equality. Can be overridden to test with a mask 66 */ 67 public boolean checkModifiers(MouseEvent e) { 68 return e.getModifiers() == modifiers; 69 } 70 71 /** 72 * @return Returns the cursor. 73 */ 74 public Cursor getCursor() { 75 return cursor; 76 } 77 78 /** 79 * @param cursor The cursor to set. 80 */ 81 public void setCursor(Cursor cursor) { 82 this.cursor = cursor; 83 } 84 }