org.jdesktop.swingx.util
Class Utilities

java.lang.Object
  extended by org.jdesktop.swingx.util.Utilities

public class Utilities
extends Object

Contribution from NetBeans: Issue #319-swingx.

PENDING: need to reconcile with OS, JVM... added as-is because needed the shortcut handling to fix #


Field Summary
static int OS_AIX
          Operating system is IBM AIX.
static int OS_FREEBSD
          Operating system is FreeBSD
static int OS_HP
          Operating system is HP-UX.
static int OS_IRIX
          Operating system is SGI IRIX.
static int OS_LINUX
          Operating system is Linux.
static int OS_MAC
          Operating system is Mac.
static int OS_OS2
          Operating system is OS/2.
static int OS_OTHER
          Operating system is unknown.
static int OS_SOLARIS
          Operating system is Solaris.
static int OS_SUNOS
          Operating system is Sun OS.
static int OS_TRU64
          Operating system is Compaq TRU64 Unix
static int OS_UNIX_MASK
          A mask for Unix platforms.
static int OS_VMS
          Operating system is Compaq OpenVMS
static int OS_WIN_OTHER
          Operating system is one of the Windows variants but we don't know which one it is
static int OS_WIN2000
          Operating system is Windows 2000.
static int OS_WIN95
          Operating system is Windows 95.
static int OS_WIN98
          Operating system is Windows 98.
static int OS_WINDOWS_MASK
          A mask for Windows platforms.
static int OS_WINNT
          Operating system is Windows NT.
static int TYPICAL_WINDOWS_TASKBAR_HEIGHT
          A height of the windows's taskbar
 
Method Summary
static int getOperatingSystem()
          Get the operating system on which NetBeans is running.
static Rectangle getUsableScreenBounds()
          Returns the usable area of the screen where applications can place its windows.
static Rectangle getUsableScreenBounds(GraphicsConfiguration gconf)
          Returns the usable area of the screen where applications can place its windows.
static boolean isLargeFrameIcons()
          Test whether the operating system supports icons on frames (windows).
static boolean isUnix()
          Test whether NetBeans is running on some variant of Unix.
static boolean isWindows()
          Test whether NetBeans is running on some variant of Windows.
static String keyToString(KeyStroke stroke)
          Converts a Swing key stroke descriptor to a familiar Emacs-like name.
static KeyStroke stringToKey(String s)
          Construct a new key description from a given universal string description.
static KeyStroke[] stringToKeys(String s)
          Convert a space-separated list of Emacs-like key binding names to a list of Swing key strokes.
static Object[] toObjectArray(Object array)
          Convert an array of primitive types to an array of objects.
static Object toPrimitiveArray(Object[] array)
          Convert an array of objects to an array of primitive types.
static String[] wrapStringToArray(String original, int width, BreakIterator breakIterator, boolean removeNewLines)
          Wrap multi-line strings (and get the individual lines).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OS_WINNT

public static final int OS_WINNT
Operating system is Windows NT.

See Also:
Constant Field Values

OS_WIN95

public static final int OS_WIN95
Operating system is Windows 95.

See Also:
Constant Field Values

OS_WIN98

public static final int OS_WIN98
Operating system is Windows 98.

See Also:
Constant Field Values

OS_SOLARIS

public static final int OS_SOLARIS
Operating system is Solaris.

See Also:
Constant Field Values

OS_LINUX

public static final int OS_LINUX
Operating system is Linux.

See Also:
Constant Field Values

OS_HP

public static final int OS_HP
Operating system is HP-UX.

See Also:
Constant Field Values

OS_AIX

public static final int OS_AIX
Operating system is IBM AIX.

See Also:
Constant Field Values

OS_IRIX

public static final int OS_IRIX
Operating system is SGI IRIX.

See Also:
Constant Field Values

OS_SUNOS

public static final int OS_SUNOS
Operating system is Sun OS.

See Also:
Constant Field Values

OS_TRU64

public static final int OS_TRU64
Operating system is Compaq TRU64 Unix

See Also:
Constant Field Values

OS_OS2

public static final int OS_OS2
Operating system is OS/2.

See Also:
Constant Field Values

OS_MAC

public static final int OS_MAC
Operating system is Mac.

See Also:
Constant Field Values

OS_WIN2000

public static final int OS_WIN2000
Operating system is Windows 2000.

See Also:
Constant Field Values

OS_VMS

public static final int OS_VMS
Operating system is Compaq OpenVMS

See Also:
Constant Field Values

OS_WIN_OTHER

public static final int OS_WIN_OTHER
Operating system is one of the Windows variants but we don't know which one it is

See Also:
Constant Field Values

