From d7cab36cba32f895aeae26fa3348b7b85bc8f61c Mon Sep 17 00:00:00 2001 From: "minkee.lee" Date: Tue, 14 Apr 2015 13:45:03 +0900 Subject: [PATCH] Source: Removed plugin-project. - Moved to 'emulator-manager-resources' project. Change-Id: Id8a1fa95a5a33db8c313107039603648aaa866bb Signed-off-by: minkee.lee --- VERSION | 1 - build.xml | 137 +---- common-project/.classpath | 4 +- package/build.linux | 17 - package/build.macos-64 | 14 - package/build.windows | 14 - package/pkginfo.manifest | 48 +- plugin-project/mobile-plugin/.classpath | 8 - plugin-project/mobile-plugin/.project | 17 - .../mobile-plugin/res/mobile-2.4_add_new_hover.gif | Bin 1592 -> 0 bytes .../mobile-plugin/res/mobile-2.4_add_new_nml.gif | Bin 1591 -> 0 bytes .../res/mobile-2.4_add_new_pushed.gif | Bin 1540 -> 0 bytes .../res/mobile-2.4_button_launch_dis.gif | Bin 725 -> 0 bytes .../res/mobile-2.4_button_launch_hover.gif | Bin 1221 -> 0 bytes .../res/mobile-2.4_button_launch_nml.gif | Bin 1210 -> 0 bytes .../res/mobile-2.4_button_launch_pushed.gif | Bin 459 -> 0 bytes .../res/mobile-2.4_emulator_list_image_hover.gif | Bin 2016 -> 0 bytes .../res/mobile-2.4_emulator_list_image_new_ani.gif | Bin 24847 -> 0 bytes .../res/mobile-2.4_emulator_list_image_nml.gif | Bin 1941 -> 0 bytes .../res/mobile-2.4_emulator_list_selected.gif | Bin 818 -> 0 bytes .../manager/mobile/ui/detail/ItemListFactory.java | 153 ------ .../manager/mobile/ui/detail/TDisplayItem.java | 537 ------------------- .../manager/mobile/ui/detail/TFileShareItem.java | 343 ------------ .../manager/mobile/ui/detail/THWSupportItem.java | 386 ------------- .../manager/mobile/ui/detail/TNFCItem.java | 205 ------- .../manager/mobile/ui/detail/TNameTextItem.java | 485 ----------------- .../manager/mobile/ui/detail/TRAMItem.java | 176 ------ .../mobile/ui/detail/TSupportSuspendItem.java | 155 ------ .../manager/mobile/ui/detail/TTouchPointItem.java | 111 ---- .../manager/mobile/ui/detail/VMResources.java | 290 ---------- .../manager/mobile/ui/widget/VMButtonPainter.java | 107 ---- .../emulator/manager/mobile/vms/Launcher.java | 581 -------------------- .../emulator/manager/mobile/vms/VMWorker.java | 41 -- plugin-project/wearable-plugin/.classpath | 8 - plugin-project/wearable-plugin/.project | 17 - .../res/wearable-2.4_add_new_hover.gif | Bin 1592 -> 0 bytes .../res/wearable-2.4_add_new_nml.gif | Bin 1591 -> 0 bytes .../res/wearable-2.4_add_new_pushed.gif | Bin 1540 -> 0 bytes .../res/wearable-2.4_button_launch_dis.gif | Bin 725 -> 0 bytes .../res/wearable-2.4_button_launch_hover.gif | Bin 1221 -> 0 bytes .../res/wearable-2.4_button_launch_nml.gif | Bin 1210 -> 0 bytes .../res/wearable-2.4_button_launch_pushed.gif | Bin 459 -> 0 bytes .../res/wearable-2.4_emulator_list_image_hover.gif | Bin 2016 -> 0 bytes .../wearable-2.4_emulator_list_image_new_ani.gif | Bin 24847 -> 0 bytes .../res/wearable-2.4_emulator_list_image_nml.gif | Bin 1941 -> 0 bytes .../res/wearable-2.4_emulator_list_selected.gif | Bin 818 -> 0 bytes .../wearable/ui/detail/ItemListFactory.java | 76 --- .../manager/wearable/ui/detail/TDisplayItem.java | 522 ------------------ .../manager/wearable/ui/detail/TFileShareItem.java | 338 ------------ .../manager/wearable/ui/detail/THWSupportItem.java | 384 ------------- .../manager/wearable/ui/detail/TNameTextItem.java | 482 ----------------- .../manager/wearable/ui/detail/TRAMItem.java | 175 ------ .../wearable/ui/detail/TTouchPointItem.java | 111 ---- .../manager/wearable/ui/detail/VMResources.java | 228 -------- .../wearable/ui/widget/VMButtonPainter.java | 107 ---- .../emulator/manager/wearable/vms/Launcher.java | 594 --------------------- .../emulator/manager/wearable/vms/VMWorker.java | 41 -- template/w-x86-standard-template.xml | 79 --- template/w-x86-standard.xml | 48 -- template/x86-standard-template.xml | 86 --- template/x86-standard.xml | 52 -- 61 files changed, 19 insertions(+), 7159 deletions(-) delete mode 100644 VERSION delete mode 100644 plugin-project/mobile-plugin/.classpath delete mode 100644 plugin-project/mobile-plugin/.project delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_add_new_hover.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_add_new_nml.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_add_new_pushed.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_button_launch_dis.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_button_launch_hover.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_button_launch_nml.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_button_launch_pushed.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_hover.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_new_ani.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_nml.gif delete mode 100644 plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_selected.gif delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/ItemListFactory.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TDisplayItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TFileShareItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/THWSupportItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNFCItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNameTextItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TRAMItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TSupportSuspendItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TTouchPointItem.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/VMResources.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/widget/VMButtonPainter.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/Launcher.java delete mode 100644 plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/VMWorker.java delete mode 100644 plugin-project/wearable-plugin/.classpath delete mode 100644 plugin-project/wearable-plugin/.project delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_add_new_hover.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_add_new_nml.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_add_new_pushed.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_button_launch_dis.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_button_launch_hover.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_button_launch_nml.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_button_launch_pushed.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_hover.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_new_ani.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_nml.gif delete mode 100644 plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_selected.gif delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/ItemListFactory.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TDisplayItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TFileShareItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/THWSupportItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TNameTextItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TRAMItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TTouchPointItem.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/VMResources.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/widget/VMButtonPainter.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/Launcher.java delete mode 100644 plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/VMWorker.java delete mode 100644 template/w-x86-standard-template.xml delete mode 100644 template/w-x86-standard.xml delete mode 100644 template/x86-standard-template.xml delete mode 100644 template/x86-standard.xml diff --git a/VERSION b/VERSION deleted file mode 100644 index c40ed68..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -2.1.0 RC7 diff --git a/build.xml b/build.xml index ec8b13a..9131cbf 100644 --- a/build.xml +++ b/build.xml @@ -10,25 +10,8 @@ - - - - - - - - - - - - - - - - - - + @@ -37,17 +20,10 @@ - - - - - - + - - @@ -68,11 +44,11 @@ - - + + - + @@ -81,84 +57,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -169,42 +84,16 @@ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/common-project/.classpath b/common-project/.classpath index 484d8e3..75f1945 100644 --- a/common-project/.classpath +++ b/common-project/.classpath @@ -4,10 +4,10 @@ - - + + diff --git a/package/build.linux b/package/build.linux index 1279820..23db4fb 100755 --- a/package/build.linux +++ b/package/build.linux @@ -13,9 +13,6 @@ build() { cd $SRCDIR ant -buildfile build.xml -Dclasspath.dibs=${ROOTDIR}/tools/emulator/bin make-jar-dibs - #ant -buildfile common-project/build.xml -Dclasspath.dibs=${ROOTDIR}/tools/emulator/bin make-jar-dibs - #ant -buildfile plugin-project/mobile-plugin/build.xml -Dclasspath.dibs=${ROOTDIR}/tools/emulator/bin -Dem.dir=${SRCDIR}/common-project make-jar-dibs - #ant -buildfile plugin-project/ivi-plugin/build.xml -Dclasspath.dibs=${ROOTDIR}/tools/emulator/bin -Dem.dir=${SRCDIR}/common-project make-jar-dibs } # install @@ -30,20 +27,6 @@ install() cp $SRCDIR/common-project/supplement/emulator-manager.sh $BIN_DIR/bin/emulator-manager cp $SRCDIR/common-project/supplement/em-cli.sh $BIN_DIR/bin/em-cli cp $SRCDIR/common-project/resource/res/em.ico $BIN_DIR/icons - - RESOURCES_DIR=$SRCDIR/package/mobile-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/mobile-2.4/emulator-resources - mkdir -p $RESOURCES_DIR/template - mkdir -p $RESOURCES_DIR/plugins - cp $SRCDIR/template/x86-standard.xml $RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/x86-standard-template.xml $RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/mobile-plugin/em-plugin.jar $RESOURCES_DIR/plugins/em-plugin.jar - - W_RESOURCES_DIR=$SRCDIR/package/wearable-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/wearable-2.4/emulator-resources - mkdir -p $W_RESOURCES_DIR/template - mkdir -p $W_RESOURCES_DIR/plugins - cp $SRCDIR/template/w-x86-standard.xml $W_RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/w-x86-standard-template.xml $W_RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/wearable-plugin/em-plugin.jar $W_RESOURCES_DIR/plugins/em-plugin.jar } [ "$1" = "clean" ] && clean diff --git a/package/build.macos-64 b/package/build.macos-64 index 91603ee..994e321 100755 --- a/package/build.macos-64 +++ b/package/build.macos-64 @@ -53,20 +53,6 @@ install() fi mv $SRCDIR/emulator-manager.app $BIN_DIR/bin - - RESOURCES_DIR=$SRCDIR/package/mobile-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/mobile-2.4/emulator-resources - mkdir -p $RESOURCES_DIR/template - mkdir -p $RESOURCES_DIR/plugins - cp $SRCDIR/template/x86-standard.xml $RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/x86-standard-template.xml $RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/mobile-plugin/em-plugin.jar $RESOURCES_DIR/plugins/em-plugin.jar - - W_RESOURCES_DIR=$SRCDIR/package/wearable-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/wearable-2.4/emulator-resources - mkdir -p $W_RESOURCES_DIR/template - mkdir -p $W_RESOURCES_DIR/plugins - cp $SRCDIR/template/w-x86-standard.xml $W_RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/w-x86-standard-template.xml $W_RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/wearable-plugin/em-plugin.jar $W_RESOURCES_DIR/plugins/em-plugin.jar } [ "$1" = "clean" ] && clean diff --git a/package/build.windows b/package/build.windows index 6a513fb..0c2fc9e 100755 --- a/package/build.windows +++ b/package/build.windows @@ -108,20 +108,6 @@ install() cp $SRCDIR/emulator-manager.exe $BIN_DIR/bin/emulator-manager.exe cp $SRCDIR/common-project/supplement/em-cli.bat $BIN_DIR/bin/em-cli.bat cp $SRCDIR/common-project/resource/res/em.ico $BIN_DIR/icons - - RESOURCES_DIR=$SRCDIR/package/mobile-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/mobile-2.4/emulator-resources - W_RESOURCES_DIR=$SRCDIR/package/wearable-2.4-emulator-manager-resources.package.$TARGET_OS/data/platforms/wearable-2.4/emulator-resources - mkdir -p $RESOURCES_DIR/template - mkdir -p $RESOURCES_DIR/plugins - mkdir -p $W_RESOURCES_DIR/template - mkdir -p $W_RESOURCES_DIR/plugins - - cp $SRCDIR/template/x86-standard.xml $RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/x86-standard-template.xml $RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/mobile-plugin/em-plugin.jar $RESOURCES_DIR/plugins/em-plugin.jar - cp $SRCDIR/template/w-x86-standard.xml $W_RESOURCES_DIR/template/x86-standard.xml - cp $SRCDIR/template/w-x86-standard-template.xml $W_RESOURCES_DIR/template/x86-standard-template.xml - mv $SRCDIR/plugin-project/wearable-plugin/em-plugin.jar $W_RESOURCES_DIR/plugins/em-plugin.jar } [ "$1" = "clean" ] && clean diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index f372fed..184c5d3 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -5,63 +5,23 @@ Maintainer: MinKee Lee Package: emulator-manager OS: ubuntu-32 Build-host-os: ubuntu-32 -Build-dependency: emulator-lib [ ubuntu-32 ] +Build-dependency: emulator-manager-lib Description: Tizen Emulator Manager Package: emulator-manager OS: ubuntu-64 Build-host-os: ubuntu-64 -Build-dependency: emulator-lib [ ubuntu-64 ] +Build-dependency: emulator-manager-lib Description: Tizen Emulator Manager Package: emulator-manager OS: windows-32, windows-64 Build-host-os: windows-32 -Build-dependency: emulator-lib-dev [ windows-32 ], emulator-lib [ windows-32 ] +Build-dependency: emulator-lib-dev [ windows-32 ], emulator-manager-lib [ windows-32 ] Description: Tizen Emulator Manager Package: emulator-manager OS: macos-64 Build-host-os: macos-64 -Build-dependency: emulator-lib [ macos-64 ] +Build-dependency: emulator-manager-lib Description: Tizen Emulator Manager - -Package: mobile-2.4-emulator-manager-resources -OS: ubuntu-32 -Build-host-os: ubuntu-32 -Description: Emulator Manager Platform Resources - -Package: mobile-2.4-emulator-manager-resources -OS: ubuntu-64 -Build-host-os: ubuntu-64 -Description: Emulator Manager Platform Resources - -Package: mobile-2.4-emulator-manager-resources -OS: windows-32, windows-64 -Build-host-os: windows-32 -Description: Emulator Manager Platform Resources - -Package: mobile-2.4-emulator-manager-resources -OS: macos-64 -Build-host-os: macos-64 -Description: Emulator Manager Platform Resources - -Package: wearable-2.4-emulator-manager-resources -OS: ubuntu-32 -Build-host-os: ubuntu-32 -Description: Emulator Manager Platform Resources - -Package: wearable-2.4-emulator-manager-resources -OS: ubuntu-64 -Build-host-os: ubuntu-64 -Description: Emulator Manager Platform Resources - -Package: wearable-2.4-emulator-manager-resources -OS: windows-32, windows-64 -Build-host-os: windows-32 -Description: Emulator Manager Platform Resources - -Package: wearable-2.4-emulator-manager-resources -OS: macos-64 -Build-host-os: macos-64 -Description: Emulator Manager Platform Resources diff --git a/plugin-project/mobile-plugin/.classpath b/plugin-project/mobile-plugin/.classpath deleted file mode 100644 index 3b8e13c..0000000 --- a/plugin-project/mobile-plugin/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/plugin-project/mobile-plugin/.project b/plugin-project/mobile-plugin/.project deleted file mode 100644 index 9f30fd3..0000000 --- a/plugin-project/mobile-plugin/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - mobile-plugin - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/plugin-project/mobile-plugin/res/mobile-2.4_add_new_hover.gif b/plugin-project/mobile-plugin/res/mobile-2.4_add_new_hover.gif deleted file mode 100644 index 702f2423dcea701d3ea61921a7b2edf1212b27b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1592 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 diff --git a/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_hover.gif b/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_hover.gif deleted file mode 100644 index e70294ff142ee04e593737b71ebf2b7a2de2ea38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 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 B@vZ;> diff --git a/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_nml.gif b/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_image_nml.gif deleted file mode 100644 index 56d61f53c9d611cbfd4a282f5ecee179311ec90f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1941 zcmd6k`9Bj51IOnYxq2M0ax9jkIc9yGL&#CtV#s}uBqBwLNFL`HBWIfBzQ-6d$Hsia za<)qPQha^WG&00cRNC|O{1wmVhxgC#_v>Siyku$?904c-Z~(u@=krl+Ui9bF^<8v) z3&j^5Vq$Kgs&U5D(#9w7YDHU5ReN70sTbkoigb2srZSw|z1@8S-FyPb1EU^(=q|?d z&Os)fIbBbp)V6m1J1wJ}*j?92Yoan*`~K`7o$4Ez>>ZxahUx46VW?+d{IrcqXzi}; zq*ZtHRkioREzUPl2YZGmh*Ua_Ib~{P1Glu+f&GDWc11W{u}8U(2S<&~&UyNyJ^TWF zgF?ImgI~@qta3Lw>l;KW4Xg=KgJ?sbFrBmdP<=x~Q*#8$`K&QqA8rOSG%_+X-`?IH z9v&uQg%07UsI0%_?PnV76>Y)&pNFCSxdT3Do{ z^l{k}d^zE1MP;S%X)COS2$=SSncj3M5*%9n?CL7`~lAZiMTeuxa*IS8zel}{_YK9H-38Xb_;zk zp=nEVVD?M!K(xq2==AJ%NG$d>tWomKPUvW%kRxZ~4KM62UgWHa>$4Q@964mF5=D>O z5EHz^U3x+9z5TbeC%~-Cm-j)br&t%Q;y3(d_0_{Muu7tlG-sYN=9zMi7Qc49S=5B# zML*nN4Yl(10y}1Qw~OzhovY#>Fu$<5Wfcqt|3~?!-hWbd55K8Kyp=NfkanbqP)#8o z(;~>BjBJ)OPh4LcO%pLc0H?9Bjo>I$pXWy`u-f}$id15=O2!IOK{?Z5Hk_TOEjwS4 z%YCMGH9|IpNzA7vzquS-6qc34rQ&hq?N0K6Gg7kTkkGdkDxlD%dD z#aR2=O}ln6bV+c|vDycMZ{sw}!j%+NpF~-~8*yZOOK4s!@rDW^Vg2w-atsjLa5G@Z zXDv4i_#_;Ug643F)3*+^Vjno^ER@1A5lspAZ@u?x5*^3a-+;wk_4rg5t7$x$@sM;m8Py`&62ls6WU_7qTdwE#0 zss%K3^xiLYIKsfchCebP;~(Aq4Y){T-Zh}N6M$Ls`pi~eTuhYG?WFDQR9G8%TCizh zbNnk3x80xv_c!b}EuP*PwfOdw{Ss)6qYQO49P7gBdMWQwHAnEoVrRP}%8Ub7au*N& zG0mH`9fHCt4riXkNq`Io_h-IqnkK+R;N;k!_RqfvU&w}Q3ZV;ix?#Kiu>FVHK8cvR`^0G|NX&i7QJWrGq5_J7FqFtwZwir^*lp> zGUxPTlLC22;r5s2f1|hU{_5uxsH0ZbuKlQ_$xXxm`H3e<@S!`MeEPsHO9Gq3BhQ&= ze4Uq29OUnrr8`CLqtM5HVH`G`7`(%x^8@eJ?jHWg;|<+P?%8K=4Q)D(SN&=ptDjYL zxhEc-26*U3TfyB<9pnZ!f=w;ISFEPW->iPW2(gx80n-&rKD3(7+sGJ*W}IF`_kD*G zHWOIsWSd~|W8Y`ieRLiEPGKk8LcUg3 zJKm}g6_f0^_*4L6$^=@yz9+SE^<+$6uP!Vmx?6^=ka_^0ODc@da$_qMdS5cEjEU(g zWP?7(SD3%wfiI_?x^wklY)u2;AzE!Cy@;?iWC4I9sR1^a=<>@}m_*?#wi5UaN{XAryY6q&W$pZHJ%qWUz~yVjG}yJ4jC!?{PLx6BdI-`fc$Z&%XI|HVkQr zmUeqQD#y_eKw5;rD5d3Y97DGjvoI&Q((;8B+C|L?&>Du+Q`?5}6Cz#iC6m87h ze2NL)!s@2p5FLj*vJasEK_zgi#W}@7tkIv!AjC6Ke{#C|#;&3Lyp82n;Un9hY6>dg z=Mwq)c{#p&wF;p?U|_V=@$huzEG?$CYjAE+`Ch$Ng9t44S?+}kwL(?dEskNA-SBbN o@{h(_oZ=_nRDR!UvX&ycWL=)ERoZVxpop$zlkOLV1p(*&10LdbJ^%m! diff --git a/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_selected.gif b/plugin-project/mobile-plugin/res/mobile-2.4_emulator_list_selected.gif deleted file mode 100644 index c4194f71d8409b54828a571bb3f3692fb3642a56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmZ?wbhEHb%ww3waFqcB{{R2a;MMTq%a1SLe|`S;^UvRZ645=1i4zQRW|$Sswk(?C zQM)9tc}3Ceopp=%?>cvP?}dB!U%Y4bX=L?l;t6i!3uzY$?-Y&fQc0Pll`+-6e7^XE6OWcM zlQ`?FB}`AI5|cb9liH?TyUWy=I7OH=_Z&Iu#LOh-dF;#{@3R*+ zp1*iy$>pmzdamERQ+fODgOd9XpF}@?`t{p<&HuliT|FPCRtRh0Lic*Lr#ns3gJ=7vyR}+wO%0tI z?w_W*(=;W#Ki<6UsKvIV$j)^6WvM&N5~G{**^jYWY>$tvEr0)X>2~wD`11PetZwEO zch4;<=b9XR=AFSKtDb|dbgTe5N#6oBh=u<1aI=>c;D9 z*8aNirhmIPbAN=*sdx8s7k|(D7xH`R>*f3PP46#l_%h+7_}cZI^=kiTFjRClSRGw1 z)423y`;;ax!xJG!Ogs(qWmq>9dg}=nJ@jT;yJwRBL$NJ23|wrBYgRZhN~~GLq$)dO zg%kT+4n@Z<8JQ+|t|J$V{h{a7=_+*k#*h9z8LWc(pOuk{6 Ps*+q542 - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import java.util.List; - -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.ui.detail.item.CommonItemListFactory; -import org.tizen.emulator.manager.ui.detail.item.IViewItem; -import org.tizen.emulator.manager.ui.detail.item.ItemType; -import org.tizen.emulator.manager.ui.detail.item.LineLabelViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.CheckLabelViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.ComboViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.FileViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.LabelViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.OnOffViewItem; -import org.tizen.emulator.manager.ui.detail.item.template.TextViewItem; -import org.tizen.emulator.manager.vms.helper.CheckingRunningEmulator; -import org.tizen.emulator.manager.vms.xml.template.DeviceList; -import org.tizen.emulator.manager.vms.xml.template.Item; -import org.tizen.emulator.manager.vms.xml.template.ItemList; - -public class ItemListFactory extends CommonItemListFactory { - - private static String ITEM_EXPERIMENTAL = "experimental"; - - private static void makeItemListOld(List list) { - List itemList = (List)list; - - itemList.add(new TNameTextItem()); - itemList.add(new TDisplayItem()); - itemList.add(new TRAMItem()); - itemList.add(new TTouchPointItem()); - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - itemList.add(new TSupportSuspendItem()); - } - - itemList.add(new TFileShareItem()); - itemList.add(new THWSupportItem()); - - } - - @Override - public void makeItemList(List itemList, - ItemList template) { - if (template == null) { - makeItemListOld(itemList); // TODO old - } else { - makePropertyItemList(itemList, template.getPropertyList(), template.getProfile(), true); - makeDeviceItemList(itemList, template.getDeviceList()); - - } - } - - // Override if need - public void makeDeviceItemList(List list, DeviceList deviceList) { - - if (deviceList != null) { - List itemList = (List)list; - List deviceItemList = deviceList.getItem(); - LineLabelViewItem currentLineLabel = null; // Top categorizing item - boolean isExperimentalItem = false; - - for (Item item : deviceItemList) { - String type = item.getType(); - String name = item.getName(); - - if (isExperimentalItem && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) { - continue; - } - - if (name.equals(CheckingRunningEmulator.OPTION_VIEWER)) { - if (EmulatorManager.isLinux()) { - itemList.add(new LabelViewItem(item, currentLineLabel)); - } - continue; - } - - if (type.equals(ItemType.LINE_LABEL.getName())) { // Top categorizing item - if (name.equals(ITEM_EXPERIMENTAL)) { - isExperimentalItem = true; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - currentLineLabel = new LineLabelViewItem(item); - itemList.add(currentLineLabel); - } - } else { - currentLineLabel = new LineLabelViewItem(item); - itemList.add(currentLineLabel); - isExperimentalItem = false; - } - - } else if (type.equals(ItemType.TOGGLE.getName())) { - itemList.add(new OnOffViewItem(item, currentLineLabel)); - - } else if (type.equals(ItemType.LABEL.getName())) { - itemList.add(new LabelViewItem(item, currentLineLabel)); - - } else if (type.equals(ItemType.COMBO.getName())) { - itemList.add(new ComboViewItem(item, currentLineLabel)); - - } else if (type.equals(ItemType.FILE.getName())) { - itemList.add(new FileViewItem(item, currentLineLabel)); - - } else if (type.equals(ItemType.CHECK_LABEL.getName())) { - itemList.add(new CheckLabelViewItem(item, currentLineLabel)); - - } else if (type.equals(ItemType.TEXT.getName())) { - itemList.add(new TextViewItem(item, currentLineLabel)); - } - } - } - } - - - @Override - public void makeCustomItemList(List itemList, - List templateList) { - if (templateList == null || templateList.size() == 0) { - makeItemListOld(itemList); // TODO old - } else { - - makeCustomDeviceItemList(itemList, templateList); - } - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TDisplayItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TDisplayItem.java deleted file mode 100644 index 87cfe7a..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TDisplayItem.java +++ /dev/null @@ -1,537 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; -import java.util.ArrayList; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyAdapter; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Spinner; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.platform.Skin; -import org.tizen.emulator.manager.platform.SkinList; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.detail.item.ItemChangeState; -import org.tizen.emulator.manager.ui.widgets.ImageCombo; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.RESOLUTION; -import org.tizen.emulator.manager.vms.SKIN_TYPE; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TDisplayItem extends DetailViewItem { - private RESOLUTION oldResolution; - private RESOLUTION newResolution; - private int oldDPI; - private int newDPI; - private Skin oldSkin; - private Skin newSkin; - - private ArrayList skinList; - - @Override - public void init() { - title = "Display"; - count = 3; - } - - @Override - public void setValue(VMPropertyValue value) { - value.resolution = newResolution; - value.dpi = newDPI; - value.skin = newSkin; - if (newSkin != null) { - value.skinPath = newSkin.getPath(); - } else { - value.skinPath = null; - } - } - - private ImageLabel reCategory; - private ImageLabel dpiCategory; - private ImageLabel skinCategory; - private ImageLabel resolution; - private ImageLabel dpi; - private ImageLabel skin; - - private static int CATEGORY_WIDTH = 66; - private static int INPUTBOX_WIDTH = 105; - private static Image CATEGORY_IMAGE = null; - private static Image INPUTBOX_ON_IMAGE = null; - private static Image INPUTBOX_OFF_IMAGE = null; - - private void drawCategory() { - if (CATEGORY_IMAGE == null) { - CATEGORY_IMAGE = PatchImageResources.getCategoryBox(CATEGORY_WIDTH); - } - - reCategory = new ImageLabel(compList.get(0), SWT.NONE); - reCategory.setText("Resolution"); - reCategory.setEnableImage(CATEGORY_IMAGE); - reCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - reCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = reCategory.getSize().x; - data.height = reCategory.getSize().y; - reCategory.setLayoutData(data); - - dpiCategory = new ImageLabel(compList.get(1), SWT.NONE); - dpiCategory.setText("Density"); - dpiCategory.setEnableImage(CATEGORY_IMAGE); - dpiCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - dpiCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = dpiCategory.getSize().x; - data.height = dpiCategory.getSize().y; - dpiCategory.setLayoutData(data); - - skinCategory = new ImageLabel(compList.get(2), SWT.NONE); - skinCategory.setText("Skin"); - skinCategory.setEnableImage(CATEGORY_IMAGE); - skinCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - skinCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = skinCategory.getSize().x; - data.height = skinCategory.getSize().y; - skinCategory.setLayoutData(data); - } - - @Override - public void drawDetail() { - drawCategory(); - - if (INPUTBOX_OFF_IMAGE == null) { - INPUTBOX_OFF_IMAGE = PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH); - } - - resolution = new ImageLabel(compList.get(0), SWT.NONE); - resolution.setEnableImage(INPUTBOX_OFF_IMAGE); - - FormData data = new FormData(); - data.left = new FormAttachment(reCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = resolution.getSize().x; - data.height = resolution.getSize().y; - resolution.setLayoutData(data); - - dpi = new ImageLabel(compList.get(1), SWT.NONE); - dpi.setEnableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(dpiCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = dpi.getSize().x; - data.height = dpi.getSize().y; - dpi.setLayoutData(data); - - skin = new ImageLabel(compList.get(2), SWT.NONE); - skin.setEnableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(skinCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = skin.getSize().x; - data.height = skin.getSize().y; - skin.setLayoutData(data); - } - - private ImageCombo reCombo = null; - private Spinner dpiSpinner = null; - private ImageCombo skinCombo = null; - @Override - public void drawModify() { - drawCategory(); - - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH); - } - - reCombo = new ImageCombo(compList.get(0), SWT.NONE); - reCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - reCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - reCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - reCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - reCombo.setEnabled(true); - reCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - FormData data = new FormData(); - data.left = new FormAttachment(reCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - reCombo.setLayoutData(data); - - dpi = new ImageLabel(compList.get(1), SWT.NONE); - dpi.setEnableImage(INPUTBOX_ON_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(dpiCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = dpi.getSize().x; - data.height = dpi.getSize().y; - dpi.setLayoutData(data); - - dpi.setLayout(new FormLayout()); - - dpiSpinner = new Spinner(dpi, SWT.NONE); - dpiSpinner.setValues(0, 0, 999, 0, 1, 1); - dpiSpinner.setTextLimit(3); - - dpiSpinner.setBackground(ColorResources.DETAIL_INPUT_BOX_COLOR.getColor()); - dpiSpinner.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - dpiSpinner.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - - data = new FormData(); - data.left = new FormAttachment(0, 5); - data.top = new FormAttachment(0, 1); - data.right = new FormAttachment(100, -2); - data.bottom = new FormAttachment(100, -2); - dpiSpinner.setLayoutData(data); - - - skinCombo = new ImageCombo(compList.get(2), SWT.NONE); - skinCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - skinCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - skinCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - skinCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - skinCombo.setEnabled(true); - skinCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - data = new FormData(); - data.left = new FormAttachment(skinCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - skinCombo.setLayoutData(data); - - addWidgetListener(); - } - - private void addWidgetListener() { - reCombo.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - String re = reCombo.getText(); - reCombo.setToolTipText(reCombo.getText()); - - RESOLUTION d = DisplayResolution.getInstance().findResolution(re); - if (d != null) { - EMLogger.getLogger().fine("Change Resolution -> " + d.getStrTypeValue()); - newResolution = d; - changeResolution(d); - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - - dpiSpinner.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - newDPI = dpiSpinner.getSelection(); - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - }); - - dpiSpinner.addKeyListener(new KeyAdapter() { - public void keyPressed(KeyEvent event) { - switch (event.keyCode) { - case SWT.CR: - case SWT.KEYPAD_CR: - ///TODO - getListener().ChangeState(ItemChangeState.CREATE); - break; - case SWT.ESC: - getListener().ChangeState(ItemChangeState.CANCEL); - break; - default: - // TODO - break; - } - } - }); - - skinCombo.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - String name = skinCombo.getText(); - skinCombo.setToolTipText(skinCombo.getText()); - - newSkin = SkinList.getInstance().findSkinUseName(name, skinList); - if (newSkin == null && name.equals(oldSkin.toString())) { - newSkin = oldSkin; - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - } - - @Override - public void closeItem() { - reCategory.dispose(); - dpiCategory.dispose(); - skinCategory.dispose(); - if (resolution != null) { - resolution.dispose(); - } - if (dpi != null) { - dpi.dispose(); - } - if (skin != null) { - skin.dispose(); - } - - if (reCombo != null) { - reCombo.dispose(); - } - - if (dpiSpinner != null) { - dpiSpinner.dispose(); - } - - if (skinCombo != null) { - skinCombo.dispose(); - } - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - resolution.setText(value.resolution.getStrTypeValue()); - resolution.setToolTipText(value.resolution.getStrTypeValue()); - - dpi.setText(Integer.toString(value.dpi)); - - skinList = value.baseImage.getPlatform().getSkins(); - if (value.skin != null) { - skin.setText(value.skin.getName()); - skin.setToolTipText(value.skin.getName()); - } else { - if (value.skinPath != null) { - value.skin = SkinList.getInstance().findSkinUsePath(value.skinPath, skinList); - } - if (value.skin != null) { - skin.setText(value.skin.getName()); - skin.setToolTipText(value.skin.getName()); - } else { - skin.setText(""); - skin.setToolTipText("check skin directory: ." + (value.skinPath == null ? "" : value.skinPath)); - } - } - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - oldResolution = newResolution = value.resolution; - newDPI = oldDPI = value.dpi; - newSkin = oldSkin = value.skin; - skinList = value.baseImage.getPlatform().getSkins(); - - //RESOLUTION - if (value.baseName == null || value.baseName != null && value.baseName.equals("x86")) { - DisplayResolution.getInstance().initializeCustom(oldResolution); - } else if (value.baseName != null && value.baseName.equals("x86-standard")) { - DisplayResolution.getInstance().initialize(oldResolution); - } else { -// oldResolution = newResolution = RESOLUTION.WVGA; - DisplayResolution.getInstance().initializeWVGA(oldResolution); - } - reCombo.removeAll(); - - String r = null; - int f = -1; - for (int i = 0; i < DisplayResolution.getInstance().getList().length; i++) { - r = DisplayResolution.getInstance().get(i); - if (r.equals(oldResolution.toString())) { - f = i; - } - reCombo.add(r); - } - - if (f == -1) { - reCombo.add(oldResolution.toString(), 0); - f = 0; - } - reCombo.select(f); - reCombo.setToolTipText(reCombo.getText()); - - // DPI - dpiSpinner.setSelection(value.dpi); - if (!isCreateMode()) { - dpiSpinner.setFocus(); - } - - // SKIN -// if (value.baseName == null || value.baseName != null && -// ( value.baseName.equals("x86-standard") || value.baseName.equals("x86") )) { -// settingSkinList(value.resolution); -// } else { -// settingSkinList(RESOLUTION.WVGA); -// } - settingSkinList(value.resolution); - - return true; - } - - private void settingSkinList(RESOLUTION re) { - skinCombo.removeAll(); - - int find = -1; - ArrayList skins = null; - - if (!isCreateMode() - && !DisplayResolution.getInstance().isMinResoluion(re) - && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) { - if (oldSkin != null) { - EMLogger.getLogger().fine("Add old skin: " + oldSkin.toString()); - skinCombo.add(oldSkin.toString()); - find = 0; - } - } else { - skins = SkinList.getInstance().findSkinList(re, skinList); - - Skin s = null; - for (int i = 0; i < skins.size(); i++) { - s = skins.get(i); - if (newSkin != null && newSkin.equals(s)) { - find = i; - } - skinCombo.add(s.toString()); - } - - if (find == -1) { - if (newSkin != null - && newSkin.getType() == SKIN_TYPE.GENERAL) { - skins.add(0, newSkin); - skinCombo.add(newSkin.toString(), 0); - } - if (skins.size() > 0) { - find = 0; - } - } - } - - if (find >= 0) { - skinCombo.select(find); - skinCombo.setToolTipText(skinCombo.getText()); - newSkin = skins == null ? oldSkin : skins.get(find); - } else { - EMLogger.getLogger().warning("To initial Skin Combo has been failed."); - } - } - - private void changeResolution(RESOLUTION re) { - // DPI - if (!DisplayResolution.getInstance().isMinResoluion(re) - && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) { - EMLogger.getLogger().fine("Emulator Manager does not support this resolution -> " + re.getStrTypeValue()); - dpiSpinner.setSelection(oldDPI); - } else { - dpiSpinner.setSelection(re.getDPI()); - } - - // SKIN - settingSkinList(re); - } - - private static boolean isShareMinMode = false; - - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - if (!isCreateMode() && dpiSpinner != null) { - dpiSpinner.setFocus(); - } - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TFileShareItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TFileShareItem.java deleted file mode 100644 index c83509a..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TFileShareItem.java +++ /dev/null @@ -1,343 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import java.io.File; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.MainDialog; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TFileShareItem extends DetailViewItem { - private boolean oldSupport; - private boolean newSupport; - - private String newPath; - private String oldPathName; - private String newPathName; - private DirectoryDialog sharedFD; - - @Override - public void init() { - title = "File Sharing"; - count = 2; - } - - @Override - public void setValue(VMPropertyValue value) { - value.isFileShareSupport = newSupport; - - value.fileSharePath = newPath; - value.fileSharePathName = newPathName; - } - - - private ImageLabel supportLabel; - private ImageLabel dirCategory; - private ImageLabel directoryLabel; - - private static int INPUTBOX_WIDTH = 175; - private static int DIR_CATEGORY_WIDTH = 66; - private static int DIR_INPUTBOX_OFF_WIDTH = 105; - // for modify - private static int DIR_INPUTBOX_ON_WIDTH = 133; - - @Override - public void drawDetail() { - supportLabel = new ImageLabel(compList.get(0), SWT.NONE); - supportLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - dirCategory = new ImageLabel(compList.get(1), SWT.NONE); - dirCategory.setText("Directory"); - dirCategory.setEnableImage(PatchImageResources.getCategoryBox(DIR_CATEGORY_WIDTH)); - dirCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - - directoryLabel = new ImageLabel(compList.get(1), SWT.NONE); - directoryLabel.setEnableImage(PatchImageResources.getInputBoxOff(DIR_INPUTBOX_OFF_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = supportLabel.getSize().x; - data.height = supportLabel.getSize().y; - supportLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = dirCategory.getSize().x; - data.height = dirCategory.getSize().y; - dirCategory.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(dirCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = directoryLabel.getSize().x; - data.height = directoryLabel.getSize().y; - directoryLabel.setLayoutData(data); - - comp.layout(true, true); - } - - private Label stateLabel; - private ImageButton selectSupport; - private ImageButton selectDirButton; - - private static String toolTipforMac = "Please refer to file sharing section in SDK documentation."; - @Override - public void drawModify() { - - makeModifyWidget(); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - selectSupport.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(selectSupport, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = TOGGLE_BUTTON_WIDTH; - stateLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0,INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = directoryLabel.getSize().x; - data.height = directoryLabel.getSize().y; - directoryLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(directoryLabel, 5); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = FILE_SELECT_BUTTON_WIDTH; - data.height = FILE_SELECT_BUTTON_HEIGHT; - selectDirButton.setLayoutData(data); - } - - private void makeModifyWidget() { - selectSupport = new ImageButton(compList.get(0), SWT.TOGGLE); - selectSupport.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - selectSupport.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - if (selectSupport.isSelection()) { // NOT SUPPORT - newSupport = false; - stateLabel.setText(StringResources.NOT_SUPPORTED); - directoryLabel.setText(""); - selectDirButton.setEnabled(false); - } else { // SUPPORT - newSupport = true; - stateLabel.setText(StringResources.SUPPORTED); - directoryLabel.setText(newPathName); - selectDirButton.setEnabled(true); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - - }); - - stateLabel = new Label(compList.get(0), SWT.NONE); - stateLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - stateLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - stateLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - - directoryLabel = new ImageLabel(compList.get(1), SWT.NONE); - directoryLabel.setEnableImage(PatchImageResources.getInputBoxON(DIR_INPUTBOX_ON_WIDTH)); - directoryLabel.setEnabled(false); - - selectDirButton = new ImageButton(compList.get(1), SWT.PUSH); - selectDirButton.setImages( - ImageResources.BUTTON_FILE_NOMAL.getImage(), - ImageResources.BUTTON_FILE_HOVER.getImage(), - ImageResources.BUTTON_FILE_PUSH.getImage(), - ImageResources.BUTTON_FILE_DISABLE.getImage()); - - selectDirButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (sharedFD == null) { - sharedFD = new DirectoryDialog( - MainDialog.getShell(), SWT.OPEN); - sharedFD.setText("Select directory"); - } - - EMLogger.getLogger().fine("Open Directory Dialog"); - String path = sharedFD.open(); - - if (path != null) { - EMLogger.getLogger().fine("Select directory for FileShare: " + path); - newPath = path; - newPathName = path.substring(path - .lastIndexOf(File.separator) + 1, path.length()); - directoryLabel.setText(newPathName); - directoryLabel.setToolTipText(newPath); - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - supportLabel.setText(value.isFileShareSupport - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - - directoryLabel.setText(value.isFileShareSupport - ? value.fileSharePathName - : ""); - directoryLabel.setToolTipText(value.fileSharePath); - - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newSupport = oldSupport = value.isFileShareSupport; - newPath = value.fileSharePath; - newPathName = oldPathName = value.fileSharePathName; - - if (oldSupport) { - selectSupport.setSelection(false); - stateLabel.setText(StringResources.SUPPORTED); - directoryLabel.setText(oldPathName); - directoryLabel.setToolTipText(newPath); - selectDirButton.setEnabled(true); - } else { - selectSupport.setSelection(true); - stateLabel.setText(StringResources.NOT_SUPPORTED); - directoryLabel.setText(oldPathName); - selectDirButton.setEnabled(false); - } - - return true; - } - - @Override - public void closeItem() { - if (supportLabel != null) { - supportLabel.dispose(); - } - - if (dirCategory != null) { - dirCategory.dispose(); - } - - if (directoryLabel != null) { - directoryLabel.dispose(); - } - - if (stateLabel != null) { - stateLabel.dispose(); - } - - if (selectSupport != null) { - selectSupport.dispose(); - } - - if (selectDirButton != null) { - selectDirButton.dispose(); - } - } - - private static boolean isShareMinMode = false; - - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - } - - @Override - public boolean checkValue() { - return true; - } - -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/THWSupportItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/THWSupportItem.java deleted file mode 100644 index 0f1a704..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/THWSupportItem.java +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.CheckVirtualization; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class THWSupportItem extends DetailViewItem { - private boolean oldHWSupport; - private boolean newHWSupport; - private boolean oldGPUSupport; - private boolean newGPUSupport; - - @Override - public void init() { - title = "HW Support"; - count = 2; - } - - @Override - public void setValue(VMPropertyValue value) { - value.isHWVirtualization = newHWSupport; - value.isGLAcceleration = newGPUSupport; - } - - private ImageLabel virtualCategory; - private ImageLabel GPUCategory; - - private ImageLabel virtualLabel; - private ImageLabel GPULabel; - - private static int INPUTBOX_WIDTH = 105; - private static int CATEGORY_WIDTH = 66; - - private static String GPUToolTipText = "If you enable the GPU option," - + StringResources.NEW_LINE - + "the rendering performance of video player or camera may degrade."; - private static String CPUDisableToolTipText = "Your system cannot support HW virtualization." - + StringResources.NEW_LINE + "Try install KVM (linux) or HAX (windows or mac)"; - private static String GPUDisableToolTipText = "Your system cannot support HW OpenGL acceleration." - + StringResources.NEW_LINE + "Try upgrade graphic card driver."; - private void makeCategory() { - virtualCategory = new ImageLabel(compList.get(0), SWT.NONE); - virtualCategory.setEnableImage(PatchImageResources.getCategoryBox(CATEGORY_WIDTH)); - virtualCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - virtualCategory.setText("CPU VT"); - - GPUCategory = new ImageLabel(compList.get(1), SWT.NONE); - GPUCategory.setEnableImage(PatchImageResources.getCategoryBox(CATEGORY_WIDTH)); - GPUCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - GPUCategory.setText("GPU"); - GPUCategory.setToolTipText(GPUToolTipText); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = virtualCategory.getSize().x; - data.height = virtualCategory.getSize().y; - virtualCategory.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = GPUCategory.getSize().x; - data.height = GPUCategory.getSize().y; - GPUCategory.setLayoutData(data); - } - - @Override - public void drawDetail() { - makeCategory(); - - virtualLabel = new ImageLabel(compList.get(0), SWT.NONE); - virtualLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - GPULabel = new ImageLabel(compList.get(1), SWT.NONE); - GPULabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - GPULabel.setToolTipText(GPUToolTipText); - - FormData data = new FormData(); - data.left = new FormAttachment(virtualCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = virtualLabel.getSize().x; - data.height = virtualLabel.getSize().y; - virtualLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = GPULabel.getSize().x; - data.height = GPULabel.getSize().y; - GPULabel.setLayoutData(data); - } - - private ImageButton virtualButton; - private ImageButton GPUButton; - private Label virtualState; - private Label GPUState; - @Override - public void drawModify() { - makeCategory(); - makeModifyWidget(); - - FormData data = new FormData(); - data.left = new FormAttachment(virtualCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - virtualButton.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(virtualButton, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = INPUTBOX_WIDTH - TOGGLE_BUTTON_WIDTH - INPUTBOX_RIGHT_GAP; - virtualState.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - GPUButton.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUButton, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = INPUTBOX_WIDTH - TOGGLE_BUTTON_WIDTH - INPUTBOX_RIGHT_GAP; - GPUState.setLayoutData(data); - } - - private void makeModifyWidget() { - virtualButton = new ImageButton(compList.get(0), SWT.TOGGLE); - virtualButton.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - virtualButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (virtualButton.isSelection()) { // NOT SUPPORT - newHWSupport = false; - virtualState.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newHWSupport = true; - virtualState.setText(StringResources.SUPPORTED); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - - virtualState = new Label(compList.get(0), SWT.NONE); - virtualState.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - virtualState.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - virtualState.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - - GPUButton = new ImageButton(compList.get(1), SWT.TOGGLE); - GPUButton.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - GPUButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (GPUButton.isSelection()) { // NOT SUPPORT - newGPUSupport = false; - GPUState.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newGPUSupport = true; - GPUState.setText(StringResources.SUPPORTED); - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - - GPUButton.setToolTipText(GPUToolTipText); - - GPUState = new Label(compList.get(1), SWT.NONE); - GPUState.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - GPUState.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - GPUState.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - } - - private boolean isArm = false; - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - isArm = value.archType.equals("arm"); - - if (!CheckVirtualization.getInstance().isSupportVirtualization() - || isArm) { - virtualLabel.setText(StringResources.DISABLED); - virtualLabel.setToolTipText(CPUDisableToolTipText); - } else { - virtualLabel.setText(value.isHWVirtualization - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - virtualLabel.setToolTipText(""); - } - - if (!CheckVirtualization.getInstance().isSupportGPU() - || isArm) { - GPULabel.setText(StringResources.DISABLED); - GPULabel.setToolTipText(GPUDisableToolTipText); - } else { - GPULabel.setText(value.isGLAcceleration - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - GPULabel.setToolTipText(GPUToolTipText); - } - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - isArm = value.archType.equals("arm"); - if (isCreateMode() && isArm) { - newHWSupport = oldHWSupport = false; - newGPUSupport = oldGPUSupport = false; - } else { - newHWSupport = oldHWSupport = value.isHWVirtualization; - newGPUSupport = oldGPUSupport = value.isGLAcceleration; - } - - if (!CheckVirtualization.getInstance().isSupportVirtualization() - || isArm) { - virtualButton.setEnabled(false); - virtualState.setText(StringResources.DISABLED); - virtualState.setToolTipText(CPUDisableToolTipText); - } else { - if (oldHWSupport) { - virtualButton.setSelection(false); - virtualState.setText(StringResources.SUPPORTED); - } else { - virtualButton.setSelection(true); - virtualState.setText(StringResources.NOT_SUPPORTED); - } - virtualState.setToolTipText(""); - } - - if (!CheckVirtualization.getInstance().isSupportGPU() || isArm) { - GPUButton.setEnabled(false); - GPUState.setText(StringResources.DISABLED); - GPUState.setToolTipText(GPUDisableToolTipText); - } else { - if (oldGPUSupport /*&& !isArm - && CheckVirtualization.getInstance().isSupportGPU()*/) { - GPUButton.setSelection(false); - GPUState.setText(StringResources.SUPPORTED); - } else { - GPUButton.setSelection(true); - GPUState.setText(StringResources.NOT_SUPPORTED); - } - GPUState.setToolTipText(GPUToolTipText); - } - - return true; - } - - @Override - public void closeItem() { - if (virtualCategory != null) { - virtualCategory.dispose(); - } - - if (GPUCategory != null) { - GPUCategory.dispose(); - } - - if (virtualLabel != null) { - virtualLabel.dispose(); - } - - if (GPULabel != null) { - GPULabel.dispose(); - } - - if (virtualButton != null) { - virtualButton.dispose(); - } - - if (GPUButton != null) { - GPUButton.dispose(); - } - - if (virtualState != null) { - virtualState.dispose(); - } - - if (GPUState != null) { - GPUState.dispose(); - } - } - - private static boolean isShareMinMode = false; - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNFCItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNFCItem.java deleted file mode 100644 index 28be3b8..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNFCItem.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * Minkee Lee - * MunKyu Im - * SeokYeon Hwang - * JiHye Kim - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - - - -package org.tizen.emulator.manager.mobile.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TNFCItem extends DetailViewItem { - - private boolean oldSupport; - private boolean newSupport; - - public static String OPTION_NFC = "nfcDevice"; - public static String NFC_ON = "on"; - public static String NFC_OFF = "off"; - - private ImageLabel supportLabel; - private static int INPUTBOX_WIDTH = 175; - - @Override - public void drawDetail() { - supportLabel = new ImageLabel(compList.get(0), SWT.NONE); - supportLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = supportLabel.getSize().x; - data.height = supportLabel.getSize().y; - supportLabel.setLayoutData(data); - - comp.layout(true, true); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - if (value.baseName == null || value.baseName != null && - ( value.baseName.equals("x86-standard") || value.baseName.equals("x86") )) { - supportLabel.setText( - value.getExtendedOptionVal(OPTION_NFC).toLowerCase().equals(NFC_ON) - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - } else { - supportLabel.setText(StringResources.NOT_SUPPORTED); - } - return true; - } - - @Override - public void init() { - title = "NFC Device"; - count = 1; - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public void closeItem() { - // TODO Auto-generated method stub - } - - @Override - public void setValue(VMPropertyValue value) { - value.setExtendedOption(OPTION_NFC, - newSupport ? NFC_ON : NFC_OFF ); - } - - - private Label stateLabel; - private ImageButton selectSupport; - - @Override - public void drawModify() { - makeModifyWidget(); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - selectSupport.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(selectSupport, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = TOGGLE_BUTTON_WIDTH; - stateLabel.setLayoutData(data); - } - - private void makeModifyWidget() { - selectSupport = new ImageButton(compList.get(0), SWT.TOGGLE); - selectSupport.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - selectSupport.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - if (selectSupport.isSelection()) { // NOT SUPPORT - newSupport = false; - stateLabel.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newSupport = true; - stateLabel.setText(StringResources.SUPPORTED); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - - stateLabel = new Label(compList.get(0), SWT.NONE); - stateLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - stateLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - stateLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - if (value.baseName == null || value.baseName != null && - ( value.baseName.equals("x86-standard") || value.baseName.equals("x86") )) { - selectSupport.setEnabled(true); - boolean nfcValue = value.getExtendedOptionVal(OPTION_NFC).toLowerCase().equals(NFC_ON) - ? true : false; - newSupport = oldSupport = nfcValue; - - if (oldSupport) { - selectSupport.setSelection(false); - stateLabel.setText(StringResources.SUPPORTED); - } else { - selectSupport.setSelection(true); - stateLabel.setText(StringResources.NOT_SUPPORTED); - } - } else { - newSupport = oldSupport = false; - stateLabel.setText(StringResources.NOT_SUPPORTED); - selectSupport.setEnabled(false); - } - - return true; - } - - @Override - public boolean checkValue() { - return true; - } - -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNameTextItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNameTextItem.java deleted file mode 100644 index 5b7b2f2..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TNameTextItem.java +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyAdapter; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.MainDialog; -import org.tizen.emulator.manager.ui.VMsMainView; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.detail.item.ItemChangeState; -import org.tizen.emulator.manager.ui.dialog.MessageDialog; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.EmulatorVMList; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.VMPropertyValue; -import org.tizen.emulator.manager.vms.helper.HelperClass; - -public class TNameTextItem extends DetailViewItem { - private boolean isStandard; - - // for vm name - private String oldName = ""; - private String newName = ""; - - // for base image - private String subTitle; - private Label subTitleLabel; - - private String newPath; - private String newPathName; - private FileDialog baseImageFD; - private boolean isSelected; - - @Override - public void setValue(VMPropertyValue value) { - value.vmsName = newName; - - value.baseImagePath = newPath; - value.baseImagePathName = newPathName; - } - - @Override - public void init() { - title = "Name"; - subTitle = "Base Image"; - count = 2; - } - - @Override - protected void initTitle(boolean supportMinMode) { - super.initTitle(false); - - subTitleLabel = new Label(compList.get(1), SWT.NONE); - - subTitleLabel.setFont(FontResources.DETAIL_TITLE_FONT.getFont()); - subTitleLabel.setForeground(ColorResources.DETAIL_TITILE_FONT_COLOR.getColor()); - FormData data = new FormData(); - data.left = new FormAttachment(0, TITLE_LEFT_GAP); - data.top = new FormAttachment(0, TITLE_TOP_GAP); - data.height = TITLE_HEIGHT; - data.width = 100; - subTitleLabel.setLayoutData(data); - subTitleLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - subTitleLabel.addPaintListener(new PaintListener() { - @Override - public void paintControl(PaintEvent e) { - drawTitle(e, subTitle); - } - }); - } - - private ImageLabel nameLabel; - private ImageLabel baseImageLabel; - - private static int INPUTBOX_WIDTH = 175; -// private static int INPUTBOX_WIDTH = 150; - private static Image INPUTBOX_ON_IMAGE = null; - private static Image INPUTBOX_OFF_IMAGE = null; - - // for modify (base image) - private static int IMAGE_INPUTBOX_WIDTH = 133; - private static Image IMAGE_INPUTBOX_IMAGE = null; - - @Override - public void drawDetail() { - if (INPUTBOX_OFF_IMAGE == null) { - INPUTBOX_OFF_IMAGE = PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH); - } - - nameLabel = new ImageLabel(compList.get(0), SWT.NONE); - nameLabel.setEnableImage(INPUTBOX_OFF_IMAGE); - nameLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = nameLabel.getSize().x; - data.height = nameLabel.getSize().y; - nameLabel.setLayoutData(data); - - baseImageLabel = new ImageLabel(compList.get(1), SWT.NONE); - baseImageLabel.setEnableImage(INPUTBOX_OFF_IMAGE); - baseImageLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = baseImageLabel.getSize().x; - data.height = baseImageLabel.getSize().y; - baseImageLabel.setLayoutData(data); - - comp.layout(true, true); - } - - private Text nameText; - private ImageButton selectImageButton; - @Override - public void drawModify() { - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH); - } - if (IMAGE_INPUTBOX_IMAGE == null) { - IMAGE_INPUTBOX_IMAGE = PatchImageResources.getInputBoxON(IMAGE_INPUTBOX_WIDTH); - } - - makeModifyNameLabel(); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = nameLabel.getSize().x; - data.height = nameLabel.getSize().y; - nameLabel.setLayoutData(data); - - makeModifyBaseImage(); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = baseImageLabel.getSize().x; - data.height = baseImageLabel.getSize().y; - baseImageLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(baseImageLabel, 5); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = FILE_SELECT_BUTTON_WIDTH; - data.height = FILE_SELECT_BUTTON_HEIGHT; - selectImageButton.setLayoutData(data); - } - - private void makeModifyNameLabel() { - nameLabel = new ImageLabel(compList.get(0), SWT.NONE); - nameLabel.setEnableImage(INPUTBOX_ON_IMAGE); - nameLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - nameLabel.setLayout(new FormLayout()); - - nameText = new Text(nameLabel, SWT.NONE); - nameText.setBackground(ColorResources.DETAIL_INPUT_BOX_COLOR.getColor()); - nameText.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - nameText.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - nameText.setTextLimit(VMProperty.MAX_NAME_LEN); - - FormData data = new FormData(); - data.left = new FormAttachment(0, 5); - data.top = new FormAttachment(0, 2); - data.right = new FormAttachment(100, -5); - data.bottom = new FormAttachment(100, -2); - nameText.setLayoutData(data); - - nameText.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - if (isCreateMode()) { - newName = nameText.getText(); - checkVMName(); - } - } - }); - - nameText.addKeyListener(new KeyAdapter() { - public void keyPressed(KeyEvent event) { - switch (event.keyCode) { - case SWT.CR: - case SWT.KEYPAD_CR: - ///TODO - getListener().ChangeState(ItemChangeState.CREATE); - break; - case SWT.ESC: - getListener().ChangeState(ItemChangeState.CANCEL); - break; - default: - // TODO - break; - } - } - }); - } - - private void checkVMName() { - if (HelperClass.checkImageName(newName, true)) { - if (isStandard) { - getListener().ChangeValue(true); - } else { - if (isSelected) { - getListener().ChangeValue(true); - } else { - getListener().ChangeValue(false); - } - } - } else { - getListener().ChangeValue(false); - } - } - - private void makeModifyBaseImage() { - baseImageLabel = new ImageLabel(compList.get(1), SWT.NONE); - baseImageLabel.setEnableImage(IMAGE_INPUTBOX_IMAGE); - baseImageLabel.setDisableImage(IMAGE_INPUTBOX_IMAGE); - - selectImageButton = new ImageButton(compList.get(1), SWT.PUSH); - selectImageButton.setImages( - ImageResources.BUTTON_FILE_NOMAL.getImage(), - ImageResources.BUTTON_FILE_HOVER.getImage(), - ImageResources.BUTTON_FILE_PUSH.getImage(), - ImageResources.BUTTON_FILE_DISABLE.getImage()); - - selectImageButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (baseImageFD == null) { - baseImageFD = new FileDialog(MainDialog.getShell(), SWT.OPEN); - baseImageFD.setText(String.format("Select existing Base Image")); - String[] filter = null; - String[] filterName = null; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - filter = new String[]{"*.x86", "*.arm"}; - filterName = new String[]{"Disk Image Files(*.x86)", "Disk Image Files(*.arm)"}; - } else { - filter = new String[]{"*.x86"}; - filterName = new String[]{"Disk Image Files(*.x86)"}; - } - baseImageFD.setFilterExtensions(filter); - baseImageFD.setFilterNames(filterName); - } - - String path = baseImageFD.open(); - if (path != null) { - if (!HelperClass.isPathAvaliable(path)) { - new MessageDialog().openWarningDialog("This base image not ready yet." - + StringResources.NEW_LINE - + "Please select again in a few seconds."); - return; - } - newPath = path; - newPathName = path.substring(path.lastIndexOf(File.separator) + 1, path.length()); - - // for arm emulator - boolean isArm = newPathName.endsWith("arm"); - EmulatorVMList.getInstance().CustomArch = !isArm ? "x86" : "arm"; - - baseImageLabel.setText(newPathName); - baseImageLabel.redraw(); - isSelected = true; - checkVMName(); - - // TODO - //arm image - //false hw virtualization - //false gl accelertaion - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - } - - protected boolean checkImageName() { - return true; - } - - @Override - public void closeItem() { - subTitleLabel.dispose(); - - nameLabel.dispose(); - baseImageLabel.dispose(); - - if (nameText != null) { - nameText.dispose(); - } - if (selectImageButton != null) { - selectImageButton.dispose(); - } - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - if (nameLabel != null) { - nameLabel.setText(value.vmsName); - } - - if (baseImageLabel != null) { - baseImageLabel.setText(value.baseImagePathName); - if (!value.isStandard) { - baseImageLabel.setToolTipText(value.baseImagePath); - } - } - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newName = oldName = value.vmsName; - isStandard = value.isStandard; - - newPath = value.baseImagePath; - newPathName = value.baseImagePathName; - isSelected = false; - - if (isCreateMode()) { - nameText.setText(getDefaultVMName(value)); - nameText.selectAll(); - nameText.setEnabled(true); - - if (value.isStandard) { - baseImageLabel.setText(value.baseImage == null - ? value.baseImagePathName - : value.baseImage.getPathName()); - baseImageLabel.setEnabled(false); - selectImageButton.setEnabled(false); - } else { - baseImageLabel.setEnabled(true); - if (checkBaseImageFile(value.baseImagePath)) { - baseImageLabel.setText(value.baseImagePathName); - baseImageLabel.setToolTipText(value.baseImagePath); - isSelected = true; - getListener().ChangeValue(true); - } else { - baseImageLabel.setText(""); - } - selectImageButton.setEnabled(true); - } - } else { - nameText.setText(oldName); - nameText.setEnabled(false); - - baseImageLabel.setText(value.baseImagePathName); - baseImageLabel.setEnabled(false); - selectImageButton.setEnabled(false); - } - - if (VMsMainView.getInstance().isSetFocus()) { - setFocus(); - } - return false; - } - - public void setFocus() { - nameLabel.setFocus(); - nameText.setFocus(); - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isCreateMode() && VMsMainView.getInstance().isSetFocus()) { - setFocus(); - } - } - - // Generate VMName automatically. - // ex) "m-0627-1" - private String getDefaultVMName(VMPropertyValue value) { - StringBuilder sb = new StringBuilder(); - sb.append(value.profile.substring(0,1).toLowerCase()); - if (!value.isStandard) { - sb.append("c"); - } - sb.append("-"); - - SimpleDateFormat formatter = new SimpleDateFormat ("MMdd"); - Date currentTime = new Date( ); - String timeStr = formatter.format(currentTime); - sb.append(timeStr); - sb.append("-"); - - int count=1; - String prefix = sb.toString(); - StringBuilder vmName = null; - do { - vmName = new StringBuilder(); - vmName.append(prefix).append(Integer.toString(count++)); - } while (HelperClass.checkDupulicateName(vmName.toString()) != null) ; - - return vmName.toString(); - } - - private boolean checkBaseImageFile(String baseImagePath){ - if (baseImagePath == null || baseImagePath.isEmpty()) { - return false; - } - // Check ".x86" - String pathSplit[] = null; - if (EmulatorManager.isWin()) { - pathSplit = baseImagePath.split("\\\\"); - } else { - pathSplit = baseImagePath.split(File.separator); - } - String fileSplit[] = pathSplit[pathSplit.length-1].split("\\."); - String extension = fileSplit[fileSplit.length-1]; - if (!extension.equals("x86")) { - return false; - } - // Check whether file is exist. - File imageFile = new File(baseImagePath); - if (!imageFile.exists()) { - return false; - } - - return true; - } - - @Override - public boolean checkValue() { - return true; - } -} - diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TRAMItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TRAMItem.java deleted file mode 100644 index 377683d..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TRAMItem.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageCombo; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TRAMItem extends DetailViewItem { - private int oldSize; - private int newSize; - - @Override - public void init() { - title = "RAM Size"; - count = 1; - } - - @Override - public void setValue(VMPropertyValue value) { - value.ramSize = newSize; - } - - private ImageLabel ramSize; - private ImageCombo ramSizeCombo; - private Label stateLabel; - - private static int INPUTBOX_WIDTH = 175; - private static Image INPUTBOX_ON_IMAGE = null; - @Override - public void drawDetail() { - ramSize = new ImageLabel(compList.get(0), SWT.NONE); - ramSize.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = ramSize.getSize().x; - data.height = ramSize.getSize().y; - ramSize.setLayoutData(data); - } - - @Override - public void drawModify() { - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH - 40); - } - - ramSizeCombo = new ImageCombo(compList.get(0), SWT.NONE); - ramSizeCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - ramSizeCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - ramSizeCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - ramSizeCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - ramSizeCombo.setEnabled(true); - ramSizeCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - // - - stateLabel = new Label(compList.get(0), SWT.NONE); - stateLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - stateLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - stateLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - stateLabel.setText("MB"); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - ramSizeCombo.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(ramSizeCombo, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = 30; - stateLabel.setLayoutData(data); - - for (String s : RamSize.getInstance().getList()) { - ramSizeCombo.add(s); - } - - ramSizeCombo.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - String size = ramSizeCombo.getText(); - newSize = Integer.valueOf(size); - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - ramSize.setText(value.ramSize + " MB"); - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newSize = oldSize = value.ramSize; - String s = Integer.toString(oldSize); - ramSizeCombo.select(RamSize.getInstance().findIndex(s)); - return false; - } - - @Override - public void closeItem() { - if (ramSize != null) { - ramSize.dispose(); - } - - if (ramSizeCombo != null) { - ramSizeCombo.dispose(); - } - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TSupportSuspendItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TSupportSuspendItem.java deleted file mode 100644 index 3893498..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TSupportSuspendItem.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.tizen.emulator.manager.mobile.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TSupportSuspendItem extends DetailViewItem { - private boolean newSupport; - - private static int INPUTBOX_WIDTH = 175; - private ImageLabel supportLabel; - private ImageButton supportButton; - private Label statusLabel; - @Override - public void init() { - title = "Suspend"; - count = 1; - } - - @Override - public void drawDetail() { - //titleLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - supportLabel = new ImageLabel(compList.get(0), SWT.NONE); - supportLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = supportLabel.getSize().x; - data.height = supportLabel.getSize().y; - supportLabel.setLayoutData(data); - } - - @Override - public void drawModify() { - //titleLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - supportButton = new ImageButton(compList.get(0), SWT.TOGGLE); - supportButton.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - statusLabel = new Label(compList.get(0), SWT.NONE); - statusLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - statusLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - statusLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - supportButton.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(supportButton, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = INPUTBOX_WIDTH - TOGGLE_BUTTON_WIDTH - INPUTBOX_RIGHT_GAP; - statusLabel.setLayoutData(data); - - setButtonListener(); - } - - private void setButtonListener() { - supportButton.addSelectionListener(new SelectionListener() { - - @Override - public void widgetDefaultSelected(SelectionEvent arg0) { - } - - @Override - public void widgetSelected(SelectionEvent arg0) { - if (supportButton.isSelection()) { // NOT SUPPORT - newSupport = false; - statusLabel.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newSupport = true; - statusLabel.setText(StringResources.SUPPORTED); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - }); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - if (!value.isSupportSuspend) { - supportLabel.setText(StringResources.NOT_SUPPORTED); - } else { - supportLabel.setText(StringResources.SUPPORTED); - } - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newSupport = value.isSupportSuspend; - - if (!value.isSupportSuspend) { - supportButton.setSelection(true); - statusLabel.setText(StringResources.NOT_SUPPORTED); - } else { - supportButton.setSelection(false); - statusLabel.setText(StringResources.SUPPORTED); - } - return true; - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public void closeItem() { - if (supportLabel != null) { - supportLabel.dispose(); - } - - if (supportButton != null) { - supportButton.dispose(); - } - - if (statusLabel != null) { - statusLabel.dispose(); - } - } - - @Override - public void setValue(VMPropertyValue value) { - value.isSupportSuspend = newSupport; - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TTouchPointItem.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TTouchPointItem.java deleted file mode 100644 index 5c3c559..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/TTouchPointItem.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TTouchPointItem extends DetailViewItem { - private int touchPointValue; - @Override - public void init() { - title = "Max Touch Point"; - count = 1; - } - - @Override - public void setValue(VMPropertyValue value) { - value.maxTouchCount = touchPointValue; - } - - private ImageLabel touchPoint; - private static int INPUTBOX_WIDTH = 175; - @Override - public void drawDetail() { - touchPoint = new ImageLabel(compList.get(0), SWT.NONE); - touchPoint.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = touchPoint.getSize().x; - data.height = touchPoint.getSize().y; - touchPoint.setLayoutData(data); - touchPoint.redraw(); - } - - @Override - public void drawModify() { - touchPoint = new ImageLabel(compList.get(0), SWT.NONE); - touchPoint.setDisableImage(PatchImageResources.getInputBoxON(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = touchPoint.getSize().x; - data.height = touchPoint.getSize().y; - touchPoint.setLayoutData(data); - touchPoint.setEnabled(false); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - touchPointValue = value.maxTouchCount; - touchPoint.setText(Integer.toString(touchPointValue)); - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - touchPointValue = value.maxTouchCount; - touchPoint.setText(Integer.toString(touchPointValue)); - return false; - } - - @Override - public void closeItem() { - touchPoint.dispose(); - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/VMResources.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/VMResources.java deleted file mode 100644 index 1ec721b..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/detail/VMResources.java +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * MunKyu Im - * SeokYeon Hwang - * JiHye Kim - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.detail; - -import java.util.ArrayList; - -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.vms.RAM_SIZE; -import org.tizen.emulator.manager.vms.RESOLUTION; - -class StringArrayResource -{ - private ArrayList list; - private int defaultIndex = 0; - - public StringArrayResource() - { - list = new ArrayList(); - list.clear(); - } - - public void add(int index, String element) - { - list.add(index, element); - } - - public String[] getList() - { - if (size() == 0) { - return null; - } else { - return list.toArray(new String[size()]); - } - } - - public String get(int i) { - return list.get(i); - } - - public int size() - { - return list.size(); - } - - public int getDefaultIndex() - { - return defaultIndex; - } - - public void setDefaultIndex(int index) { - defaultIndex = index; - } - - public void clear() { - list.clear(); - } -} - -class SupportType extends StringArrayResource -{ - private static SupportType support = new SupportType(); - public static SupportType getInstance() - { - return support; - } - - private SupportType() - { - add(0, StringResources.SUPPORTED); - add(1, StringResources.NOT_SUPPORTED); - - setDefaultIndex(1); - } - - public int findIndex(String type) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.equals(type)) { - return i; - } - } - return getDefaultIndex(); - } -} - -class DisplayResolution extends StringArrayResource -{ - private static RESOLUTION[] minResoultion = {RESOLUTION.WVGA, RESOLUTION.HD}; - private static RESOLUTION[] customResolution = {RESOLUTION.WVGA, RESOLUTION.HVGA, RESOLUTION.HD}; - - private static DisplayResolution resolution = new DisplayResolution(); - public static DisplayResolution getInstance() - { - return resolution; - } - - private DisplayResolution() - { - } - - public void initialize(RESOLUTION re) { - clear(); - - int i = 0; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - for (RESOLUTION r : RESOLUTION.values()) { - if (r == RESOLUTION.HD) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } else { - for (RESOLUTION r : minResoultion) { - if (r == RESOLUTION.HD) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - - if (!(EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE)) { - for (String s : getList()) { - if (s.equals(re.toString())) { - return; - } - } - add(0, re.toString()); - } - } - - public void initializeWVGA(RESOLUTION re) { - clear(); - - int i = 0; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - for (RESOLUTION r : RESOLUTION.values()) { - if (r == RESOLUTION.WVGA) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } else { - for (RESOLUTION r : minResoultion) { - if (r == RESOLUTION.WVGA) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - - if (!(EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE)) { - for (String s : getList()) { - if (s.equals(re.toString())) { - return; - } - } - add(0, re.toString()); - } - } - - public void initializeCustom(RESOLUTION re) { - clear(); - - int i = 0; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - for (RESOLUTION r : RESOLUTION.values()) { - if (r == RESOLUTION.HD) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } else { - for (RESOLUTION r : customResolution) { - if (r == RESOLUTION.HD) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - - if (!(EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE)) { - for (String s : getList()) { - if (s.equals(re.toString())) { - return; - } - } - add(0, re.toString()); - } - } - - public RESOLUTION findResolution(String resolution) { - for (RESOLUTION r : RESOLUTION.values()) { - if (resolution.equals(r.toString())) { - return r; - } - } - - return null; - } - - public int findIndex(String r) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.equals(r)) { - return i; - } - } - - return getDefaultIndex(); - } - - public boolean isMinResoluion(RESOLUTION resolution) { - for (RESOLUTION r : minResoultion) { - if (resolution.getStrValue().equals(r.getStrValue())) { - return true; - } - } - - if (resolution.getStrValue().equals(RESOLUTION.HVGA.getStrValue())) { - return true; - } - return false; - } -} - -class RamSize extends StringArrayResource -{ - private static RamSize size = new RamSize(); - public static RamSize getInstance() - { - return size; - } - - private RamSize() - { - int i = 0; - for (RAM_SIZE r : RAM_SIZE.values()) { - if (r == RAM_SIZE.RAM512) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - - public int findIndex(String size) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.contains(size)) { - return i; - } - } - return getDefaultIndex(); - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/widget/VMButtonPainter.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/widget/VMButtonPainter.java deleted file mode 100644 index b8d3f24..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/ui/widget/VMButtonPainter.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.ui.widget; - -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Canvas; -import org.tizen.emulator.manager.plugin.PluginImageResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.ui.widgets.VMButton; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class VMButtonPainter implements PaintListener { - - @Override - public void paintControl(PaintEvent e) { - VMButton button = (VMButton)e.widget; - Image image = button.getImage(button.currentState()); - if (image == null) { - return; - } - - if (button.getProperty() != null) { - if (button.getProperty().isRunning()) { - button.getLaunchButton().setEnabled(false); - } else { - button.getLaunchButton().setEnabled(true); - } - } - - Rectangle rect = ((Canvas) e.widget).getClientArea(); - GC gc = e.gc; - - gc.setBackground(button.getBackgroundColor(button.currentState())); - gc.fillRectangle(rect); - gc.drawImage(image, rect.x + W_OFFSET, rect.y + H_OFFSET); - if (button.isSelection()) { - gc.drawImage(PluginImageResources.VM_IMAGE_SELECTED.getImage(button.getBaseImage().getPlatform().getPluginPlatformName()), - rect.x, rect.y); - } - drawButtonText(gc, rect, button); - } - - private int W_OFFSET = 2; - private int H_OFFSET = 3; - private int X_POINT = 40 + W_OFFSET; - private int Y_POINT = 27 + H_OFFSET; - private int Y_GAP = 23; - private int RE_X_POINT = 16 + W_OFFSET; - - private void drawButtonText(GC gc, Rectangle rect, VMButton button) { - VMProperty property = button.getProperty(); - if (property == null) { - return; - } - - // drawing Title - gc.setForeground(button.getFontColor(button.currentState())); - gc.setFont(FontResources.VM_BUTTON_TITLE_FONT.getFont()); - - gc.setBackground(button.getBackgroundColor(button.currentState())); - gc.drawString(button.getTitle(), button.getTitle_x(), 8, true); - - // reset font color - gc.setForeground(button.getFontColor(WSTATE.NORMAL)); - - VMPropertyValue value = property.getPropertyValue(); - - gc.drawString(property.getArch().name(), X_POINT, Y_POINT, true); - gc.drawString(Integer.toString(value.dpi), X_POINT, Y_POINT + Y_GAP, true); - gc.drawString(Integer.toString(value.ramSize), X_POINT, Y_POINT + Y_GAP * 2, true); - gc.drawString(value.resolution.getStrValue(), RE_X_POINT, Y_POINT + Y_GAP * 3, true); - } - -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/Launcher.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/Launcher.java deleted file mode 100644 index a471763..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/Launcher.java +++ /dev/null @@ -1,581 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * MunKyu Im - * SeokYeon Hwang - * JiHye Kim - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.vms; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; - -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.console.RemoteManager; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.resources.FilePathResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.CheckVirtualization; -import org.tizen.emulator.manager.tool.PortHelper; -import org.tizen.emulator.manager.tool.SettingInfoFile; -import org.tizen.emulator.manager.ui.dialog.MessageDialog; -import org.tizen.emulator.manager.vms.ILauncher; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.helper.CheckingRunningEmulator; -import org.tizen.emulator.manager.vms.helper.MonitoringEmulator; -import org.tizen.emulator.manager.vms.helper.VMLauncherException; -import org.tizen.emulator.manager.vms.xml.CpuType; -import org.tizen.emulator.manager.vms.xml.OptionType; -import org.tizen.emulator.manager.vms.xml.TouchType; - -public class Launcher implements ILauncher { - private boolean isConsole = false; - private String binPath = null; - private static Launcher launcher; - - - // Option names in vm_config.xml - // Add if need. - public static final String OPT_DEVICE = "device"; - public static final String OPT_NFC = "nfc"; - public static final String OPT_BATTERY = "battery"; - public static final String OPT_CAMERA = "camera"; - public static final String OPT_HWKEY = "hwkey"; - public static final String OPT_SWAP = "swap"; - public static final String OPT_CODEC = "codec"; - - public static final String OPT_JACK = "jack"; - public static final String OPT_EARJACK = "earjack"; - public static final String OPT_USB = "usb"; - public static final String OPT_CHARGER = "charger"; - - public static final String OPT_SENSOR = "sensor"; - public static final String OPT_ACCEL = "accel"; - public static final String OPT_GYRO = "gyro"; - public static final String OPT_GEO = "geo"; - public static final String OPT_LIGHT = "light"; - public static final String OPT_PROXI = "proxi"; - public static final String OPT_HAPTIC = "haptic"; - public static final String OPT_PRESS = "press"; // pressure - public static final String OPT_UV = "uv"; // ultra violet - public static final String OPT_HRM = "hrm"; // heartbeat rate meter - - public static Launcher getInstance() { - if (launcher == null) { - launcher = new Launcher(); - } - return launcher; - } - - private Launcher() { - isConsole = EmulatorManager.isConsoleMode(); - } - - - @Override - public List getLaunchCommand(VMProperty property, String path) throws VMLauncherException { - String binary; - String hwVirtualization = ""; - int portNo; - - /* check available port number */ - portNo = new PortHelper().getPortNo(); - if(portNo == -1) { - String error = "Can not execute emulator." - + StringResources.NEW_LINE - + "All available ports are in use."; - throw new VMLauncherException(error); - } - - if (property.getArch().toString().equals("x86")) { - if (EmulatorManager.isWin()) { - binary = "emulator-x86.exe"; - } else { - binary = "emulator-x86"; - } - } else { - if (EmulatorManager.isWin()) { - binary = "emulator-arm.exe"; - } else { - binary = "emulator-arm"; - } - } - - // check disk image - File child = new File(property.getConfiguration().getBaseInformation().getDiskImage().getCurrentDiskImage().getValue()); - File base = new File(property.getConfiguration().getBaseInformation().getDiskImage().getBaseDiskImage().getValue()); - if (!child.exists()) { - throw new VMLauncherException("Child disk image does not exist." - + StringResources.NEW_LINE + child.getAbsolutePath() - , true); - } - if (!base.exists()) { - throw new VMLauncherException("Base disk image does not exist." - + StringResources.NEW_LINE + base.getAbsolutePath() - , true); - } - - if (property.getConfiguration().getUsability().isHwVirtualization() && CheckVirtualization.getInstance().isSupportVirtualization()) { - hwVirtualization = CheckVirtualization.getInstance().getVirtualizationEnableCommnad(); - } else { - hwVirtualization = CheckVirtualization.getInstance().getVirtualizationDisableCommnad(); - } - - List cmd = new ArrayList(); - int width = property.getConfiguration().getDevice().getDisplay().getResolution().getWidth(); - int height = property.getConfiguration().getDevice().getDisplay().getResolution().getHeight(); - String skinPath = null; - if (property.getConfiguration().getDevice().getDisplay().getSkinPath() != null) { - skinPath = property.getConfiguration().getDevice().getDisplay().getSkinPath().getPath(); - if (skinPath != null && skinPath.isEmpty()) { - skinPath = null; - } - } - String fileshare = property.getConfiguration().getUsability().getFileSharing().getPath(); - String osVersion = System.getProperty("os.version"); - boolean isFileshare = true; - if (fileshare == null) { - isFileshare = false; - } - - /* get MAC address of host set as guest MAC address */ - String macAddr = SettingInfoFile.getMACaddr(); - - if(macAddr.isEmpty()) { - macAddr = "52:54:00:12:34:56"; - EMLogger.getLogger().log(Level.INFO, String.format("MAC set as default = %s", macAddr)); - } - - if (path == null || path.isEmpty()) { - cmd.add(FilePathResources.getBinPath() + File.separator + binary); - } else { - this.binPath = path; - cmd.add(binPath + File.separator + binary); - } - - cmd.add("--skin-args"); - cmd.add("width=" + width); - cmd.add("height=" + height); - if (skinPath != null) { - cmd.add("skin.path=" + skinPath); - } - - if (RemoteManager.getSpiceMode()) { - cmd.add("hb.ignore=true"); - } - - cmd.add("--qemu-args"); - - // x86 part of cmd - if (property.getArch().toString().equals("x86")) { - cmd.add("-drive"); - cmd.add("file=" + property.getConfiguration().getBaseInformation().getDiskImage().getCurrentDiskImage().getValue()+ ",if=virtio,index=1"); - cmd.add( "-boot"); - cmd.add("c"); - cmd.add("-append"); - String kernelOption = "console=ttyS0 video=LVDS-1:" - + width - + "x" - + height - + "-32@60" - + " dpi=" + property.getConfiguration().getDevice().getDisplay().getDensity().getValue() * 10 - + " ip=10.0.2.16::10.0.2.2:255.255.255.0::eth0:none" - + " vm_name=" + property.getConfiguration().getBaseInformation().getName(); - /* set virtio-9p string in case of using directory share [kernel option] */ - if(isFileshare) { - kernelOption += " virtio-9p"; - } - - /* - if(property.getPropertyValue().skin != null && property.getPropertyValue().skin.getButtonType() == SKIN_BUTTON_TYPE.THREE_BUTTON_TYPE) { - kernelOption += " platform_feature=3btn"; - } else { - kernelOption += " platform_feature=1btn"; - } - */ - - cmd.add(kernelOption); - - /* use fileshare [non-kernel option] */ - if(isFileshare) { - cmd.add("-virtfs"); - cmd.add("local,path=" + property.getConfiguration().getUsability().getFileSharing().getPath() +",security_model=none,mount_tag=fileshare"); - } - - cmd.add("-serial"); - cmd.add("file:" + FilePathResources.getTizenVmsPath() + File.separator + property.getName() + File.separator + "logs" + File.separator + "emulator.klog"); - CpuType cpuOption = property.getConfiguration().getDevice().getCPU(); - if (cpuOption != null) { - cmd.add("-smp"); - cmd.add(String.valueOf(cpuOption.getValue().getValue())); - } - cmd.add("-m"); - cmd.add(String.valueOf(property.getConfiguration().getDevice().getRAM().getSize().getValue())); - cmd.add("-M"); - cmd.add("maru-x86-machine"); - cmd.add("-net"); - cmd.add("nic,model=virtio,macaddr=" + macAddr); - cmd.add("-soundhw"); - cmd.add("all"); - cmd.add("-usb"); - cmd.add("-vga"); - cmd.add("none"); - cmd.add("-enable-vigs"); - cmd.add("-L"); - cmd.add(FilePathResources.getBiosPath()); - cmd.add("-kernel"); - cmd.add(FilePathResources.getKernelPath() + File.separator+ "bzImage." + property.getArch().toString()); - cmd.add("-net"); - cmd.add("user,dhcpstart=10.0.2.16"); - cmd.add("-rtc"); - cmd.add("base=utc"); - if (property.getConfiguration().getBaseInformation().getDiskImage().getSwapDiskImage() != null - && checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_SWAP))) { - cmd.add("-drive"); - cmd.add("file=" + property.getConfiguration().getBaseInformation().getDiskImage().getSwapDiskImage().getValue() + ",if=virtio,index=2"); - } - - /* append HW virtualization option if supports */ - if (hwVirtualization != null) { - cmd.add(hwVirtualization); - } - - // add hw gl acceleration - if (property.getConfiguration().getUsability().isHwGLAcceleration() - && CheckVirtualization.getInstance().isSupportGPU()) { -// cmd.add(CheckVirtualization.getInstance().getGPU_enable_command()); - cmd.add("-vigs-backend"); - cmd.add("gl"); - cmd.add("-enable-yagl"); - cmd.add("-yagl-backend"); - cmd.add("vigs"); - } else { - cmd.add("-vigs-backend"); - cmd.add("sw"); - } - - // for suspend - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE - && property.getConfiguration().getUsability().isSupoortSuspend()) { - cmd.add("-enable-suspend"); - } - - // for bootup status - cmd.add("-device"); - cmd.add("virtio-esm-pci"); - - // for host keyboard - cmd.add("-device"); - cmd.add("virtio-keyboard-pci"); - - // for ecp - cmd.add("-device"); - cmd.add("virtio-evdi-pci,profile=" + property.getPropertyValue().profile - + "-" + property.getPropertyValue().version); - - // for brightness - cmd.add("-device"); - cmd.add("maru-brightness"); - - // for vmodem - cmd.add("-device"); - cmd.add("virtio-vmodem-pci"); - - // for hardware key - if (checkOnOff(property.getPropertyValue().getAdvancedOptionValue(OPT_HWKEY))) { - cmd.add("-device"); - cmd.add("virtio-hwkey-pci"); - } - - // for codec - if (checkOnOff(property.getPropertyValue().getAdvancedOptionValue(OPT_CODEC))) { - cmd.add("-device"); - cmd.add("codec-pci"); - } - - // for nfc - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_NFC))) { - cmd.add("-device"); - cmd.add("virtio-nfc-pci"); - } - - // for battery - cmd.add("-device"); - cmd.add("virtio-power-pci"); - /*if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_BATTERY))) { - cmd.add("-device"); - cmd.add("virtio-power-pci"); - }*/ - - // for camera - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_CAMERA))) { - cmd.add("-device"); - cmd.add("maru-camera"); - } - - cmd.add("-device"); - TouchType touchType = property.getConfiguration().getDevice().getTouch(); - if (touchType != null) { - cmd.add("virtio-touchscreen-pci,max_point=" + touchType.getMaxTouchPoint()); - } else { - cmd.add("virtio-touchscreen-pci"); - } - - // for sensor (accel, geo, gyro, light, proxi, haptic, pressure, ultra violet, heart rate meter) - OptionType sensor = property.getPropertyValue().getAdvancedOption(OPT_SENSOR); - if (sensor != null) { - cmd.add("-device"); - - StringBuilder sb = new StringBuilder(); - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_ACCEL))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("accel"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_GEO))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("geo"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_GYRO))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("gyro"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_LIGHT))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("light"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_PROXI))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("proxi"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_HAPTIC))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("haptic"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_PRESS))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("press"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_UV))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("uv"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_HRM))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("hrm"); - } - - if (sb.toString().isEmpty()) { - cmd.add("virtio-sensor-pci"); - } else { - sb.insert(0, "virtio-sensor-pci,sensors="); - cmd.add(sb.toString()); - } - } - - // for jacks (enabled charger, earjack and usb) - cmd.add("-device"); - cmd.add("virtio-jack-pci,jacks=earjack&charger&usb"); - /* OptionType jacks = property.getPropertyValue().getAdvancedOption(OPT_JACK); - if (jacks != null) { - cmd.add("-device"); - - StringBuilder sb = new StringBuilder(); - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_JACK, OPT_EARJACK))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("earjack"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_JACK, OPT_CHARGER))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("charger"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_JACK, OPT_USB))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("usb"); - } - - if (sb.toString().isEmpty()) { - cmd.add("virtio-jack-pci"); - } else { - sb.insert(0, "virtio-jack-pci,jacks="); - cmd.add(sb.toString()); - } - } */ - } - - /* append user added options if exists */ - String advancedOptions = property.getConfiguration().getUsability().getAdvancedOptions(); - if (advancedOptions != null) { - String[] arrOptions = advancedOptions.split(" "); - for (String option : arrOptions) { - cmd.add(option); - } - } - - /* spice options */ - if (RemoteManager.getSpiceMode() - || CheckingRunningEmulator.isRemote(property)) { - cmd.add("-spice"); - cmd.add("disable-ticketing"); - cmd.add("-device"); - cmd.add("virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0"); - cmd.add("-chardev"); - cmd.add("spicevmc,id=vdagent,name=vdagent"); - cmd.add("-device"); - cmd.add("virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0"); - } - - EMLogger.getLogger().log(Level.INFO, "Starting Emulator Command : "); - String temp = cmd.get(0) + " "; - for (String s : cmd.subList(1, cmd.size())) { - temp += ("\"" + s + "\" "); - } - EMLogger.getLogger().log(Level.INFO, temp); - System.out.println("cmd : " + cmd); - return cmd; - } - - @Override - public boolean launch(VMProperty property) throws VMLauncherException { - return launch(property, false); - } - - @Override - public boolean launch(VMProperty property, boolean wait) throws VMLauncherException { - List cmd; - - cmd = getLaunchCommand(property, null); - - if (cmd == null) { - return false; - } - - CheckingRunningEmulator.addEmulator(property); - MonitoringEmulator monitor = new MonitoringEmulator(property); - Process process = launch(cmd); - if (process != null) { - monitor.setProcess(process); - monitor.start(); - if (wait) { - try { - monitor.join(); - } catch (InterruptedException e) { - EMLogger.getLogger().warning(e.getMessage()); - } - if (monitor.isSuccess()) { - return true; - } else { - return false; - } - } - return true; - } else { - CheckingRunningEmulator.removeEmulator(property, false); - monitor.interrupt(); - return false; - } - } - - @Override - public Process launch(List cmd) { - ProcessBuilder pb = new ProcessBuilder(cmd); - Map env = pb.environment(); - if (EmulatorManager.isLinux()) { - String value = env.get("LD_LIBRARY_PATH"); - env.put("LD_LIBRARY_PATH", ((value == null) ? "" : value + ":") + FilePathResources.getBinPath() + ":" + FilePathResources.getRemotePath() + File.separator + "lib:"); - EMLogger.getLogger().log(Level.INFO, "LD_LIBRARY_PATH=" + env.get("LD_LIBRARY_PATH")); - } - env.put("GL_VERSION", "2"); - EMLogger.getLogger().log(Level.INFO, "GL_VERSION: " + env.get("GL_VERSION")); - - if (this.binPath == null || this.binPath.isEmpty()) { - pb.directory(new File(FilePathResources.getBinPath())); - } else { - pb.directory(new File(this.binPath)); - } - - Process process = null; - try { - process = pb.start(); - } catch (IOException e) { - if (!isConsole) { - MessageDialog msg = new MessageDialog(new Shell(Display.getCurrent())); - msg.openWarningDialog("Failed to launch" + StringResources.NEW_LINE + e.getMessage()); - } - EMLogger.getLogger().log(Level.WARNING, "Failed to launch." + StringResources.NEW_LINE + e.getMessage()); - } - - return process; - } - - - private boolean checkOnOff(String value) { - if (value.toLowerCase().equals("on")) { - return true; - } else if (value.toLowerCase().equals("off")) { - return false; - } else if (value.isEmpty()){ - return true; - } else { - return false; - } - } - - @Override - public void sendRemoteLog(String msg) { - EMLogger.getLogger().info("Launcher log : " + msg); - } -} diff --git a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/VMWorker.java b/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/VMWorker.java deleted file mode 100644 index 91c62df..0000000 --- a/plugin-project/mobile-plugin/src/org/tizen/emulator/manager/mobile/vms/VMWorker.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * Minkee Lee - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.mobile.vms; - -import org.tizen.emulator.manager.vms.VMWorkerCommon; - -public class VMWorker extends VMWorkerCommon { - - @Override - public void initLauncher() { - setLauncher(Launcher.getInstance()); - } - -} diff --git a/plugin-project/wearable-plugin/.classpath b/plugin-project/wearable-plugin/.classpath deleted file mode 100644 index 3b8e13c..0000000 --- a/plugin-project/wearable-plugin/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/plugin-project/wearable-plugin/.project b/plugin-project/wearable-plugin/.project deleted file mode 100644 index 28d2b2c..0000000 --- a/plugin-project/wearable-plugin/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - wearable-plugin - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/plugin-project/wearable-plugin/res/wearable-2.4_add_new_hover.gif b/plugin-project/wearable-plugin/res/wearable-2.4_add_new_hover.gif deleted file mode 100644 index 702f2423dcea701d3ea61921a7b2edf1212b27b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1592 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 diff --git a/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_hover.gif b/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_hover.gif deleted file mode 100644 index e70294ff142ee04e593737b71ebf2b7a2de2ea38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 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 B@vZ;> diff --git a/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_nml.gif b/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_image_nml.gif deleted file mode 100644 index 56d61f53c9d611cbfd4a282f5ecee179311ec90f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1941 zcmd6k`9Bj51IOnYxq2M0ax9jkIc9yGL&#CtV#s}uBqBwLNFL`HBWIfBzQ-6d$Hsia za<)qPQha^WG&00cRNC|O{1wmVhxgC#_v>Siyku$?904c-Z~(u@=krl+Ui9bF^<8v) z3&j^5Vq$Kgs&U5D(#9w7YDHU5ReN70sTbkoigb2srZSw|z1@8S-FyPb1EU^(=q|?d z&Os)fIbBbp)V6m1J1wJ}*j?92Yoan*`~K`7o$4Ez>>ZxahUx46VW?+d{IrcqXzi}; zq*ZtHRkioREzUPl2YZGmh*Ua_Ib~{P1Glu+f&GDWc11W{u}8U(2S<&~&UyNyJ^TWF zgF?ImgI~@qta3Lw>l;KW4Xg=KgJ?sbFrBmdP<=x~Q*#8$`K&QqA8rOSG%_+X-`?IH z9v&uQg%07UsI0%_?PnV76>Y)&pNFCSxdT3Do{ z^l{k}d^zE1MP;S%X)COS2$=SSncj3M5*%9n?CL7`~lAZiMTeuxa*IS8zel}{_YK9H-38Xb_;zk zp=nEVVD?M!K(xq2==AJ%NG$d>tWomKPUvW%kRxZ~4KM62UgWHa>$4Q@964mF5=D>O z5EHz^U3x+9z5TbeC%~-Cm-j)br&t%Q;y3(d_0_{Muu7tlG-sYN=9zMi7Qc49S=5B# zML*nN4Yl(10y}1Qw~OzhovY#>Fu$<5Wfcqt|3~?!-hWbd55K8Kyp=NfkanbqP)#8o z(;~>BjBJ)OPh4LcO%pLc0H?9Bjo>I$pXWy`u-f}$id15=O2!IOK{?Z5Hk_TOEjwS4 z%YCMGH9|IpNzA7vzquS-6qc34rQ&hq?N0K6Gg7kTkkGdkDxlD%dD z#aR2=O}ln6bV+c|vDycMZ{sw}!j%+NpF~-~8*yZOOK4s!@rDW^Vg2w-atsjLa5G@Z zXDv4i_#_;Ug643F)3*+^Vjno^ER@1A5lspAZ@u?x5*^3a-+;wk_4rg5t7$x$@sM;m8Py`&62ls6WU_7qTdwE#0 zss%K3^xiLYIKsfchCebP;~(Aq4Y){T-Zh}N6M$Ls`pi~eTuhYG?WFDQR9G8%TCizh zbNnk3x80xv_c!b}EuP*PwfOdw{Ss)6qYQO49P7gBdMWQwHAnEoVrRP}%8Ub7au*N& zG0mH`9fHCt4riXkNq`Io_h-IqnkK+R;N;k!_RqfvU&w}Q3ZV;ix?#Kiu>FVHK8cvR`^0G|NX&i7QJWrGq5_J7FqFtwZwir^*lp> zGUxPTlLC22;r5s2f1|hU{_5uxsH0ZbuKlQ_$xXxm`H3e<@S!`MeEPsHO9Gq3BhQ&= ze4Uq29OUnrr8`CLqtM5HVH`G`7`(%x^8@eJ?jHWg;|<+P?%8K=4Q)D(SN&=ptDjYL zxhEc-26*U3TfyB<9pnZ!f=w;ISFEPW->iPW2(gx80n-&rKD3(7+sGJ*W}IF`_kD*G zHWOIsWSd~|W8Y`ieRLiEPGKk8LcUg3 zJKm}g6_f0^_*4L6$^=@yz9+SE^<+$6uP!Vmx?6^=ka_^0ODc@da$_qMdS5cEjEU(g zWP?7(SD3%wfiI_?x^wklY)u2;AzE!Cy@;?iWC4I9sR1^a=<>@}m_*?#wi5UaN{XAryY6q&W$pZHJ%qWUz~yVjG}yJ4jC!?{PLx6BdI-`fc$Z&%XI|HVkQr zmUeqQD#y_eKw5;rD5d3Y97DGjvoI&Q((;8B+C|L?&>Du+Q`?5}6Cz#iC6m87h ze2NL)!s@2p5FLj*vJasEK_zgi#W}@7tkIv!AjC6Ke{#C|#;&3Lyp82n;Un9hY6>dg z=Mwq)c{#p&wF;p?U|_V=@$huzEG?$CYjAE+`Ch$Ng9t44S?+}kwL(?dEskNA-SBbN o@{h(_oZ=_nRDR!UvX&ycWL=)ERoZVxpop$zlkOLV1p(*&10LdbJ^%m! diff --git a/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_selected.gif b/plugin-project/wearable-plugin/res/wearable-2.4_emulator_list_selected.gif deleted file mode 100644 index c4194f71d8409b54828a571bb3f3692fb3642a56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmZ?wbhEHb%ww3waFqcB{{R2a;MMTq%a1SLe|`S;^UvRZ645=1i4zQRW|$Sswk(?C zQM)9tc}3Ceopp=%?>cvP?}dB!U%Y4bX=L?l;t6i!3uzY$?-Y&fQc0Pll`+-6e7^XE6OWcM zlQ`?FB}`AI5|cb9liH?TyUWy=I7OH=_Z&Iu#LOh-dF;#{@3R*+ zp1*iy$>pmzdamERQ+fODgOd9XpF}@?`t{p<&HuliT|FPCRtRh0Lic*Lr#ns3gJ=7vyR}+wO%0tI z?w_W*(=;W#Ki<6UsKvIV$j)^6WvM&N5~G{**^jYWY>$tvEr0)X>2~wD`11PetZwEO zch4;<=b9XR=AFSKtDb|dbgTe5N#6oBh=u<1aI=>c;D9 z*8aNirhmIPbAN=*sdx8s7k|(D7xH`R>*f3PP46#l_%h+7_}cZI^=kiTFjRClSRGw1 z)423y`;;ax!xJG!Ogs(qWmq>9dg}=nJ@jT;yJwRBL$NJ23|wrBYgRZhN~~GLq$)dO zg%kT+4n@Z<8JQ+|t|J$V{h{a7=_+*k#*h9z8LWc(pOuk{6 Ps*+q542 - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import java.util.List; - -import org.tizen.emulator.manager.ui.detail.item.CommonItemListFactory; -import org.tizen.emulator.manager.ui.detail.item.IViewItem; -import org.tizen.emulator.manager.vms.xml.template.ItemList; - -public class ItemListFactory extends CommonItemListFactory { - - private static void makeItemListOld(List list) { - List itemList = (List)list; - - itemList.add(new TNameTextItem()); - itemList.add(new TDisplayItem()); - itemList.add(new TRAMItem()); - itemList.add(new TTouchPointItem()); - itemList.add(new TFileShareItem()); - itemList.add(new THWSupportItem()); - - } - - - @Override - public void makeItemList(List itemList, - ItemList template) { - if (template == null) { - makeItemListOld(itemList); // TODO old - } else { - makePropertyItemList(itemList, template.getPropertyList(), template.getProfile(), true); - makeDeviceItemList(itemList, template.getDeviceList()); - - } - } - - - @Override - public void makeCustomItemList(List itemList, - List templateList) { - if (templateList == null || templateList.size() == 0) { - makeItemListOld(itemList); // TODO old - } else { - - makeCustomDeviceItemList(itemList, templateList); - } - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TDisplayItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TDisplayItem.java deleted file mode 100644 index 0dceef7..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TDisplayItem.java +++ /dev/null @@ -1,522 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; -import java.util.ArrayList; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyAdapter; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Spinner; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.platform.Skin; -import org.tizen.emulator.manager.platform.SkinList; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.detail.item.ItemChangeState; -import org.tizen.emulator.manager.ui.widgets.ImageCombo; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.RESOLUTION; -import org.tizen.emulator.manager.vms.SKIN_TYPE; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TDisplayItem extends DetailViewItem { - private RESOLUTION oldResolution; - private RESOLUTION newResolution; - private int oldDPI; - private int newDPI; - private Skin oldSkin; - private Skin newSkin; - - private ArrayList skinList; - - @Override - public void init() { - title = "Display"; - count = 3; - } - - @Override - public void setValue(VMPropertyValue value) { - value.resolution = newResolution; - value.dpi = newDPI; - value.skin = newSkin; - if (newSkin != null) { - value.skinPath = newSkin.getPath(); - } else { - value.skinPath = null; - } - } - - private ImageLabel reCategory; - private ImageLabel dpiCategory; - private ImageLabel skinCategory; - private ImageLabel resolution; - private ImageLabel dpi; - private ImageLabel skin; - - private static int CATEGORY_WIDTH = 66; - private static int INPUTBOX_WIDTH = 105; - private static Image CATEGORY_IMAGE = null; - private static Image INPUTBOX_ON_IMAGE = null; - private static Image INPUTBOX_OFF_IMAGE = null; - - private void drawCategory() { - if (CATEGORY_IMAGE == null) { - CATEGORY_IMAGE = PatchImageResources.getCategoryBox(CATEGORY_WIDTH); - } - - reCategory = new ImageLabel(compList.get(0), SWT.NONE); - reCategory.setText("Resolution"); - reCategory.setEnableImage(CATEGORY_IMAGE); - reCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - reCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = reCategory.getSize().x; - data.height = reCategory.getSize().y; - reCategory.setLayoutData(data); - - dpiCategory = new ImageLabel(compList.get(1), SWT.NONE); - dpiCategory.setText("Density"); - dpiCategory.setEnableImage(CATEGORY_IMAGE); - dpiCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - dpiCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = dpiCategory.getSize().x; - data.height = dpiCategory.getSize().y; - dpiCategory.setLayoutData(data); - - skinCategory = new ImageLabel(compList.get(2), SWT.NONE); - skinCategory.setText("Skin"); - skinCategory.setEnableImage(CATEGORY_IMAGE); - skinCategory.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - skinCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = skinCategory.getSize().x; - data.height = skinCategory.getSize().y; - skinCategory.setLayoutData(data); - } - - @Override - public void drawDetail() { - drawCategory(); - - if (INPUTBOX_OFF_IMAGE == null) { - INPUTBOX_OFF_IMAGE = PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH); - } - - resolution = new ImageLabel(compList.get(0), SWT.NONE); - resolution.setEnableImage(INPUTBOX_OFF_IMAGE); - - FormData data = new FormData(); - data.left = new FormAttachment(reCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = resolution.getSize().x; - data.height = resolution.getSize().y; - resolution.setLayoutData(data); - - dpi = new ImageLabel(compList.get(1), SWT.NONE); - dpi.setEnableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(dpiCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = dpi.getSize().x; - data.height = dpi.getSize().y; - dpi.setLayoutData(data); - - skin = new ImageLabel(compList.get(2), SWT.NONE); - skin.setEnableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(skinCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = skin.getSize().x; - data.height = skin.getSize().y; - skin.setLayoutData(data); - } - - private ImageCombo reCombo = null; - private Spinner dpiSpinner = null; - private ImageCombo skinCombo = null; - @Override - public void drawModify() { - drawCategory(); - - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH); - } - - reCombo = new ImageCombo(compList.get(0), SWT.NONE); - reCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - reCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - reCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - reCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - reCombo.setEnabled(true); - reCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - FormData data = new FormData(); - data.left = new FormAttachment(reCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - reCombo.setLayoutData(data); - - dpi = new ImageLabel(compList.get(1), SWT.NONE); - dpi.setEnableImage(INPUTBOX_ON_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(dpiCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = dpi.getSize().x; - data.height = dpi.getSize().y; - dpi.setLayoutData(data); - - dpi.setLayout(new FormLayout()); - - dpiSpinner = new Spinner(dpi, SWT.NONE); - dpiSpinner.setValues(0, 0, 999, 0, 1, 1); - dpiSpinner.setTextLimit(3); - - dpiSpinner.setBackground(ColorResources.DETAIL_INPUT_BOX_COLOR.getColor()); - dpiSpinner.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - dpiSpinner.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - - data = new FormData(); - data.left = new FormAttachment(0, 5); - data.top = new FormAttachment(0, 1); - data.right = new FormAttachment(100, -2); - data.bottom = new FormAttachment(100, -2); - dpiSpinner.setLayoutData(data); - - - skinCombo = new ImageCombo(compList.get(2), SWT.NONE); - skinCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - skinCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - skinCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - skinCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - skinCombo.setEnabled(true); - skinCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - data = new FormData(); - data.left = new FormAttachment(skinCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - skinCombo.setLayoutData(data); - - addWidgetListener(); - } - - private void addWidgetListener() { - reCombo.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - String re = reCombo.getText(); - reCombo.setToolTipText(reCombo.getText()); - - RESOLUTION d = DisplayResolution.getInstance().findResolution(re); - if (d != null) { - EMLogger.getLogger().fine("Change Resolution -> " + d.getStrTypeValue()); - newResolution = d; - changeResolution(d); - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - - dpiSpinner.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - newDPI = dpiSpinner.getSelection(); - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - }); - - dpiSpinner.addKeyListener(new KeyAdapter() { - public void keyPressed(KeyEvent event) { - switch (event.keyCode) { - case SWT.CR: - case SWT.KEYPAD_CR: - ///TODO - getListener().ChangeState(ItemChangeState.CREATE); - break; - case SWT.ESC: - getListener().ChangeState(ItemChangeState.CANCEL); - break; - default: - // TODO - break; - } - } - }); - - skinCombo.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - String name = skinCombo.getText(); - skinCombo.setToolTipText(skinCombo.getText()); - - newSkin = SkinList.getInstance().findSkinUseName(name, skinList); - if (newSkin == null && name.equals(oldSkin.toString())) { - newSkin = oldSkin; - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - } - - @Override - public void closeItem() { - reCategory.dispose(); - dpiCategory.dispose(); - skinCategory.dispose(); - if (resolution != null) { - resolution.dispose(); - } - if (dpi != null) { - dpi.dispose(); - } - if (skin != null) { - skin.dispose(); - } - - if (reCombo != null) { - reCombo.dispose(); - } - - if (dpiSpinner != null) { - dpiSpinner.dispose(); - } - - if (skinCombo != null) { - skinCombo.dispose(); - } - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - resolution.setText(value.resolution.getStrTypeValue()); - resolution.setToolTipText(value.resolution.getStrTypeValue()); - - dpi.setText(Integer.toString(value.dpi)); - - skinList = value.baseImage.getPlatform().getSkins(); - if (value.skin != null) { - skin.setText(value.skin.getName()); - skin.setToolTipText(value.skin.getName()); - } else { - if (value.skinPath != null) { - value.skin = SkinList.getInstance().findSkinUsePath(value.skinPath, skinList); - } - if (value.skin != null) { - skin.setText(value.skin.getName()); - skin.setToolTipText(value.skin.getName()); - } else { - skin.setText(""); - skin.setToolTipText("check skin directory: ." + (value.skinPath == null ? "" : value.skinPath)); - } - } - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - oldResolution = newResolution = value.resolution; - newDPI = oldDPI = value.dpi; - newSkin = oldSkin = value.skin; - skinList = value.baseImage.getPlatform().getSkins(); - - //RESOLUTION - DisplayResolution.getInstance().initialize(oldResolution); - reCombo.removeAll(); - - String r = null; - int f = -1; - for (int i = 0; i < DisplayResolution.getInstance().getList().length; i++) { - r = DisplayResolution.getInstance().get(i); - if (r.equals(oldResolution.toString())) { - f = i; - } - reCombo.add(r); - } - - if (f == -1) { - reCombo.add(oldResolution.toString(), 0); - f = 0; - } - reCombo.select(f); - reCombo.setToolTipText(reCombo.getText()); - - // DPI - dpiSpinner.setSelection(value.dpi); - if (!isCreateMode()) { - dpiSpinner.setFocus(); - } - - // SKIN - settingSkinList(value.resolution); - - return true; - } - - private void settingSkinList(RESOLUTION re) { - skinCombo.removeAll(); - - int find = -1; - ArrayList skins = null; - - if (!isCreateMode() - && !DisplayResolution.getInstance().isMinResoluion(re) - && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) { - if (oldSkin != null) { - EMLogger.getLogger().fine("Add old skin: " + oldSkin.toString()); - skinCombo.add(oldSkin.toString()); - find = 0; - } - } else { - skins = SkinList.getInstance().findSkinList(re, skinList); - - Skin s = null; - for (int i = 0; i < skins.size(); i++) { - s = skins.get(i); - if (newSkin != null && newSkin.equals(s)) { - find = i; - } - skinCombo.add(s.toString()); - } - - if (find == -1) { - if (newSkin != null - && newSkin.getType() == SKIN_TYPE.GENERAL) { - skins.add(0, newSkin); - skinCombo.add(newSkin.toString(), 0); - } - if (skins.size() > 0) { - find = 0; - } - } - } - - if (find >= 0) { - skinCombo.select(find); - skinCombo.setToolTipText(skinCombo.getText()); - newSkin = skins == null ? oldSkin : skins.get(find); - } else { - EMLogger.getLogger().warning("To initial Skin Combo has been failed."); - } - } - - private void changeResolution(RESOLUTION re) { - // DPI - if (!DisplayResolution.getInstance().isMinResoluion(re) - && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) { - EMLogger.getLogger().fine("Emulator Manager does not support this resolution -> " + re.getStrTypeValue()); - dpiSpinner.setSelection(oldDPI); - } else { - dpiSpinner.setSelection(re.getDPI()); - } - - // SKIN - settingSkinList(re); - } - - private static boolean isShareMinMode = false; - - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - if (!isCreateMode() && dpiSpinner != null) { - dpiSpinner.setFocus(); - } - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TFileShareItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TFileShareItem.java deleted file mode 100644 index 34d2b91..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TFileShareItem.java +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import java.io.File; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.MainDialog; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TFileShareItem extends DetailViewItem { - private boolean oldSupport; - private boolean newSupport; - - private String newPath; - private String oldPathName; - private String newPathName; - private DirectoryDialog sharedFD; - - @Override - public void init() { - title = "File Sharing"; - count = 2; - } - - @Override - public void setValue(VMPropertyValue value) { - value.isFileShareSupport = newSupport; - - value.fileSharePath = newPath; - value.fileSharePathName = newPathName; - } - - - private ImageLabel supportLabel; - private ImageLabel dirCategory; - private ImageLabel directoryLabel; - - private static int INPUTBOX_WIDTH = 175; - private static int DIR_CATEGORY_WIDTH = 66; - private static int DIR_INPUTBOX_OFF_WIDTH = 105; - // for modify - private static int DIR_INPUTBOX_ON_WIDTH = 133; - - @Override - public void drawDetail() { - supportLabel = new ImageLabel(compList.get(0), SWT.NONE); - supportLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - dirCategory = new ImageLabel(compList.get(1), SWT.NONE); - dirCategory.setText("Directory"); - dirCategory.setEnableImage(PatchImageResources.getCategoryBox(DIR_CATEGORY_WIDTH)); - dirCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - - directoryLabel = new ImageLabel(compList.get(1), SWT.NONE); - directoryLabel.setEnableImage(PatchImageResources.getInputBoxOff(DIR_INPUTBOX_OFF_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = supportLabel.getSize().x; - data.height = supportLabel.getSize().y; - supportLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = dirCategory.getSize().x; - data.height = dirCategory.getSize().y; - dirCategory.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(dirCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = directoryLabel.getSize().x; - data.height = directoryLabel.getSize().y; - directoryLabel.setLayoutData(data); - - comp.layout(true, true); - } - - private Label stateLabel; - private ImageButton selectSupport; - private ImageButton selectDirButton; - - private static String toolTipforMac = "Please refer to file sharing section in SDK documentation."; - @Override - public void drawModify() { - - makeModifyWidget(); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - selectSupport.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(selectSupport, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = TOGGLE_BUTTON_WIDTH; - stateLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0,INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = directoryLabel.getSize().x; - data.height = directoryLabel.getSize().y; - directoryLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(directoryLabel, 5); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = FILE_SELECT_BUTTON_WIDTH; - data.height = FILE_SELECT_BUTTON_HEIGHT; - selectDirButton.setLayoutData(data); - } - - private void makeModifyWidget() { - selectSupport = new ImageButton(compList.get(0), SWT.TOGGLE); - selectSupport.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - selectSupport.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - if (selectSupport.isSelection()) { // NOT SUPPORT - newSupport = false; - stateLabel.setText(StringResources.NOT_SUPPORTED); - directoryLabel.setText(""); - selectDirButton.setEnabled(false); - } else { // SUPPORT - newSupport = true; - stateLabel.setText(StringResources.SUPPORTED); - directoryLabel.setText(newPathName); - selectDirButton.setEnabled(true); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - - stateLabel = new Label(compList.get(0), SWT.NONE); - stateLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - stateLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - stateLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - - directoryLabel = new ImageLabel(compList.get(1), SWT.NONE); - directoryLabel.setEnableImage(PatchImageResources.getInputBoxON(DIR_INPUTBOX_ON_WIDTH)); - directoryLabel.setEnabled(false); - - selectDirButton = new ImageButton(compList.get(1), SWT.PUSH); - selectDirButton.setImages( - ImageResources.BUTTON_FILE_NOMAL.getImage(), - ImageResources.BUTTON_FILE_HOVER.getImage(), - ImageResources.BUTTON_FILE_PUSH.getImage(), - ImageResources.BUTTON_FILE_DISABLE.getImage()); - - selectDirButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (sharedFD == null) { - sharedFD = new DirectoryDialog( - MainDialog.getShell(), SWT.OPEN); - sharedFD.setText("Select directory"); - } - - EMLogger.getLogger().fine("Open Directory Dialog"); - String path = sharedFD.open(); - - if (path != null) { - EMLogger.getLogger().fine("Select directory for FileShare: " + path); - newPath = path; - newPathName = path.substring(path - .lastIndexOf(File.separator) + 1, path.length()); - directoryLabel.setText(newPathName); - directoryLabel.setToolTipText(newPath); - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - supportLabel.setText(value.isFileShareSupport - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - - directoryLabel.setText(value.isFileShareSupport - ? value.fileSharePathName - : ""); - directoryLabel.setToolTipText(value.fileSharePath); - - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newSupport = oldSupport = value.isFileShareSupport; - newPath = value.fileSharePath; - newPathName = oldPathName = value.fileSharePathName; - - if (oldSupport) { - selectSupport.setSelection(false); - stateLabel.setText(StringResources.SUPPORTED); - directoryLabel.setText(oldPathName); - directoryLabel.setToolTipText(newPath); - selectDirButton.setEnabled(true); - } else { - selectSupport.setSelection(true); - stateLabel.setText(StringResources.NOT_SUPPORTED); - directoryLabel.setText(oldPathName); - selectDirButton.setEnabled(false); - } - return true; - } - - @Override - public void closeItem() { - if (supportLabel != null) { - supportLabel.dispose(); - } - - if (dirCategory != null) { - dirCategory.dispose(); - } - - if (directoryLabel != null) { - directoryLabel.dispose(); - } - - if (stateLabel != null) { - stateLabel.dispose(); - } - - if (selectSupport != null) { - selectSupport.dispose(); - } - - if (selectDirButton != null) { - selectDirButton.dispose(); - } - } - - private static boolean isShareMinMode = false; - - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - } - - @Override - public boolean checkValue() { - return true; - } - -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/THWSupportItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/THWSupportItem.java deleted file mode 100644 index 21a32dd..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/THWSupportItem.java +++ /dev/null @@ -1,384 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.CheckVirtualization; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class THWSupportItem extends DetailViewItem { - private boolean oldHWSupport; - private boolean newHWSupport; - private boolean oldGPUSupport; - private boolean newGPUSupport; - - @Override - public void init() { - title = "HW Support"; - count = 2; - } - - @Override - public void setValue(VMPropertyValue value) { - value.isHWVirtualization = newHWSupport; - value.isGLAcceleration = newGPUSupport; - } - - private ImageLabel virtualCategory; - private ImageLabel GPUCategory; - - private ImageLabel virtualLabel; - private ImageLabel GPULabel; - - private static int INPUTBOX_WIDTH = 105; - private static int CATEGORY_WIDTH = 66; - - private static String GPUToolTipText = "If you enable the GPU option," - + StringResources.NEW_LINE - + "the rendering performance of video player or camera may degrade."; - private static String CPUDisableToolTipText = "Your system cannot support HW virtualization." - + StringResources.NEW_LINE + "Try install KVM (linux) or HAX (windows or mac)"; - private static String GPUDisableToolTipText = "Your system cannot support HW OpenGL acceleration." - + StringResources.NEW_LINE + "Try upgrade graphic card driver."; - private void makeCategory() { - virtualCategory = new ImageLabel(compList.get(0), SWT.NONE); - virtualCategory.setEnableImage(PatchImageResources.getCategoryBox(CATEGORY_WIDTH)); - virtualCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - virtualCategory.setText("CPU VT"); - - GPUCategory = new ImageLabel(compList.get(1), SWT.NONE); - GPUCategory.setEnableImage(PatchImageResources.getCategoryBox(CATEGORY_WIDTH)); - GPUCategory.setEnableFontColor(ColorResources.DETAIL_CATEGORY_FONT_COLOR.getColor()); - GPUCategory.setText("GPU"); - GPUCategory.setToolTipText(GPUToolTipText); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = virtualCategory.getSize().x; - data.height = virtualCategory.getSize().y; - virtualCategory.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = GPUCategory.getSize().x; - data.height = GPUCategory.getSize().y; - GPUCategory.setLayoutData(data); - } - - @Override - public void drawDetail() { - makeCategory(); - - virtualLabel = new ImageLabel(compList.get(0), SWT.NONE); - virtualLabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - GPULabel = new ImageLabel(compList.get(1), SWT.NONE); - GPULabel.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - GPULabel.setToolTipText(GPUToolTipText); - - FormData data = new FormData(); - data.left = new FormAttachment(virtualCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = virtualLabel.getSize().x; - data.height = virtualLabel.getSize().y; - virtualLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = GPULabel.getSize().x; - data.height = GPULabel.getSize().y; - GPULabel.setLayoutData(data); - } - - private ImageButton virtualButton; - private ImageButton GPUButton; - private Label virtualState; - private Label GPUState; - @Override - public void drawModify() { - makeCategory(); - makeModifyWidget(); - - FormData data = new FormData(); - data.left = new FormAttachment(virtualCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - virtualButton.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(virtualButton, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = INPUTBOX_WIDTH - TOGGLE_BUTTON_WIDTH - INPUTBOX_RIGHT_GAP; - virtualState.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUCategory, 4); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = TOGGLE_BUTTON_WIDTH; - data.height = TOGGLE_BUTTON_HEIGHT; - GPUButton.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(GPUButton, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = INPUTBOX_WIDTH - TOGGLE_BUTTON_WIDTH - INPUTBOX_RIGHT_GAP; - GPUState.setLayoutData(data); - } - - private void makeModifyWidget() { - virtualButton = new ImageButton(compList.get(0), SWT.TOGGLE); - virtualButton.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - virtualButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (virtualButton.isSelection()) { // NOT SUPPORT - newHWSupport = false; - virtualState.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newHWSupport = true; - virtualState.setText(StringResources.SUPPORTED); - } - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - - virtualState = new Label(compList.get(0), SWT.NONE); - virtualState.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - virtualState.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - virtualState.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - - GPUButton = new ImageButton(compList.get(1), SWT.TOGGLE); - GPUButton.setImages(ImageResources.TOGGLE_ON_NOMAL.getImage(), - ImageResources.TOGGLE_ON_HOVER.getImage(), - ImageResources.TOGGLE_ON_PUSH.getImage(), - ImageResources.TOGGLE_OFF_NOMAL.getImage(), - ImageResources.TOGGLE_OFF_HOVER.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage(), - ImageResources.TOGGLE_OFF_PUSH.getImage()); //disable - - GPUButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (GPUButton.isSelection()) { // NOT SUPPORT - newGPUSupport = false; - GPUState.setText(StringResources.NOT_SUPPORTED); - } else { // SUPPORT - newGPUSupport = true; - GPUState.setText(StringResources.SUPPORTED); - } - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - - GPUButton.setToolTipText(GPUToolTipText); - - GPUState = new Label(compList.get(1), SWT.NONE); - GPUState.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - GPUState.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - GPUState.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - } - - private boolean isArm = false; - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - isArm = value.archType.equals("arm"); - - if (!CheckVirtualization.getInstance().isSupportVirtualization() - || isArm) { - virtualLabel.setText(StringResources.DISABLED); - virtualLabel.setToolTipText(CPUDisableToolTipText); - } else { - virtualLabel.setText(value.isHWVirtualization - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - virtualLabel.setToolTipText(""); - } - - if (!CheckVirtualization.getInstance().isSupportGPU() - || isArm) { - GPULabel.setText(StringResources.DISABLED); - GPULabel.setToolTipText(GPUDisableToolTipText); - } else { - GPULabel.setText(value.isGLAcceleration - ? StringResources.SUPPORTED - : StringResources.NOT_SUPPORTED); - GPULabel.setToolTipText(GPUToolTipText); - } - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - isArm = value.archType.equals("arm"); - if (isCreateMode() && isArm) { - newHWSupport = oldHWSupport = false; - newGPUSupport = oldGPUSupport = false; - } else { - newHWSupport = oldHWSupport = value.isHWVirtualization; - newGPUSupport = oldGPUSupport = value.isGLAcceleration; - } - - if (!CheckVirtualization.getInstance().isSupportVirtualization() - || isArm) { - virtualButton.setEnabled(false); - virtualState.setText(StringResources.DISABLED); - virtualState.setToolTipText(CPUDisableToolTipText); - } else { - if (oldHWSupport) { - virtualButton.setSelection(false); - virtualState.setText(StringResources.SUPPORTED); - } else { - virtualButton.setSelection(true); - virtualState.setText(StringResources.NOT_SUPPORTED); - } - virtualState.setToolTipText(""); - } - - if (!CheckVirtualization.getInstance().isSupportGPU() || isArm) { - GPUButton.setEnabled(false); - GPUState.setText(StringResources.DISABLED); - GPUState.setToolTipText(GPUDisableToolTipText); - } else { - if (oldGPUSupport /*&& !isArm - && CheckVirtualization.getInstance().isSupportGPU()*/) { - GPUButton.setSelection(false); - GPUState.setText(StringResources.SUPPORTED); - } else { - GPUButton.setSelection(true); - GPUState.setText(StringResources.NOT_SUPPORTED); - } - GPUState.setToolTipText(GPUToolTipText); - } - - return false; - } - - @Override - public void closeItem() { - if (virtualCategory != null) { - virtualCategory.dispose(); - } - - if (GPUCategory != null) { - GPUCategory.dispose(); - } - - if (virtualLabel != null) { - virtualLabel.dispose(); - } - - if (GPULabel != null) { - GPULabel.dispose(); - } - - if (virtualButton != null) { - virtualButton.dispose(); - } - - if (GPUButton != null) { - GPUButton.dispose(); - } - - if (virtualState != null) { - virtualState.dispose(); - } - - if (GPUState != null) { - GPUState.dispose(); - } - } - - private static boolean isShareMinMode = false; - @Override - protected void changeArrowState() { - super.changeArrowState(); - isShareMinMode = isMinMode; - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isRefresh) { - if (isMinMode) { - arrowButton.setSelection(false); - changeArrowState(); - } - } else { - if (isShareMinMode != isMinMode) { - arrowButton.setSelection(isShareMinMode); - changeArrowState(); - } - } - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TNameTextItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TNameTextItem.java deleted file mode 100644 index eecac41..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TNameTextItem.java +++ /dev/null @@ -1,482 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyAdapter; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.ui.MainDialog; -import org.tizen.emulator.manager.ui.VMsMainView; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.detail.item.ItemChangeState; -import org.tizen.emulator.manager.ui.dialog.MessageDialog; -import org.tizen.emulator.manager.ui.widgets.ImageButton; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.EmulatorVMList; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.VMPropertyValue; -import org.tizen.emulator.manager.vms.helper.HelperClass; - -public class TNameTextItem extends DetailViewItem { - private boolean isStandard; - - // for vm name - private String oldName = ""; - private String newName = ""; - - // for base image - private String subTitle; - private Label subTitleLabel; - - private String newPath; - private String newPathName; - private FileDialog baseImageFD; - private boolean isSelected; - - @Override - public void setValue(VMPropertyValue value) { - value.vmsName = newName; - - value.baseImagePath = newPath; - value.baseImagePathName = newPathName; - } - - @Override - public void init() { - title = "Name"; - subTitle = "Base Image"; - count = 2; - } - - @Override - protected void initTitle(boolean supportMinMode) { - super.initTitle(false); - - subTitleLabel = new Label(compList.get(1), SWT.NONE); - - subTitleLabel.setFont(FontResources.DETAIL_TITLE_FONT.getFont()); - subTitleLabel.setForeground(ColorResources.DETAIL_TITILE_FONT_COLOR.getColor()); - FormData data = new FormData(); - data.left = new FormAttachment(0, TITLE_LEFT_GAP); - data.top = new FormAttachment(0, TITLE_TOP_GAP); - data.height = TITLE_HEIGHT; - data.width = TITLE_WIDTH; - subTitleLabel.setLayoutData(data); - subTitleLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - subTitleLabel.addPaintListener(new PaintListener() { - @Override - public void paintControl(PaintEvent e) { - drawTitle(e, subTitle); - } - }); - } - - private ImageLabel nameLabel; - private ImageLabel baseImageLabel; - - private static int INPUTBOX_WIDTH = 175; - private static Image INPUTBOX_ON_IMAGE = null; - private static Image INPUTBOX_OFF_IMAGE = null; - - // for modify (base image) - private static int IMAGE_INPUTBOX_WIDTH = 133; - private static Image IMAGE_INPUTBOX_IMAGE = null; - - @Override - public void drawDetail() { - if (INPUTBOX_OFF_IMAGE == null) { - INPUTBOX_OFF_IMAGE = PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH); - } - - nameLabel = new ImageLabel(compList.get(0), SWT.NONE); - nameLabel.setEnableImage(INPUTBOX_OFF_IMAGE); - nameLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = nameLabel.getSize().x; - data.height = nameLabel.getSize().y; - nameLabel.setLayoutData(data); - - baseImageLabel = new ImageLabel(compList.get(1), SWT.NONE); - baseImageLabel.setEnableImage(INPUTBOX_OFF_IMAGE); - baseImageLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = baseImageLabel.getSize().x; - data.height = baseImageLabel.getSize().y; - baseImageLabel.setLayoutData(data); - - comp.layout(true, true); - } - - private Text nameText; - private ImageButton selectImageButton; - @Override - public void drawModify() { - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH); - } - if (IMAGE_INPUTBOX_IMAGE == null) { - IMAGE_INPUTBOX_IMAGE = PatchImageResources.getInputBoxON(IMAGE_INPUTBOX_WIDTH); - } - - makeModifyNameLabel(); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = nameLabel.getSize().x; - data.height = nameLabel.getSize().y; - nameLabel.setLayoutData(data); - - makeModifyBaseImage(); - - data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = baseImageLabel.getSize().x; - data.height = baseImageLabel.getSize().y; - baseImageLabel.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(baseImageLabel, 5); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = FILE_SELECT_BUTTON_WIDTH; - data.height = FILE_SELECT_BUTTON_HEIGHT; - selectImageButton.setLayoutData(data); - } - - private void makeModifyNameLabel() { - nameLabel = new ImageLabel(compList.get(0), SWT.NONE); - nameLabel.setEnableImage(INPUTBOX_ON_IMAGE); - nameLabel.setDisableImage(INPUTBOX_OFF_IMAGE); - nameLabel.setLayout(new FormLayout()); - - nameText = new Text(nameLabel, SWT.NONE); - nameText.setBackground(ColorResources.DETAIL_INPUT_BOX_COLOR.getColor()); - nameText.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - nameText.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - nameText.setTextLimit(VMProperty.MAX_NAME_LEN); - - FormData data = new FormData(); - data.left = new FormAttachment(0, 5); - data.top = new FormAttachment(0, 2); - data.right = new FormAttachment(100, -5); - data.bottom = new FormAttachment(100, -2); - nameText.setLayoutData(data); - - nameText.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - if (isCreateMode()) { - newName = nameText.getText(); - checkVMName(); - } - } - }); - - nameText.addKeyListener(new KeyAdapter() { - public void keyPressed(KeyEvent event) { - switch (event.keyCode) { - case SWT.CR: - case SWT.KEYPAD_CR: - ///TODO - getListener().ChangeState(ItemChangeState.CREATE); - break; - case SWT.ESC: - getListener().ChangeState(ItemChangeState.CANCEL); - break; - default: - // TODO - break; - } - } - }); - } - - private void checkVMName() { - if (HelperClass.checkImageName(newName, true)) { - if (isStandard) { - getListener().ChangeValue(true); - } else { - if (isSelected) { - getListener().ChangeValue(true); - } else { - getListener().ChangeValue(false); - } - } - } else { - getListener().ChangeValue(false); - } - } - - private void makeModifyBaseImage() { - baseImageLabel = new ImageLabel(compList.get(1), SWT.NONE); - baseImageLabel.setEnableImage(IMAGE_INPUTBOX_IMAGE); - baseImageLabel.setDisableImage(IMAGE_INPUTBOX_IMAGE); - - selectImageButton = new ImageButton(compList.get(1), SWT.PUSH); - selectImageButton.setImages( - ImageResources.BUTTON_FILE_NOMAL.getImage(), - ImageResources.BUTTON_FILE_HOVER.getImage(), - ImageResources.BUTTON_FILE_PUSH.getImage(), - ImageResources.BUTTON_FILE_DISABLE.getImage()); - - selectImageButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - if (baseImageFD == null) { - baseImageFD = new FileDialog(MainDialog.getShell(), SWT.OPEN); - baseImageFD.setText(String.format("Select existing Base Image")); - String[] filter = null; - String[] filterName = null; - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - filter = new String[]{"*.x86", "*.arm"}; - filterName = new String[]{"Disk Image Files(*.x86)", "Disk Image Files(*.arm)"}; - } else { - filter = new String[]{"*.x86"}; - filterName = new String[]{"Disk Image Files(*.x86)"}; - } - baseImageFD.setFilterExtensions(filter); - baseImageFD.setFilterNames(filterName); - } - - String path = baseImageFD.open(); - if (path != null) { - if (!HelperClass.isPathAvaliable(path)) { - new MessageDialog().openWarningDialog("This base image not ready yet." - + StringResources.NEW_LINE - + "Please select again in a few seconds."); - return; - } - newPath = path; - newPathName = path.substring(path.lastIndexOf(File.separator) + 1, path.length()); - - // for arm emulator - boolean isArm = newPathName.endsWith("arm"); - EmulatorVMList.getInstance().CustomArch = !isArm ? "x86" : "arm"; - - baseImageLabel.setText(newPathName); - baseImageLabel.redraw(); - isSelected = true; - checkVMName(); - - // TODO - //arm image - //false hw virtualization - //false gl accelertaion - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - } - - protected boolean checkImageName() { - return true; - } - - @Override - public void closeItem() { - subTitleLabel.dispose(); - - nameLabel.dispose(); - baseImageLabel.dispose(); - - if (nameText != null) { - nameText.dispose(); - } - if (selectImageButton != null) { - selectImageButton.dispose(); - } - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - if (nameLabel != null) { - nameLabel.setText(value.vmsName); - } - - if (baseImageLabel != null) { - baseImageLabel.setText(value.baseImagePathName); - if (!value.isStandard) { - baseImageLabel.setToolTipText(value.baseImagePath); - } - } - return true; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newName = oldName = value.vmsName; - isStandard = value.isStandard; - - newPath = value.baseImagePath; - newPathName = value.baseImagePathName; - isSelected = false; - - if (isCreateMode()) { - nameText.setText(getDefaultVMName(value)); - nameText.selectAll(); - nameText.setEnabled(true); - - if (value.isStandard) { - baseImageLabel.setText(value.baseImage == null - ? value.baseImagePathName - : value.baseImage.getPathName()); - baseImageLabel.setEnabled(false); - selectImageButton.setEnabled(false); - } else { - baseImageLabel.setEnabled(true); - if (checkBaseImageFile(value.baseImagePath)) { - baseImageLabel.setText(value.baseImagePathName); - baseImageLabel.setToolTipText(value.baseImagePath); - isSelected = true; - getListener().ChangeValue(true); - } else { - baseImageLabel.setText(""); - } - selectImageButton.setEnabled(true); - } - } else { - nameText.setText(oldName); - nameText.setEnabled(false); - - baseImageLabel.setText(value.baseImagePathName); - baseImageLabel.setEnabled(false); - selectImageButton.setEnabled(false); - } - - if (VMsMainView.getInstance().isSetFocus()) { - setFocus(); - } - return false; - } - - public void setFocus() { - nameLabel.setFocus(); - nameText.setFocus(); - } - - @Override - public void settingStatus(boolean isRefresh) { - if (isCreateMode() && VMsMainView.getInstance().isSetFocus()) { - setFocus(); - } - } - - // Generate VMName automatically. - // ex) "w-0627-1" - private String getDefaultVMName(VMPropertyValue value) { - StringBuilder sb = new StringBuilder(); - sb.append(value.profile.substring(0,1).toLowerCase()); - if (!value.isStandard) { - sb.append("c"); - } - sb.append("-"); - - SimpleDateFormat formatter = new SimpleDateFormat ("MMdd"); - Date currentTime = new Date( ); - String timeStr = formatter.format(currentTime); - sb.append(timeStr); - sb.append("-"); - - int count=1; - String prefix = sb.toString(); - StringBuilder vmName = null; - do { - vmName = new StringBuilder(); - vmName.append(prefix).append(Integer.toString(count++)); - } while (HelperClass.checkDupulicateName(vmName.toString()) != null) ; - - return vmName.toString(); - } - - private boolean checkBaseImageFile(String baseImagePath){ - if (baseImagePath == null || baseImagePath.isEmpty()) { - return false; - } - // Check ".x86" - String pathSplit[] = null; - if (EmulatorManager.isWin()) { - pathSplit = baseImagePath.split("\\\\"); - } else { - pathSplit = baseImagePath.split(File.separator); - } - String fileSplit[] = pathSplit[pathSplit.length-1].split("\\."); - String extension = fileSplit[fileSplit.length-1]; - if (!extension.equals("x86")) { - return false; - } - // Check whether file is exist. - File imageFile = new File(baseImagePath); - if (!imageFile.exists()) { - return false; - } - - return true; - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TRAMItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TRAMItem.java deleted file mode 100644 index 54433d2..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TRAMItem.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Label; -import org.tizen.emulator.manager.resources.ColorResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.resources.ImageResources; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageCombo; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TRAMItem extends DetailViewItem { - private int oldSize; - private int newSize; - - @Override - public void init() { - title = "RAM Size"; - count = 1; - } - - @Override - public void setValue(VMPropertyValue value) { - value.ramSize = newSize; - } - - private ImageLabel ramSize; - private ImageCombo ramSizeCombo; - private Label stateLabel; - - private static int INPUTBOX_WIDTH = 175; - private static Image INPUTBOX_ON_IMAGE = null; - @Override - public void drawDetail() { - ramSize = new ImageLabel(compList.get(0), SWT.NONE); - ramSize.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = ramSize.getSize().x; - data.height = ramSize.getSize().y; - ramSize.setLayoutData(data); - } - - @Override - public void drawModify() { - if (INPUTBOX_ON_IMAGE == null) { - INPUTBOX_ON_IMAGE = PatchImageResources.getInputBoxON(INPUTBOX_WIDTH - 40); - } - - ramSizeCombo = new ImageCombo(compList.get(0), SWT.NONE); - ramSizeCombo.setImage(WSTATE.NORMAL, INPUTBOX_ON_IMAGE); - ramSizeCombo.setImage(WSTATE.PUSH, INPUTBOX_ON_IMAGE); - ramSizeCombo.setImage(WSTATE.HOVER, INPUTBOX_ON_IMAGE); - - ramSizeCombo.setArrowButtonImage(ImageResources.ARROW_DROPDOWN.getImage()); - ramSizeCombo.setEnabled(true); - ramSizeCombo.setItemHeight(INPUTBOX_ON_IMAGE.getImageData().height); - - // - - stateLabel = new Label(compList.get(0), SWT.NONE); - stateLabel.setFont(FontResources.DETAIL_LABEL_FONT.getFont()); - stateLabel.setForeground(ColorResources.DETAIL_ENABLE_FONT_COLOR.getColor()); - stateLabel.setBackground(ColorResources.DETAIL_MIDDLE_COLOR.getColor()); - stateLabel.setText("MB"); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = INPUTBOX_ON_IMAGE.getImageData().width; - data.height = INPUTBOX_ON_IMAGE.getImageData().height; - ramSizeCombo.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(ramSizeCombo, 10); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP + 1); - data.width = 30; - stateLabel.setLayoutData(data); - - for (String s : RamSize.getInstance().getList()) { - ramSizeCombo.add(s); - } - - ramSizeCombo.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - String size = ramSizeCombo.getText(); - newSize = Integer.valueOf(size); - - if (!isCreateMode()) { - getListener().ChangeValue(getThis()); - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - } - }); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - ramSize.setText(value.ramSize + " MB"); - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - newSize = oldSize = value.ramSize; - String s = Integer.toString(oldSize); - ramSizeCombo.select(RamSize.getInstance().findIndex(s)); - return false; - } - - @Override - public void closeItem() { - if (ramSize != null) { - ramSize.dispose(); - } - - if (ramSizeCombo != null) { - ramSizeCombo.dispose(); - } - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TTouchPointItem.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TTouchPointItem.java deleted file mode 100644 index 3ed4b9a..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/TTouchPointItem.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * YeongKyoon Lee - * SeokYeon Hwang - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.tizen.emulator.manager.resources.PatchImageResources; -import org.tizen.emulator.manager.ui.detail.item.DetailViewItem; -import org.tizen.emulator.manager.ui.widgets.ImageLabel; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class TTouchPointItem extends DetailViewItem { - private int touchPointValue; - @Override - public void init() { - title = "Max Touch Point"; - count = 1; - } - - @Override - public void setValue(VMPropertyValue value) { - value.maxTouchCount = touchPointValue; - } - - private ImageLabel touchPoint; - private static int INPUTBOX_WIDTH = 175; - @Override - public void drawDetail() { - touchPoint = new ImageLabel(compList.get(0), SWT.NONE); - touchPoint.setEnableImage(PatchImageResources.getInputBoxOff(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = touchPoint.getSize().x; - data.height = touchPoint.getSize().y; - touchPoint.setLayoutData(data); - touchPoint.redraw(); - } - - @Override - public void drawModify() { - touchPoint = new ImageLabel(compList.get(0), SWT.NONE); - touchPoint.setDisableImage(PatchImageResources.getInputBoxON(INPUTBOX_WIDTH)); - - FormData data = new FormData(); - data.left = new FormAttachment(0, INPUTBOX_OFFSET); - data.top = new FormAttachment(0, INPUTBOX_TOP_GAP); - data.width = touchPoint.getSize().x; - data.height = touchPoint.getSize().y; - touchPoint.setLayoutData(data); - touchPoint.setEnabled(false); - } - - @Override - public boolean settingDetailItem(VMPropertyValue value) { - touchPointValue = value.maxTouchCount; - touchPoint.setText(Integer.toString(touchPointValue)); - return false; - } - - @Override - public boolean settingModifyItem(VMPropertyValue value) { - touchPointValue = value.maxTouchCount; - touchPoint.setText(Integer.toString(touchPointValue)); - return false; - } - - @Override - public void closeItem() { - touchPoint.dispose(); - } - - @Override - public void settingStatus(boolean isRefresh) { - // TODO Auto-generated method stub - } - - @Override - public boolean checkValue() { - return true; - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/VMResources.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/VMResources.java deleted file mode 100644 index 6086667..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/detail/VMResources.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * MunKyu Im - * SeokYeon Hwang - * JiHye Kim - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.detail; - -import java.util.ArrayList; - -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.EmulatorManager.ManagerModeType; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.vms.RAM_SIZE; -import org.tizen.emulator.manager.vms.RESOLUTION; - -class StringArrayResource -{ - private ArrayList list; - private int defaultIndex = 0; - - public StringArrayResource() - { - list = new ArrayList(); - list.clear(); - } - - public void add(int index, String element) - { - list.add(index, element); - } - - public String[] getList() - { - if (size() == 0) { - return null; - } else { - return list.toArray(new String[size()]); - } - } - - public String get(int i) { - return list.get(i); - } - - public int size() - { - return list.size(); - } - - public int getDefaultIndex() - { - return defaultIndex; - } - - public void setDefaultIndex(int index) { - defaultIndex = index; - } - - public void clear() { - list.clear(); - } -} - -class SupportType extends StringArrayResource -{ - private static SupportType support = new SupportType(); - public static SupportType getInstance() - { - return support; - } - - private SupportType() - { - add(0, StringResources.SUPPORTED); - add(1, StringResources.NOT_SUPPORTED); - - setDefaultIndex(1); - } - - public int findIndex(String type) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.equals(type)) { - return i; - } - } - return getDefaultIndex(); - } -} - -class DisplayResolution extends StringArrayResource -{ - private static RESOLUTION[] minResoultion = {RESOLUTION.MINI}; - private static RESOLUTION[] inhouseResoultion = {RESOLUTION.MINI, RESOLUTION.R_360_480}; - - private static DisplayResolution resolution = new DisplayResolution(); - public static DisplayResolution getInstance() - { - return resolution; - } - - private DisplayResolution() - { - } - - public void initialize(RESOLUTION re) { - clear(); - - int i = 0; - - if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) { - for (RESOLUTION r : inhouseResoultion ) { - if (r == RESOLUTION.MINI) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - else { - for (RESOLUTION r : minResoultion) { - if (r == RESOLUTION.MINI) { - setDefaultIndex(i); - } - add(i++, r.toString()); - } - } - - if (!(EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE)) { - for (String s : getList()) { - if (s.equals(re.toString())) { - return; - } - } - add(0, re.toString()); - } - } - - public RESOLUTION findResolution(String resolution) { - for (RESOLUTION r : inhouseResoultion) { - if (resolution.equals(r.toString())) { - return r; - } - } - - return null; - } - - public int findIndex(String r) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.equals(r)) { - return i; - } - } - - return getDefaultIndex(); - } - - public boolean isMinResoluion(RESOLUTION resolution) { - for (RESOLUTION r : minResoultion) { - if (resolution.getStrValue().equals(r.getStrValue())) { - return true; - } - } - return false; - } -} - -class RamSize extends StringArrayResource -{ - private static RamSize size = new RamSize(); - public static RamSize getInstance() - { - return size; - } - - private RamSize() - { - int i = 0; - for (RAM_SIZE r : RAM_SIZE.values()) { - if (r == RAM_SIZE.RAM512) { - setDefaultIndex(i); - add(i++, r.toString()); - } - } - } - - public int findIndex(String size) { - String[] strArray = getList(); - String s = null; - for (int i = 0; i < strArray.length; i++) { - s = strArray[i]; - if (s.contains(size)) { - return i; - } - } - return getDefaultIndex(); - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/widget/VMButtonPainter.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/widget/VMButtonPainter.java deleted file mode 100644 index c62745a..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/ui/widget/VMButtonPainter.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * JiHye Kim - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.ui.widget; - -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Canvas; -import org.tizen.emulator.manager.plugin.PluginImageResources; -import org.tizen.emulator.manager.resources.FontResources; -import org.tizen.emulator.manager.ui.widgets.VMButton; -import org.tizen.emulator.manager.ui.widgets.WSTATE; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.VMPropertyValue; - -public class VMButtonPainter implements PaintListener { - - @Override - public void paintControl(PaintEvent e) { - VMButton button = (VMButton)e.widget; - Image image = button.getImage(button.currentState()); - if (image == null) { - return; - } - - if (button.getProperty() != null) { - if (button.getProperty().isRunning()) { - button.getLaunchButton().setEnabled(false); - } else { - button.getLaunchButton().setEnabled(true); - } - } - - Rectangle rect = ((Canvas) e.widget).getClientArea(); - GC gc = e.gc; - - gc.setBackground(button.getBackgroundColor(button.currentState())); - gc.fillRectangle(rect); - gc.drawImage(image, rect.x + W_OFFSET, rect.y + H_OFFSET); - if (button.isSelection()) { - gc.drawImage(PluginImageResources.VM_IMAGE_SELECTED.getImage(button.getBaseImage().getPlatform().getPluginPlatformName()), - rect.x, rect.y); - } - drawButtonText(gc, rect, button); - } - - private int W_OFFSET = 2; - private int H_OFFSET = 3; - private int X_POINT = 40 + W_OFFSET; - private int Y_POINT = 27 + H_OFFSET; - private int Y_GAP = 23; - private int RE_X_POINT = 16 + W_OFFSET; - - private void drawButtonText(GC gc, Rectangle rect, VMButton button) { - VMProperty property = button.getProperty(); - if (property == null) { - return; - } - - // / drawing Title - gc.setForeground(button.getFontColor(button.currentState())); - gc.setFont(FontResources.VM_BUTTON_TITLE_FONT.getFont()); - - gc.setBackground(button.getBackgroundColor(button.currentState())); - gc.drawString(button.getTitle(), button.getTitle_x(), 8, true); - - // reset font color - gc.setForeground(button.getFontColor(WSTATE.NORMAL)); - - VMPropertyValue value = property.getPropertyValue(); - - gc.drawString(property.getArch().name(), X_POINT, Y_POINT, true); - gc.drawString(Integer.toString(value.dpi), X_POINT, Y_POINT + Y_GAP, true); - gc.drawString(Integer.toString(value.ramSize), X_POINT, Y_POINT + Y_GAP * 2, true); - gc.drawString(value.resolution.getStrValue(), RE_X_POINT, Y_POINT + Y_GAP * 3, true); - } - -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/Launcher.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/Launcher.java deleted file mode 100644 index e128a2c..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/Launcher.java +++ /dev/null @@ -1,594 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * MunKyu Im - * SeokYeon Hwang - * JiHye Kim - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.vms; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; - -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.console.RemoteManager; -import org.tizen.emulator.manager.logging.EMLogger; -import org.tizen.emulator.manager.resources.FilePathResources; -import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.CheckVirtualization; -import org.tizen.emulator.manager.tool.PortHelper; -import org.tizen.emulator.manager.tool.SettingInfoFile; -import org.tizen.emulator.manager.ui.dialog.MessageDialog; -import org.tizen.emulator.manager.vms.ILauncher; -import org.tizen.emulator.manager.vms.VMProperty; -import org.tizen.emulator.manager.vms.helper.CheckingRunningEmulator; -import org.tizen.emulator.manager.vms.helper.MonitoringEmulator; -import org.tizen.emulator.manager.vms.helper.VMLauncherException; -import org.tizen.emulator.manager.vms.xml.CpuType; -import org.tizen.emulator.manager.vms.xml.OptionType; -import org.tizen.emulator.manager.vms.xml.TouchType; - -public class Launcher implements ILauncher { - private boolean isConsole = false; - private String binPath = null; - private static Launcher launcher; - - - // Option names in vm_config.xml - // Add if need. - public static final String OPT_DEVICE = "device"; - public static final String OPT_NFC = "nfc"; - public static final String OPT_BATTERY = "battery"; - public static final String OPT_CAMERA = "camera"; - public static final String OPT_HWKEY = "hwkey"; - public static final String OPT_SWAP = "swap"; - public static final String OPT_CODEC = "codec"; - - public static final String OPT_JACK = "jack"; - public static final String OPT_USB = "usb"; - public static final String OPT_CHARGER = "charger"; - - public static final String OPT_SENSOR = "sensor"; - public static final String OPT_ACCEL = "accel"; - public static final String OPT_GYRO = "gyro"; - public static final String OPT_GEO = "geo"; - public static final String OPT_LIGHT = "light"; - public static final String OPT_PROXI = "proxi"; - public static final String OPT_HAPTIC = "haptic"; - public static final String OPT_PRESS = "press"; // pressure - public static final String OPT_UV = "uv"; // ultra violet - public static final String OPT_HRM = "hrm"; // heartbeat rate meter - - public static Launcher getInstance() { - if (launcher == null) { - launcher = new Launcher(); - } - return launcher; - } - - public Launcher() { - isConsole = EmulatorManager.isConsoleMode(); - } - - @Override - public List getLaunchCommand(VMProperty property, String path) - throws VMLauncherException { - String binary; - String hwVirtualization = ""; - int portNo; - - /* check available port number */ - portNo = new PortHelper().getPortNo(); - if(portNo == -1) { - String error = "Can not execute emulator." - + StringResources.NEW_LINE - + "All available ports are in use."; - throw new VMLauncherException(error); - } - - if (property.getArch().toString().equals("x86")) { - if (EmulatorManager.isWin()) { - binary = "emulator-x86.exe"; - } else { - binary = "emulator-x86"; - } - } else { - if (EmulatorManager.isWin()) { - binary = "emulator-arm.exe"; - } else { - binary = "emulator-arm"; - } - } - - // check disk image - File child = new File(property.getConfiguration().getBaseInformation().getDiskImage().getCurrentDiskImage().getValue()); - File base = new File(property.getConfiguration().getBaseInformation().getDiskImage().getBaseDiskImage().getValue()); - if (!child.exists()) { - throw new VMLauncherException("Child disk image does not exist." - + StringResources.NEW_LINE + child.getAbsolutePath() - , true); - } - if (!base.exists()) { - throw new VMLauncherException("Base disk image does not exist." - + StringResources.NEW_LINE + base.getAbsolutePath() - , true); - } - if (property.getConfiguration().getUsability().isHwVirtualization() && CheckVirtualization.getInstance().isSupportVirtualization()) { - hwVirtualization = CheckVirtualization.getInstance().getVirtualizationEnableCommnad(); - } else { - hwVirtualization = CheckVirtualization.getInstance().getVirtualizationDisableCommnad(); - } - - List cmd = new ArrayList(); - int width = property.getConfiguration().getDevice().getDisplay().getResolution().getWidth(); - int height = property.getConfiguration().getDevice().getDisplay().getResolution().getHeight(); - String skinPath = null; - if (property.getConfiguration().getDevice().getDisplay().getSkinPath() != null) { - skinPath = property.getConfiguration().getDevice().getDisplay().getSkinPath().getPath(); - if (skinPath != null && skinPath.isEmpty()) { - skinPath = null; - } - } - String fileshare = property.getConfiguration().getUsability().getFileSharing().getPath(); - String osVersion = System.getProperty("os.version"); - boolean isFileshare = true; - if (fileshare == null) { - isFileshare = false; - } - - /* get MAC address of host set as guest MAC address */ - String macAddr = SettingInfoFile.getMACaddr(); - - if(macAddr.isEmpty()) { - macAddr = "52:54:00:12:34:56"; - EMLogger.getLogger().log(Level.INFO, String.format("MAC set as default = %s", macAddr)); - } - - if (path == null || path.isEmpty()) { - cmd.add(FilePathResources.getBinPath() + File.separator + binary); - } else { - this.binPath = path; - cmd.add(binPath + File.separator + binary); - } - - cmd.add("--skin-args"); - cmd.add("width=" + width); - cmd.add("height=" + height); - if (skinPath != null) { - cmd.add("skin.path=" + skinPath); - } - - if (RemoteManager.getSpiceMode()) { - cmd.add("hb.ignore=true"); - } - - cmd.add("--qemu-args"); - // x86 part of cmd - if (property.getArch().toString().equals("x86")) { - cmd.add("-drive"); - cmd.add("file=" + property.getConfiguration().getBaseInformation().getDiskImage().getCurrentDiskImage().getValue()+ ",if=virtio,index=1"); - cmd.add( "-boot"); - cmd.add("c"); - cmd.add("-append"); - String kernelOption = "console=ttyS0 video=LVDS-1:" - + width - + "x" - + height - + "-32@60" - + " dpi=" + property.getConfiguration().getDevice().getDisplay().getDensity().getValue() * 10 - + " ip=10.0.2.16::10.0.2.2:255.255.255.0::eth0:none" - + " vm_name=" + property.getConfiguration().getBaseInformation().getName(); - /* set virtio-9p string in case of using directory share [kernel option] */ - if(isFileshare) { - kernelOption += " virtio-9p"; - } - /* - if(property.getPropertyValue().skin != null && property.getPropertyValue().skin.getButtonType() == SKIN_BUTTON_TYPE.THREE_BUTTON_TYPE) { - kernelOption += " platform_feature=3btn"; - } else { - kernelOption += " platform_feature=1btn"; - } - */ - - cmd.add(kernelOption); - - /* use fileshare [non-kernel option] */ - if(isFileshare) { - cmd.add("-virtfs"); - cmd.add("local,path=" + property.getConfiguration().getUsability().getFileSharing().getPath() +",security_model=none,mount_tag=fileshare"); - } - - cmd.add("-serial"); - cmd.add("file:" + FilePathResources.getTizenVmsPath() + File.separator + property.getName() + File.separator + "logs" + File.separator + "emulator.klog"); - CpuType cpuOption = property.getConfiguration().getDevice().getCPU(); - if (cpuOption != null) { - cmd.add("-smp"); - cmd.add(String.valueOf(cpuOption.getValue().getValue())); - } - cmd.add("-m"); - cmd.add(String.valueOf(property.getConfiguration().getDevice().getRAM().getSize().getValue())); - cmd.add("-M"); - cmd.add("maru-x86-machine"); - cmd.add("-net"); - cmd.add("nic,model=virtio,macaddr=" + macAddr); - cmd.add("-soundhw"); - cmd.add("all"); - cmd.add("-usb"); - cmd.add("-vga"); - cmd.add("none"); - cmd.add("-enable-vigs"); - cmd.add("-L"); - cmd.add(FilePathResources.getBiosPath()); - cmd.add("-kernel"); - cmd.add(FilePathResources.getKernelPath() + File.separator+ "bzImage." + property.getArch().toString()); - cmd.add("-net"); - cmd.add("user,dhcpstart=10.0.2.16"); - cmd.add("-rtc"); - cmd.add("base=utc"); - if (property.getConfiguration().getBaseInformation().getDiskImage().getSwapDiskImage() != null) { - cmd.add("-drive"); - cmd.add("file=" + property.getConfiguration().getBaseInformation().getDiskImage().getSwapDiskImage().getValue() + ",if=virtio,index=2"); - } - - /* append HW virtualization option if supports */ - if (hwVirtualization != null) { - cmd.add(hwVirtualization); - } - - // add hw gl acceleration - if (property.getConfiguration().getUsability().isHwGLAcceleration() - && CheckVirtualization.getInstance().isSupportGPU()) { - //cmd.add(CheckVirtualization.getInstance().getGPU_enable_command()); - cmd.add("-vigs-backend"); - cmd.add("gl"); - cmd.add("-enable-yagl"); - cmd.add("-yagl-backend"); - cmd.add("vigs"); - } else { - cmd.add("-vigs-backend"); - cmd.add("sw"); - } - - // for bootup status - cmd.add("-device"); - cmd.add("virtio-esm-pci"); - - // for brightness - cmd.add("-device"); - cmd.add("maru-brightness"); - - // for vmodem - cmd.add("-device"); - cmd.add("virtio-vmodem-pci"); - - // for hardware key - if (checkOnOff(property.getPropertyValue().getAdvancedOptionValue(OPT_HWKEY))) { - cmd.add("-device"); - cmd.add("virtio-hwkey-pci"); - } - - // for codec - if (checkOnOff(property.getPropertyValue().getAdvancedOptionValue(OPT_CODEC))) { - cmd.add("-device"); - cmd.add("codec-pci"); - } - - // for ecp - cmd.add("-device"); - cmd.add("virtio-evdi-pci,profile=" + property.getPropertyValue().profile - + "-" + property.getPropertyValue().version); - - // for camera - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_CAMERA))) { - cmd.add("-device"); - cmd.add("maru-camera"); - } - - // for battery - cmd.add("-device"); - cmd.add("virtio-power-pci"); - - // for nfc - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_DEVICE, OPT_NFC))) { - cmd.add("-device"); - cmd.add("virtio-nfc-pci"); - } - - // for sensor (accel, geo, gyro, light, proxi, haptic, pressure, ultra violet, heart rate meter) - OptionType sensor = property.getPropertyValue().getAdvancedOption(OPT_SENSOR); - if (sensor != null) { - cmd.add("-device"); - - StringBuilder sb = new StringBuilder(); - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_ACCEL))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("accel"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_GEO))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("geo"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_GYRO))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("gyro"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_LIGHT))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("light"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_PROXI))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("proxi"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_HAPTIC))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("haptic"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_PRESS))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("press"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_UV))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("uv"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_SENSOR, OPT_HRM))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("hrm"); - } - - if (sb.toString().isEmpty()) { - cmd.add("virtio-sensor-pci"); - } else { - sb.insert(0, "virtio-sensor-pci,sensors="); - cmd.add(sb.toString()); - } - } - - // for jacks (enabled charger, and usb) - cmd.add("-device"); - cmd.add("virtio-jack-pci,jacks=charger&usb"); - /* OptionType jacks = property.getPropertyValue().getAdvancedOption(OPT_JACK); - if (jacks != null) { - cmd.add("-device"); - - StringBuilder sb = new StringBuilder(); - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_JACK, OPT_CHARGER))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("charger"); - } - if (checkOnOff(property.getPropertyValue().getAdvancedOptionSubValue(OPT_JACK, OPT_USB))) { - if(!sb.toString().isEmpty()) { - sb.append("&"); - } - sb.append("usb"); - } - - if (sb.toString().isEmpty()) { - cmd.add("virtio-jack-pci"); - } else { - sb.insert(0, "virtio-jack-pci,jacks="); - cmd.add(sb.toString()); - } - } */ - - - cmd.add("-device"); - TouchType touchType = property.getConfiguration().getDevice().getTouch(); - if (touchType != null) { - cmd.add("virtio-touchscreen-pci,max_point=" + touchType.getMaxTouchPoint()); - } else { - cmd.add("virtio-touchscreen-pci"); - } - - } else { // ARM part of cmd - cmd.add("-drive"); - cmd.add("file=" + property.getConfiguration().getBaseInformation().getDiskImage().getCurrentDiskImage().getValue()+ ",id=virtio-blk,if=none"); - cmd.add( "-device"); - cmd.add("virtio-blk,drive=virtio-blk,transport=virtio-mmio.0"); - cmd.add("-netdev"); - cmd.add("user,id=virtio-net"); - cmd.add("-device"); - cmd.add("virtio-net,netdev=virtio-net,transport=virtio-mmio.1"); - cmd.add("-append"); - cmd.add("yagl=1 console=ttySAC2,115200 video=s3cfb:" - + width - + "x" - + height - + "-24" - + " dpi=" + property.getConfiguration().getDevice().getDisplay().getDensity().getValue() * 10 - + " rootwait root=/dev/vda rw rootfstype=ext4" - + " ip=10.0.2.16::10.0.2.2:255.255.255.0::eth0:none" - + " vm_name=" + property.getConfiguration().getBaseInformation().getName() - + " virtio_mmio.device=4K@0x10AD0000:423 virtio_mmio.device=4K@0x10AC0000:422"); - cmd.add("-serial"); - cmd.add(EmulatorManager.isLinux() ? "/dev/null" : "none"); - cmd.add("-serial"); - cmd.add(EmulatorManager.isLinux() ? "/dev/null" : "none"); - cmd.add("-serial"); - cmd.add("file:" + FilePathResources.getTizenVmsPath() + File.separator + property.getName() + File.separator + "logs" + File.separator + "emulator.klog"); - cmd.add("-m"); - cmd.add(String.valueOf(property.getConfiguration().getDevice().getRAM().getSize().getValue())); - cmd.add("-M"); - cmd.add("maru-arm-machine"); - cmd.add("-soundhw"); - cmd.add("all"); - cmd.add("-usb"); - cmd.add("-usbdevice"); - cmd.add("maru-touchscreen"); - cmd.add("-kernel"); - cmd.add(FilePathResources.getKernelPath() + File.separator+ "bzImage." + property.getArch().toString()); - } - - //} - - /* append user added options if exists */ - String advancedOptions = property.getConfiguration().getUsability().getAdvancedOptions(); - if (advancedOptions != null) { - String[] arrOptions = advancedOptions.split(" "); - for (String option : arrOptions) { - cmd.add(option); - } - } - - /* spice options */ - if (RemoteManager.getSpiceMode()) { - cmd.add("-spice"); - cmd.add("disable-ticketing"); - cmd.add("-device"); - cmd.add("virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0"); - cmd.add("-chardev"); - cmd.add("spicevmc,id=vdagent,name=vdagent"); - cmd.add("-device"); - cmd.add("virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0"); - } - - EMLogger.getLogger().log(Level.INFO, "Starting Emulator Command : "); - String temp = cmd.get(0) + " "; - for (String s : cmd.subList(1, cmd.size())) { - temp += ("\"" + s + "\" "); - } - EMLogger.getLogger().log(Level.INFO, temp); - System.out.println("cmd : " + cmd); - return cmd; - } - - @Override - public boolean launch(VMProperty property) throws VMLauncherException { - return launch(property, false); - } - - @Override - public boolean launch(VMProperty property, boolean wait) throws VMLauncherException { - List cmd; - - cmd = getLaunchCommand(property, null); - - if (cmd == null) { - return false; - } - - CheckingRunningEmulator.addEmulator(property); - MonitoringEmulator monitor = new MonitoringEmulator(property); - Process process = launch(cmd); - if (process != null) { - monitor.setProcess(process); - monitor.start(); - if (wait) { - try { - monitor.join(); - } catch (InterruptedException e) { - EMLogger.getLogger().warning(e.getMessage()); - } - if (monitor.isSuccess()) { - return true; - } else { - return false; - } - } - return true; - } else { - CheckingRunningEmulator.removeEmulator(property, false); - monitor.interrupt(); - return false; - } - } - - @Override - public Process launch(List cmd) { - ProcessBuilder pb = new ProcessBuilder(cmd); - Map env = pb.environment(); - if (EmulatorManager.isLinux()) { - String value = env.get("LD_LIBRARY_PATH"); - env.put("LD_LIBRARY_PATH", ((value == null) ? "" : value + ":") + FilePathResources.getBinPath() + ":" + FilePathResources.getRemotePath() + File.separator + "lib:"); - EMLogger.getLogger().log(Level.INFO, "LD_LIBRARY_PATH=" + env.get("LD_LIBRARY_PATH")); - } - env.put("GL_VERSION", "2"); - EMLogger.getLogger().log(Level.INFO, "GL_VERSION: " + env.get("GL_VERSION")); - - if (this.binPath == null || this.binPath.isEmpty()) { - pb.directory(new File(FilePathResources.getBinPath())); - } else { - pb.directory(new File(this.binPath)); - } - - Process process = null; - try { - process = pb.start(); - } catch (IOException e) { - if (!isConsole) { - MessageDialog msg = new MessageDialog(new Shell(Display.getCurrent())); - msg.openWarningDialog("Failed to launch" + StringResources.NEW_LINE + e.getMessage()); - } - EMLogger.getLogger().log(Level.WARNING, "Failed to launch." + StringResources.NEW_LINE + e.getMessage()); - } - - return process; - } - - private boolean checkOnOff(String value) { - if (value.toLowerCase().equals("on")) { - return true; - } else if (value.toLowerCase().equals("off")) { - return false; - } else if (value.isEmpty()){ - return true; - } else { - return false; - } - } - - @Override - public void sendRemoteLog(String msg) { - EMLogger.getLogger().info("Launcher log : " + msg); - } -} diff --git a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/VMWorker.java b/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/VMWorker.java deleted file mode 100644 index 40b83c2..0000000 --- a/plugin-project/wearable-plugin/src/org/tizen/emulator/manager/wearable/vms/VMWorker.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Emulator Manager - * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * Minkee Lee - * SeokYeon Hwang - * YeongKyoon Lee - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.emulator.manager.wearable.vms; - -import org.tizen.emulator.manager.vms.VMWorkerCommon; - -public class VMWorker extends VMWorkerCommon { - - @Override - public void initLauncher() { - setLauncher(Launcher.getInstance()); - } - -} \ No newline at end of file diff --git a/template/w-x86-standard-template.xml b/template/w-x86-standard-template.xml deleted file mode 100644 index 9ac7fc4..0000000 --- a/template/w-x86-standard-template.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/template/w-x86-standard.xml b/template/w-x86-standard.xml deleted file mode 100644 index 8e25741..0000000 --- a/template/w-x86-standard.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - NONE - - - true - true - - - - - 360 - 480 - - 300 - - - 512 - - - - - - - - - diff --git a/template/x86-standard-template.xml b/template/x86-standard-template.xml deleted file mode 100644 index b49e87a..0000000 --- a/template/x86-standard-template.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/template/x86-standard.xml b/template/x86-standard.xml deleted file mode 100644 index 4bc3a46..0000000 --- a/template/x86-standard.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - NONE - - - true - true - - - - - 480 - 800 - - 233 - - - 512 - - - - - - - - - -- 2.7.4