[Title] use reflection for Windows build, support usb on/off
authorSon Hyunjun <hj79.son@samsung.com>
Thu, 15 Mar 2012 08:43:55 +0000 (17:43 +0900)
committerSon Hyunjun <hj79.son@samsung.com>
Thu, 15 Mar 2012 08:43:55 +0000 (17:43 +0900)
[Type] Feature
[Module] Display/Skin
[Priority] Minor
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]

Change-Id: Ie9610296901673203e8eef50069aa67b93595d10

tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java

index 17deca6..927d790 100644 (file)
@@ -29,6 +29,7 @@
 
 package org.tizen.emulator.skin;
 
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -208,8 +209,27 @@ public class EmulatorSkin {
                // sdl uses this handle id.
                String platform = SWT.getPlatform();
                if( "gtk".equalsIgnoreCase( platform ) ) {
-                       System.out.println( "lcdCanvas.embeddedHandle:" + ghostCanvas.embeddedHandle );
-                       windowHandleId = ghostCanvas.embeddedHandle;
+                       try {
+                               Field field = ghostCanvas.getClass().getField( "embeddedHandle" );
+                               windowHandleId = field.getInt( ghostCanvas );
+                               System.out.println( "lcdCanvas.embeddedHandle:" + windowHandleId );
+                       } catch ( IllegalArgumentException e ) {
+                               e.printStackTrace();
+                               shutdown();
+                               return windowHandleId;
+                       } catch ( IllegalAccessException e ) {
+                               e.printStackTrace();
+                               shutdown();
+                               return windowHandleId;
+                       } catch ( SecurityException e ) {
+                               e.printStackTrace();
+                               shutdown();
+                               return windowHandleId;
+                       } catch ( NoSuchFieldException e ) {
+                               e.printStackTrace();
+                               shutdown();
+                               return windowHandleId;
+                       }
                }else if( "win32".equalsIgnoreCase( platform ) ) {
                        System.out.println( "lcdCanvas.handle:" + ghostCanvas.handle );
                        windowHandleId = ghostCanvas.handle;
@@ -1086,11 +1106,10 @@ public class EmulatorSkin {
 
                final MenuItem usbOnItem = new MenuItem( usbKeyBoardMenu, SWT.RADIO );
                usbOnItem.setText( "On" );
-               usbOnItem.setSelection( true );
-               // TODO enable use keyboard
 
                final MenuItem usbOffItem = new MenuItem( usbKeyBoardMenu, SWT.RADIO );
                usbOffItem.setText( "Off" );
+               usbOffItem.setSelection( true );
 
                SelectionAdapter usbSelectionAdaptor = new SelectionAdapter() {
                        @Override
@@ -1100,12 +1119,6 @@ public class EmulatorSkin {
                                        boolean on = item.equals( usbOnItem );
                                        communicator
                                                        .sendToQEMU( SendCommand.USB_KBD, new BooleanData( on, SendCommand.USB_KBD.toString() ) );
-                                       
-                                       //TODO
-                                       MessageBox messageBox = new MessageBox( shell, SWT.OK | SWT.APPLICATION_MODAL );
-                                       messageBox.setMessage( "Under construction..." );
-                                       messageBox.open();
-
                                }
 
                        }