You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2020/05/11 21:57:06 UTC
svn commit: r1877611 - in /pivot/trunk/wtk/src/org/apache/pivot/wtk:
Cursor.java Mouse.java
Author: rwhitcomb
Date: Mon May 11 21:57:06 2020
New Revision: 1877611
URL: http://svn.apache.org/viewvc?rev=1877611&view=rev
Log:
Do a better job encapsulating the correspondence between our
Cursor values and the AWT equivalents by moving the code into
the Cursor enum itself.
Modified:
pivot/trunk/wtk/src/org/apache/pivot/wtk/Cursor.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/Mouse.java
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Cursor.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Cursor.java?rev=1877611&r1=1877610&r2=1877611&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Cursor.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Cursor.java Mon May 11 21:57:06 2020
@@ -16,22 +16,59 @@
*/
package org.apache.pivot.wtk;
+import java.util.HashMap;
+import java.util.Map;
+
/**
- * Enumeration defining the supported mouse cursor types.
+ * Enumeration defining the supported mouse cursor types, and
+ * providing a mapping to the underlying {@link java.awt.Cursor} values.
*/
public enum Cursor {
- DEFAULT,
- HAND,
- TEXT,
- WAIT,
- CROSSHAIR,
- MOVE,
- RESIZE_NORTH,
- RESIZE_SOUTH,
- RESIZE_EAST,
- RESIZE_WEST,
- RESIZE_NORTH_EAST,
- RESIZE_NORTH_WEST,
- RESIZE_SOUTH_EAST,
- RESIZE_SOUTH_WEST
+ DEFAULT(java.awt.Cursor.DEFAULT_CURSOR),
+ HAND(java.awt.Cursor.HAND_CURSOR),
+ TEXT(java.awt.Cursor.TEXT_CURSOR),
+ WAIT(java.awt.Cursor.WAIT_CURSOR),
+ CROSSHAIR(java.awt.Cursor.CROSSHAIR_CURSOR),
+ MOVE(java.awt.Cursor.MOVE_CURSOR),
+ RESIZE_NORTH(java.awt.Cursor.N_RESIZE_CURSOR),
+ RESIZE_SOUTH(java.awt.Cursor.S_RESIZE_CURSOR),
+ RESIZE_EAST(java.awt.Cursor.E_RESIZE_CURSOR),
+ RESIZE_WEST(java.awt.Cursor.W_RESIZE_CURSOR),
+ RESIZE_NORTH_EAST(java.awt.Cursor.NE_RESIZE_CURSOR),
+ RESIZE_NORTH_WEST(java.awt.Cursor.NW_RESIZE_CURSOR),
+ RESIZE_SOUTH_EAST(java.awt.Cursor.SE_RESIZE_CURSOR),
+ RESIZE_SOUTH_WEST(java.awt.Cursor.SW_RESIZE_CURSOR);
+
+ private int cursorID;
+
+ /** Facilitate lookup of one of our values given the AWT equivalent. */
+ private static class Lookup {
+ /** Correspondence from the AWT cursor ID to our own. */
+ private static Map<Integer, Cursor> map = new HashMap<>();
+ }
+
+ Cursor(final int id) {
+ this.cursorID = id;
+ Lookup.map.put(id, this);
+ }
+
+ /**
+ * @return A {@link java.awt.Cursor} object corresponding to this {@code Cursor}.
+ */
+ public java.awt.Cursor getAWTCursor() {
+ return new java.awt.Cursor(cursorID);
+ }
+
+ /**
+ * @return One of our {@code Cursor} values given the {@link java.awt.Cursor} ID value.
+ * @param cursorID One of the {@link java.awt.Cursor} ID values to lookup.
+ */
+ public static Cursor getCursor(final int cursorID) {
+ Cursor cursor = Lookup.map.get(cursorID);
+ if (cursor != null) {
+ return cursor;
+ }
+ throw new IllegalArgumentException("Unknown mouse cursor type " + cursorID);
+
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Mouse.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Mouse.java?rev=1877611&r1=1877610&r2=1877611&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Mouse.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Mouse.java Mon May 11 21:57:06 2020
@@ -25,7 +25,7 @@ import org.apache.pivot.util.Utils;
*/
public final class Mouse {
/**
- * Private constructor for utility class.
+ * Private constructor since this is a utility class (all static methods).
*/
private Mouse() {
}
@@ -156,74 +156,10 @@ public final class Mouse {
throw new IllegalStateException("Mouse is not currently captured.");
}
- Cursor cursor = null;
-
Display display = capturer.getDisplay();
ApplicationContext.DisplayHost displayHost = display.getDisplayHost();
- int cursorID = displayHost.getCursor().getType();
- switch (cursorID) {
- case java.awt.Cursor.DEFAULT_CURSOR:
- cursor = Cursor.DEFAULT;
- break;
-
- case java.awt.Cursor.HAND_CURSOR:
- cursor = Cursor.HAND;
- break;
-
- case java.awt.Cursor.TEXT_CURSOR:
- cursor = Cursor.TEXT;
- break;
-
- case java.awt.Cursor.WAIT_CURSOR:
- cursor = Cursor.WAIT;
- break;
-
- case java.awt.Cursor.CROSSHAIR_CURSOR:
- cursor = Cursor.CROSSHAIR;
- break;
-
- case java.awt.Cursor.MOVE_CURSOR:
- cursor = Cursor.MOVE;
- break;
-
- case java.awt.Cursor.N_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_NORTH;
- break;
-
- case java.awt.Cursor.S_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_SOUTH;
- break;
-
- case java.awt.Cursor.E_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_EAST;
- break;
-
- case java.awt.Cursor.W_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_WEST;
- break;
-
- case java.awt.Cursor.NE_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_NORTH_EAST;
- break;
-
- case java.awt.Cursor.SW_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_SOUTH_WEST;
- break;
-
- case java.awt.Cursor.NW_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_NORTH_WEST;
- break;
-
- case java.awt.Cursor.SE_RESIZE_CURSOR:
- cursor = Cursor.RESIZE_SOUTH_EAST;
- break;
-
- default:
- throw new IllegalArgumentException("Unknown mouse cursor type " + cursorID);
- }
-
- return cursor;
+ return Cursor.getCursor(displayHost.getCursor().getType());
}
/**
@@ -242,7 +178,7 @@ public final class Mouse {
Display display = capturer.getDisplay();
ApplicationContext.DisplayHost displayHost = display.getDisplayHost();
- displayHost.setCursor(getCursor(cursor));
+ displayHost.setCursor(cursor.getAWTCursor());
}
/**
@@ -277,74 +213,7 @@ public final class Mouse {
Display display = componentOrParent.getDisplay();
ApplicationContext.DisplayHost displayHost = display.getDisplayHost();
displayHost.setCursor((cursor == null) ? java.awt.Cursor.getDefaultCursor()
- : getCursor(cursor));
+ : cursor.getAWTCursor());
}
}
-
- private static java.awt.Cursor getCursor(final Cursor cursor) {
- int cursorID = -1;
-
- switch (cursor) {
- case DEFAULT:
- cursorID = java.awt.Cursor.DEFAULT_CURSOR;
- break;
-
- case HAND:
- cursorID = java.awt.Cursor.HAND_CURSOR;
- break;
-
- case TEXT:
- cursorID = java.awt.Cursor.TEXT_CURSOR;
- break;
-
- case WAIT:
- cursorID = java.awt.Cursor.WAIT_CURSOR;
- break;
-
- case CROSSHAIR:
- cursorID = java.awt.Cursor.CROSSHAIR_CURSOR;
- break;
-
- case MOVE:
- cursorID = java.awt.Cursor.MOVE_CURSOR;
- break;
-
- case RESIZE_NORTH:
- cursorID = java.awt.Cursor.N_RESIZE_CURSOR;
- break;
-
- case RESIZE_SOUTH:
- cursorID = java.awt.Cursor.S_RESIZE_CURSOR;
- break;
-
- case RESIZE_EAST:
- cursorID = java.awt.Cursor.E_RESIZE_CURSOR;
- break;
-
- case RESIZE_WEST:
- cursorID = java.awt.Cursor.W_RESIZE_CURSOR;
- break;
-
- case RESIZE_NORTH_EAST:
- cursorID = java.awt.Cursor.NE_RESIZE_CURSOR;
- break;
-
- case RESIZE_SOUTH_WEST:
- cursorID = java.awt.Cursor.SW_RESIZE_CURSOR;
- break;
-
- case RESIZE_NORTH_WEST:
- cursorID = java.awt.Cursor.NW_RESIZE_CURSOR;
- break;
-
- case RESIZE_SOUTH_EAST:
- cursorID = java.awt.Cursor.SE_RESIZE_CURSOR;
- break;
-
- default:
- throw new IllegalArgumentException("Unknown mouse cursor type " + cursor.toString());
- }
-
- return new java.awt.Cursor(cursorID);
- }
}