• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Licensed to the Apache Software Foundation (ASF) under one or more
3  *  contributor license agreements.  See the NOTICE file distributed with
4  *  this work for additional information regarding copyright ownership.
5  *  The ASF licenses this file to You under the Apache License, Version 2.0
6  *  (the "License"); you may not use this file except in compliance with
7  *  the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17 /**
18  * @author Michael Danilov
19  * @version $Revision$
20  */
21 package java.awt.event;
22 
23 import java.awt.Component;
24 import java.awt.Point;
25 import java.awt.Toolkit;
26 
27 import org.apache.harmony.awt.internal.nls.Messages;
28 
29 /**
30  * This class is not supported in Android 1.0. It is merely provided to maintain
31  * interface compatibility with desktop Java implementations.
32  *
33  * @since Android 1.0
34  */
35 public class MouseEvent extends InputEvent {
36 
37     private static final long serialVersionUID = -991214153494842848L;
38 
39     public static final int MOUSE_FIRST = 500;
40 
41     public static final int MOUSE_LAST = 507;
42 
43     public static final int MOUSE_CLICKED = 500;
44 
45     public static final int MOUSE_PRESSED = 501;
46 
47     public static final int MOUSE_RELEASED = 502;
48 
49     public static final int MOUSE_MOVED = 503;
50 
51     public static final int MOUSE_ENTERED = 504;
52 
53     public static final int MOUSE_EXITED = 505;
54 
55     public static final int MOUSE_DRAGGED = 506;
56 
57     public static final int MOUSE_WHEEL = 507;
58 
59     public static final int NOBUTTON = 0;
60 
61     public static final int BUTTON1 = 1;
62 
63     public static final int BUTTON2 = 2;
64 
65     public static final int BUTTON3 = 3;
66 
67     private boolean popupTrigger;
68     private int clickCount;
69     private int button;
70     private int x;
71     private int y;
72 
getMouseModifiersText(int modifiers)73     public static String getMouseModifiersText(int modifiers) {
74         final StringBuffer text = new StringBuffer();
75 
76         if ((modifiers & META_MASK) != 0) {
77             text.append(Toolkit.getProperty("AWT.meta", "Meta")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
78         }
79         if ((modifiers & SHIFT_MASK) != 0) {
80             text.append(Toolkit.getProperty("AWT.shift", "Shift")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
81         }
82         if ((modifiers & CTRL_MASK) != 0) {
83             text.append(Toolkit.getProperty("AWT.control", "Ctrl")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
84         }
85         if ((modifiers & ALT_MASK) != 0) {
86             text.append(Toolkit.getProperty("AWT.alt", "Alt")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
87         }
88         if ((modifiers & ALT_GRAPH_MASK) != 0) {
89             text.append(Toolkit.getProperty("AWT.altGraph", "Alt Graph")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
90         }
91         if ((modifiers & BUTTON1_MASK) != 0) {
92             text.append(Toolkit.getProperty("AWT.button1", "Button1")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
93         }
94         if ((modifiers & BUTTON2_MASK) != 0) {
95             text.append(Toolkit.getProperty("AWT.button2", "Button2")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
96         }
97         if ((modifiers & BUTTON3_MASK) != 0) {
98             text.append(Toolkit.getProperty("AWT.button3", "Button3")).append("+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
99         }
100 
101         return text.length() == 0 ? text.toString() : text.substring(0, text
102                 .length() - 1);
103     }
104 
addMouseModifiersExText(String text, int modifiersEx)105     static String addMouseModifiersExText(String text, int modifiersEx) {
106         if ((modifiersEx & InputEvent.BUTTON1_DOWN_MASK) != 0) {
107             text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
108                     Toolkit.getProperty("AWT.button1", "Button1"); //$NON-NLS-1$ //$NON-NLS-2$
109         }
110         if ((modifiersEx & InputEvent.BUTTON2_DOWN_MASK) != 0) {
111             text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
112                     Toolkit.getProperty("AWT.button2", "Button2"); //$NON-NLS-1$ //$NON-NLS-2$
113         }
114         if ((modifiersEx & InputEvent.BUTTON3_DOWN_MASK) != 0) {
115             text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
116                     Toolkit.getProperty("AWT.button3", "Button3"); //$NON-NLS-1$ //$NON-NLS-2$
117         }
118 
119         return text;
120     }
121 
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)122     public MouseEvent(Component source, int id, long when,
123                       int modifiers, int x, int y,
124                       int clickCount, boolean popupTrigger) {
125         this(source, id, when, modifiers, x, y,
126              clickCount, popupTrigger, NOBUTTON);
127     }
128 
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)129     public MouseEvent(Component source, int id, long when,
130                       int modifiers, int x, int y,
131                       int clickCount, boolean popupTrigger, int button) {
132         super(source, id, when, modifiers);
133 
134         if ((button != NOBUTTON) && (button != BUTTON1) &&
135                 (button != BUTTON2) && (button != BUTTON3)) {
136             // awt.18B=Invalid button value
137             throw new IllegalArgumentException(Messages.getString("awt.18B")); //$NON-NLS-1$
138         }
139 
140         this.popupTrigger = popupTrigger;
141         this.clickCount = clickCount;
142         this.button = button;
143         this.x = x;
144         this.y = y;
145     }
146 
getButton()147     public int getButton() {
148         return button;
149     }
150 
getClickCount()151     public int getClickCount() {
152         return clickCount;
153     }
154 
getPoint()155     public Point getPoint() {
156         return new Point(x, y);
157     }
158 
getX()159     public int getX() {
160         return x;
161     }
162 
getY()163     public int getY() {
164         return y;
165     }
166 
isPopupTrigger()167     public boolean isPopupTrigger() {
168         return popupTrigger;
169     }
170 
translatePoint(int x, int y)171     public void translatePoint(int x, int y) {
172         this.x += x;
173         this.y += y;
174     }
175 
176     @Override
paramString()177     public String paramString() {
178         /* The format is based on 1.5 release behavior
179          * which can be revealed by the following code:
180          *
181          * MouseEvent e = new MouseEvent(new Component(){},
182          *          MouseEvent.MOUSE_PRESSED, 0,
183          *          MouseEvent.BUTTON1_DOWN_MASK|MouseEvent.CTRL_DOWN_MASK,
184          *          10, 20, 1, false, MouseEvent.BUTTON1);
185          * System.out.println(e);
186          */
187 
188         String idString = null;
189         String paramString = null;
190 
191         switch (id) {
192         case MOUSE_MOVED:
193             idString = "MOUSE_MOVED"; //$NON-NLS-1$
194             break;
195         case MOUSE_CLICKED:
196             idString = "MOUSE_CLICKED"; //$NON-NLS-1$
197             break;
198         case MOUSE_PRESSED:
199             idString = "MOUSE_PRESSED"; //$NON-NLS-1$
200             break;
201         case MOUSE_RELEASED:
202             idString = "MOUSE_RELEASED"; //$NON-NLS-1$
203             break;
204         case MOUSE_DRAGGED:
205             idString = "MOUSE_DRAGGED"; //$NON-NLS-1$
206             break;
207         case MOUSE_ENTERED:
208             idString = "MOUSE_ENTERED"; //$NON-NLS-1$
209             break;
210         case MOUSE_EXITED:
211             idString = "MOUSE_EXITED"; //$NON-NLS-1$
212             break;
213         case MOUSE_WHEEL:
214             idString = "MOUSE_WHEEL"; //$NON-NLS-1$
215             break;
216         default:
217             idString = "unknown type"; //$NON-NLS-1$
218         }
219 
220         paramString = idString + ",(" + getX() + "," + getY() + ")" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
221                 ",button=" + button; //$NON-NLS-1$
222         if (getModifiersEx() > 0) {
223             paramString +=
224                     ",modifiers=" + getModifiersExText(getModifiersEx()) + //$NON-NLS-1$
225                     ",extModifiers=" + getModifiersExText(getModifiersEx()); //$NON-NLS-1$
226         }
227         paramString += ",clickCount=" + getClickCount(); //$NON-NLS-1$
228 
229         return paramString;
230     }
231 
232 }
233