option: added OS type to item.
authorminkee.lee <minkee.lee@samsung.com>
Mon, 13 Jul 2015 07:06:39 +0000 (16:06 +0900)
committerminkee.lee <minkee.lee@samsung.com>
Mon, 13 Jul 2015 07:48:56 +0000 (16:48 +0900)
- Option can be shown/hidden in specific OS
  by editing XML.

Change-Id: I120571ce856847a2e7ab0286f83ac039a8cb0dfc
Signed-off-by: minkee.lee <minkee.lee@samsung.com>
src/org/tizen/emulator/manager/ui/detail/item/CommonItemListFactory.java
src/org/tizen/emulator/manager/ui/detail/item/OptionType.java
src/org/tizen/emulator/manager/vms/option/CommonOptionFactroy.java

index 249b5dd..42f9375 100644 (file)
@@ -32,6 +32,7 @@
 
 package org.tizen.emulator.manager.ui.detail.item;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.tizen.emulator.manager.EmulatorManager;
@@ -232,6 +233,9 @@ public abstract class CommonItemListFactory implements IItemListFactory{
                                if (checkExperimental(item)) {
                                        continue;
                                }
+                               if (!isSupportOS(item)) {
+                                       continue;
+                               }
                                addPropertyItem(item, itemList);
                        }
                }
@@ -251,6 +255,9 @@ public abstract class CommonItemListFactory implements IItemListFactory{
                                                && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) {
                                        continue;
                                }
+                               if (!isSupportOS(item)) {
+                                       continue;
+                               }
                                addDeviceItem(item, itemList);
                        }
                }
@@ -267,4 +274,25 @@ public abstract class CommonItemListFactory implements IItemListFactory{
                }
                return isExperimentalItem && !EmulatorManager.isInhouseMode();
        }
+
+       public static boolean isSupportOS(Item item) {
+               boolean isSupportOS = true;
+               for (Option opt : item.getOption()) {
+                       if (opt.getName().equals(OptionType.SUPPORT_OS.getName())) {
+                               List<String> osList = Arrays.asList(opt.getValue().trim().
+                                               split("\\s{0,},\\s{0,}"));
+
+                               if (EmulatorManager.isWin() && !osList.contains(OptionType.WIN)) {
+                                       isSupportOS = false;
+                               }
+                               if (EmulatorManager.isLinux() && !osList.contains(OptionType.LINUX)) {
+                                       isSupportOS = false;
+                               }
+                               if (EmulatorManager.isMac() && !osList.contains(OptionType.MAC)) {
+                                       isSupportOS = false;
+                               }
+                       }
+               }
+               return isSupportOS;
+       }
 }
index 2a5d042..b06c983 100644 (file)
@@ -43,7 +43,8 @@ public enum OptionType {
        SPREAD_ON_START("spreadOnStart"),
        PROFILE("profile"),
        MODIFY_ENABLE("modifyEnable"),
-       EXPERIMENTAL("experimental")
+       EXPERIMENTAL("experimental"),
+       SUPPORT_OS("supportOS")
        ;
 
        public static final String VALUE_TRUE = "true";
@@ -51,6 +52,10 @@ public enum OptionType {
        public static final String VALUE_ON = "on";
        public static final String VALUE_OFF = "off";
 
+       public static final String LINUX = "linux";
+       public static final String WIN = "win";
+       public static final String MAC = "mac";
+
 
        private String name;
 
index 5d3199b..5a71876 100644 (file)
@@ -49,10 +49,16 @@ public abstract class CommonOptionFactroy implements IOptionFactory {
                        if (CommonItemListFactory.checkExperimental(item)) {
                                continue;
                        }
+                       if (!CommonItemListFactory.isSupportOS(item)) {
+                               continue;
+                       }
                        addPropertyOption(item, optionList);
                }
 
                for (Item item : deviceList.getItem()) {
+                       if (!CommonItemListFactory.isSupportOS(item)) {
+                               continue;
+                       }
                        addDeviceOption(item, optionList);
                }
        }