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 }