OS_OTHER

public static final int OS_OTHER
Operating system is unknown.

See Also:
Constant Field Values

OS_FREEBSD

public static final int OS_FREEBSD
Operating system is FreeBSD

Since:
4.50
See Also:
Constant Field Values

OS_WINDOWS_MASK

public static final int OS_WINDOWS_MASK
A mask for Windows platforms.

See Also:
Constant Field Values

OS_UNIX_MASK

public static final int OS_UNIX_MASK
A mask for Unix platforms.

See Also:
Constant Field Values

TYPICAL_WINDOWS_TASKBAR_HEIGHT

public static final int TYPICAL_WINDOWS_TASKBAR_HEIGHT
A height of the windows's taskbar

See Also:
Constant Field Values
Method Detail

getOperatingSystem

public static int getOperatingSystem()
Get the operating system on which NetBeans is running.

Returns:
one of the OS_* constants (such as OS_WINNT)

isWindows

public static boolean isWindows()
Test whether NetBeans is running on some variant of Windows.

Returns:
true if Windows, false if some other manner of operating system

isUnix

public static boolean isUnix()
Test whether NetBeans is running on some variant of Unix. Linux is included as well as the commercial vendors, and Mac OS X.

Returns:
true some sort of Unix, false if some other manner of operating system

isLargeFrameIcons

public static boolean isLargeFrameIcons()
Test whether the operating system supports icons on frames (windows).

Returns:
true if it does not

getUsableScreenBounds

public static Rectangle getUsableScreenBounds()
Returns the usable area of the screen where applications can place its windows. The method subtracts from the screen the area of taskbars, system menus and the like. The screen this method applies to is the one which is considered current, ussually the one where the current input focus is.

Returns:
the rectangle of the screen where one can place windows
Since:
2.5

getUsableScreenBounds

public static Rectangle getUsableScreenBounds(GraphicsConfiguration gconf)
Returns the usable area of the screen where applications can place its windows. The method subtracts from the screen the area of taskbars, system menus and the like.

Parameters:
gconf - the GraphicsConfiguration of the monitor
Returns:
the rectangle of the screen where one can place windows
Since:
2.5

keyToString

public static String keyToString(KeyStroke stroke)
Converts a Swing key stroke descriptor to a familiar Emacs-like name.

Parameters:
stroke - key description
Returns:
name of the key (e.g. CS-F1 for control-shift-function key one)
See Also:
stringToKey(java.lang.String)

stringToKey

public static KeyStroke stringToKey(String s)
Construct a new key description from a given universal string description. Provides mapping between Emacs-like textual key descriptions and the KeyStroke object used in Swing.

This format has following form:

[C][A][S][M]-identifier

Where:

The format also supports two wildcard codes, to support differences in platforms. These are the preferred choices for registering keystrokes, since platform conflicts will automatically be handled: If you use the wildcard characters, and specify a key which will conflict with keys the operating system consumes, it will be mapped to whichever choice can work - for example, on Macintosh, Command-Q is always consumed by the operating system, so D-Q will always map to Control-Q.

Every modifier before the hyphen must be pressed. identifier can be any text constant from KeyEvent but without the leading VK_ characters. So KeyEvent.VK_ENTER is described as ENTER.

Parameters:
s - the string with the description of the key
Returns:
key description object, or null if the string does not represent any valid key

stringToKeys

public static KeyStroke[] stringToKeys(String s)
Convert a space-separated list of Emacs-like key binding names to a list of Swing key strokes.

Parameters:
s - the string with keys
Returns:
array of key strokes, or null if the string description is not valid
See Also:
stringToKey(java.lang.String)

toPrimitiveArray

public static Object toPrimitiveArray(Object[] array)
Convert an array of objects to an array of primitive types. E.g. an Integer[] would be changed to an int[].

Parameters:
array - the wrapper array
Returns:
a primitive array
Throws:
IllegalArgumentException - if the array element type is not a primitive wrapper

toObjectArray

public static Object[] toObjectArray(Object array)
Convert an array of primitive types to an array of objects. E.g. an int[] would be turned into an Integer[].

Parameters:
array - the primitive array
Returns:
a wrapper array
Throws:
IllegalArgumentException - if the array element type is not primitive

wrapStringToArray

public static String[] wrapStringToArray(String original,
                                         int width,
                                         BreakIterator breakIterator,
                                         boolean removeNewLines)
Wrap multi-line strings (and get the individual lines).

Parameters:
original - the original string to wrap
width - the maximum width of lines
breakIterator - breaks original to chars, words, sentences, depending on what instance you provide.
removeNewLines - if true, any newlines in the original string are ignored
Returns:
the lines after wrapping