From: giwoong.kim Date: Fri, 23 Mar 2012 08:48:46 +0000 (+0900) Subject: [Title] added sdb shell menu X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~1751 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2fc4cca6e76c8fc91e315d08a136a3506f45c1bc;p=sdk%2Femulator%2Fqemu.git [Title] added sdb shell menu [Type] [Module] Emulator [Priority] [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] --- diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index 4b5edc8df3..f3c26bfa1d 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -88,6 +88,7 @@ import org.tizen.emulator.skin.log.SkinLogger; import org.tizen.emulator.skin.screenshot.ScreenShotDialog; import org.tizen.emulator.skin.util.SkinRegion; import org.tizen.emulator.skin.util.SkinRotation; +import org.tizen.emulator.skin.util.StringUtil; import org.tizen.emulator.skin.util.SkinRotation.RotationInfo; import org.tizen.emulator.skin.util.SkinUtil; @@ -674,27 +675,38 @@ public class EmulatorSkin { Menu advancedMenu = createAdvancedMenu( menu.getShell() ); advancedItem.setMenu( advancedMenu ); -// final MenuItem shellItem = new MenuItem( menu, SWT.PUSH ); -// shellItem.setText( "Shell" ); -// shellItem.setImage( imageRegistry.getIcon( IconName.SHELL ) ); -// shellItem.addSelectionListener( new SelectionAdapter() { -// @Override -// public void widgetSelected( SelectionEvent e ) { -// try { -// //TODO -// new ProcessBuilder("/usr/bin/gnome-terminal", "--disable-factory", "-x", -// "ssh", "-p", "1202", "root@localhost").start(); -// /*new ProcessBuilder("/usr/bin/gnome-terminal", "--disable-factory", "-x", -// "sdb", "shell").start();*/ -// } catch (Exception e2) { -// //TODO -// } -// -// communicator.sendToQEMU( SendCommand.OPEN_SHELL, null ); -// } -// } ); -// -// new MenuItem( menu, SWT.SEPARATOR ); + final MenuItem shellItem = new MenuItem( menu, SWT.PUSH ); + shellItem.setText( "Shell" ); + shellItem.setImage( imageRegistry.getIcon( IconName.SHELL ) ); + shellItem.addSelectionListener( new SelectionAdapter() { + @Override + public void widgetSelected( SelectionEvent e ) { + int portNumber = Integer.parseInt(StringUtil.nvl(config.getArg( ArgsConstants.NET_BASE_PORT ))) + 1; + String sdbPath = "./../../SDK/sdb/sdb"; //TOOD: + + try { + if (SkinUtil.isLinuxPlatform()) { + ProcessBuilder procConnect = new ProcessBuilder(sdbPath, "connect", "localhost:" + portNumber); + ProcessBuilder procSDB = new ProcessBuilder("/usr/bin/gnome-terminal", "--disable-factory", "-x", + sdbPath, "-s", "localhost:" + portNumber, "shell"); + + procConnect.start(); + procSDB.start(); + } else if (SkinUtil.isWindowsPlatform()) { + //TODO: + } + } catch (Exception e2) { + //TODO + MessageBox messageBox = new MessageBox( shell ); + messageBox.setMessage( "ERR" ); + messageBox.open(); + } + + communicator.sendToQEMU( SendCommand.OPEN_SHELL, null ); + } + } ); + + new MenuItem( menu, SWT.SEPARATOR ); MenuItem closeItem = new MenuItem( menu, SWT.PUSH ); closeItem.setText( "Close" ); @@ -926,6 +938,16 @@ public class EmulatorSkin { isShutdownRequested = true; + //close sdb shell + int portNumber = Integer.parseInt(StringUtil.nvl(config.getArg( ArgsConstants.NET_BASE_PORT ))) + 1; + String sdbPath = "./../../SDK/sdb/sdb"; //TOOD: + ProcessBuilder procDisconnect = new ProcessBuilder(sdbPath, "connect", "localhost:" + portNumber); + try { + procDisconnect.start(); + } catch (Exception e) { + //TODO + } + if ( !this.shell.isDisposed() ) { this.shell.getDisplay().asyncExec( new Runnable() { @Override