blob: 1cc13e7d8443bd6448e9f5579d1d984fd196f1ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
public JAWT_PlatformInfo platformInfo() {
return newPlatformInfo(platformInfo0(getBuffer()));
}
private native ByteBuffer platformInfo0(Buffer jthis0);
private static java.lang.reflect.Method platformInfoFactoryMethod;
private static JAWT_PlatformInfo newPlatformInfo(ByteBuffer buf) {
if (platformInfoFactoryMethod == null) {
String osName = (String) AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
return System.getProperty("os.name").toLowerCase();
}
});
try {
Class factoryClass;
if (osName.startsWith("wind")) {
factoryClass = Class.forName("com.sun.nwi.impl.jawt.windows.JAWT_Win32DrawingSurfaceInfo");
} else if (osName.startsWith("mac os x")) {
factoryClass = Class.forName("com.sun.nwi.impl.jawt.macosx.JAWT_MacOSXDrawingSurfaceInfo");
} else {
// Assume Linux, Solaris, etc. Should probably test for these explicitly.
factoryClass = Class.forName("com.sun.nwi.impl.jawt.x11.JAWT_X11DrawingSurfaceInfo");
}
platformInfoFactoryMethod = factoryClass.getMethod("create",
new Class[] { ByteBuffer.class });
} catch (Exception e) {
throw new RuntimeException(e);
}
}
try {
return (JAWT_PlatformInfo)
platformInfoFactoryMethod.invoke(null, new Object[] { buf });
} catch (Exception e) {
throw new RuntimeException(e);
}
}
|