diff options
author | Rüdiger Timm <rt@openoffice.org> | 2005-01-31 08:46:30 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2005-01-31 08:46:30 +0000 |
commit | e76e2f3e7ec4133b568a35af281728d1f77e1306 (patch) | |
tree | e5655d4e6cbeb9ae44ee6f53737c25901db3f362 /avmedia/source/java/x11/SystemWindowAdapter.java | |
parent | dfc2b2b0ed4e4a73fd9e8c1f793ef531550986a6 (diff) |
INTEGRATION: CWS jre5issues (1.1.1.1.14); FILE MERGED
2004/12/02 16:41:32 ka 1.1.1.1.14.3: cleanup
2004/12/02 13:21:20 ka 1.1.1.1.14.2: #i37962#: make Solaris work with JRE1.5
2004/11/29 13:34:39 ka 1.1.1.1.14.1: #i37962#: added support for Java 1.5
Diffstat (limited to 'avmedia/source/java/x11/SystemWindowAdapter.java')
-rw-r--r-- | avmedia/source/java/x11/SystemWindowAdapter.java | 96 |
1 files changed, 86 insertions, 10 deletions
diff --git a/avmedia/source/java/x11/SystemWindowAdapter.java b/avmedia/source/java/x11/SystemWindowAdapter.java index 74ff77e9e3eb..1a7966df9412 100644 --- a/avmedia/source/java/x11/SystemWindowAdapter.java +++ b/avmedia/source/java/x11/SystemWindowAdapter.java @@ -55,23 +55,99 @@ * ************************************************************************/ -import sun.awt.*; -import com.sun.star.awt.*; +import java.awt.*; +import java.lang.reflect.*; public class SystemWindowAdapter { static public java.awt.Frame createFrame( int windowHandle ) { - java.awt.Frame aFrame; + String aOS = (String) System.getProperty( "os.name" ); + java.awt.Frame aFrame = null; - // we're initialized with the operating system window handle - // as the parameter. We then generate a dummy Java frame with - // that window as the parent, to fake a root window for the - // Java implementation. + if( aOS.startsWith( "SunOS" ) ) + { + try + { + Class aClass = Class.forName( "sun.awt.motif.MEmbeddedFrame" ); - // now, we're getting slightly system dependent here. - String os = (String) System.getProperty( "os.name" ); + if( aClass != null ) + { + try + { + Constructor aCtor = aClass.getConstructor( new Class[] { long.class, boolean.class } ); - return new sun.awt.motif.MEmbeddedFrame( windowHandle ); + if( aCtor != null ) + { + aFrame = (java.awt.Frame) aCtor.newInstance( new Object[] { new Long( windowHandle ), + new Boolean( false ) } ); + } + } + catch( Exception e ) + { + } + + if( aFrame == null ) + { + try + { + Constructor aCtor = aClass.getConstructor( new Class[] { long.class } ); + + if( aCtor != null ) + { + aFrame = (java.awt.Frame) aCtor.newInstance( new Object[] { new Long( windowHandle ) } ); + } + } + catch( Exception e ) + { + } + } + } + } + catch( Exception e ) + { + } + } + else + { + try + { + Class aClass = Class.forName( "sun.awt.motif.MEmbeddedFrame" ); + + if( aClass != null ) + { + Constructor aCtor = aClass.getConstructor( new Class[] { long.class } ); + + if( aCtor != null ) + { + aFrame = (java.awt.Frame) aCtor.newInstance( new Object[] { new Long( windowHandle ) } ); + } + } + } + catch( Exception e ) + { + } + + if( aFrame == null ) + { + try + { + Class aClass = Class.forName( "sun.awt.X11.XEmbeddedFrame" ); + + if( aClass != null ) + { + Constructor aCtor = aClass.getConstructor( new Class[] { long.class } ); + + if( aCtor != null ) + aFrame = (java.awt.Frame) aCtor.newInstance( new Object[] { new Long( windowHandle ) } ); + } + } + catch( Exception e ) + { + } + } + } + + return aFrame; } } |