summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2005-01-31 08:46:30 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2005-01-31 08:46:30 +0000
commite76e2f3e7ec4133b568a35af281728d1f77e1306 (patch)
treee5655d4e6cbeb9ae44ee6f53737c25901db3f362
parentdfc2b2b0ed4e4a73fd9e8c1f793ef531550986a6 (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
-rw-r--r--avmedia/source/java/x11/SystemWindowAdapter.java96
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;
}
}