Item List: modify making item list function
authorjihye424.kim <jihye424.kim@samsung.com>
Tue, 16 Jun 2015 04:12:18 +0000 (13:12 +0900)
committerjihye424.kim <jihye424.kim@samsung.com>
Tue, 16 Jun 2015 05:54:10 +0000 (14:54 +0900)
- add 'find item' function

Change-Id: Iad89d917b41b181d0373ef3401b2ae0f78667285
Signed-off-by: jihye424.kim <jihye424.kim@samsung.com>
src/org/tizen/emulator/manager/ui/detail/DetailViewPage.java
src/org/tizen/emulator/manager/ui/detail/PInfoViewPage.java
src/org/tizen/emulator/manager/ui/detail/PModifyViewPage.java
src/org/tizen/emulator/manager/ui/detail/item/CommonItemListFactory.java
src/org/tizen/emulator/manager/ui/detail/item/IItemListFactory.java

index e684562..64a03c7 100644 (file)
@@ -297,9 +297,6 @@ public abstract class DetailViewPage {
 class ViewItemList {
        ExtensionItem exItem;
        Composite comp;
-//     ArrayList<IInfoViewItem> itemList;
-//     ArrayList<IModifyViewItem> itemList;
-//     ArrayList<? extends IViewItem> itemList;
        Platform platform;
        String imageName;
        boolean isCustom;
index 56a50fd..d948d85 100644 (file)
@@ -339,17 +339,16 @@ class InfoViewItemList extends ViewItemList{
        InfoViewItemList(ExtensionItem item, Composite parent, ItemList template,
                        Platform platform, String imageName, boolean isCustom) {
                super(item, platform, imageName, isCustom);
-               makeItemList(parent, template, isCustom);
+               makeItemList(parent, template);
                initItemList(parent);
        }
 
-       private void makeItemList(Composite parent, ItemList templateList, boolean isCustom) {
+       private void makeItemList(Composite parent, ItemList templateList) {
                IItemListFactory f = (IItemListFactory)(exItem.getInstance());
                itemList = new ArrayList<IInfoViewItem>();
                if (f != null) {
-                       f.makeItemList(itemList, templateList, isCustom);
+                       f.makeItemList(itemList, templateList);
                }
-//             itemList = f.getInfoItemList(deviceItemList);
        }
 
        private void initItemList(Composite parent){
index 0dc7691..07df900 100644 (file)
@@ -478,18 +478,18 @@ class ModifyViewItemList extends ViewItemList{
        ModifyViewItemList(ExtensionItem item, PModifyViewPage page, ItemList template
                        ,Platform platform, String imageName, boolean isCustom) {
                super(item, platform, imageName, isCustom);
-               makeItemList(page, template, isCustom);
+               makeItemList(template);
                initItemList(page);
        }
 
-       private void makeItemList(PModifyViewPage page, ItemList deviceItemList, boolean isCustom) {
+       private void makeItemList(ItemList deviceItemList) {
                if (exItem == null) {
                        // TODO
                } else {
                        IItemListFactory f = (IItemListFactory)(exItem.createInstance());
                        itemList = new ArrayList<IModifyViewItem>();
                        if (f != null) {
-                               f.makeItemList(itemList, deviceItemList, isCustom);
+                               f.makeItemList(itemList, deviceItemList);
                        }
                }
        }
index 8bf2d68..192f195 100644 (file)
 
 package org.tizen.emulator.manager.ui.detail.item;
 
-import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import org.tizen.emulator.manager.EmulatorManager;
+import org.tizen.emulator.manager.EmulatorManager.ManagerModeType;
 import org.tizen.emulator.manager.ui.detail.item.property.BaseImageViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.CameraViewItem;
 import org.tizen.emulator.manager.ui.detail.item.property.DisplayViewItem;
 import org.tizen.emulator.manager.ui.detail.item.property.FileShareViewItem;
 import org.tizen.emulator.manager.ui.detail.item.property.HWSupportViewItem;
 import org.tizen.emulator.manager.ui.detail.item.property.MaxTouchViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetConnectTypeViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetDnsViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetIPInfoViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetMacViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetProxyViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetTapDeviceViewItem;
+import org.tizen.emulator.manager.ui.detail.item.property.NetTapDeviceViewItemWin;
 import org.tizen.emulator.manager.ui.detail.item.property.ProcessorViewItem;
 import org.tizen.emulator.manager.ui.detail.item.property.RamSizeItem;
 import org.tizen.emulator.manager.ui.detail.item.property.SuspendSupportViewItem;
@@ -53,9 +59,9 @@ 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;
 import org.tizen.emulator.manager.vms.xml.template.ObjectFactory;
 import org.tizen.emulator.manager.vms.xml.template.Option;
 import org.tizen.emulator.manager.vms.xml.template.PropertyList;
@@ -78,309 +84,178 @@ public abstract class CommonItemListFactory implements IItemListFactory{
        public static String ITEM_NET_IP_INFO = "netIpInfo";
        public static String ITEM_NET_DNS = "netDns";
        public static String ITEM_NET_MAC = "netMac";
+       public static String ITEM_EXPERIMENTAL = "experimental";
        public static String ITEM_CAMERA = "camera";
 
        public static ObjectFactory factory = new ObjectFactory();
 
-       // Override if need.
-       public void makePropertyItemList(List<? extends IViewItem> list, PropertyList propertyList,
-                       String profile, boolean isStandard) {
-               if (propertyList != null) {
-                       @SuppressWarnings("unchecked")
-                       List<IViewItem> itemList = (List<IViewItem>)list;
-                       List<Item> propertyItemList = propertyList.getItem();
-                       LineLabelViewItem currentLineLabel = null;   // Top categorizing item
+       protected LineLabelViewItem currentLineLabel = null;   // Top categorizing item
+       protected boolean isExperimentalLabel = false;
 
-                       for (Item item : propertyItemList) {
-                               String type = item.getType();
-                               String itemName = item.getName();
+       // Override if need
+       public IViewItem findPropertyItem(Item item) {
+               if (item == null) {
+                       return null;
+               }
 
-                               if (type.equals(ItemType.LINE_LABEL.getName())) { // Top categorizing item
-                                       currentLineLabel = new LineLabelViewItem(item);
-                                       itemList.add(currentLineLabel);
-                                       continue;
-                               }
+               String type = item.getType();
+               String itemName = item.getName();
 
-                               if (checkExperimental(item) && !EmulatorManager.isInhouseMode()) {
-                                       continue;
-                               }
+               if (type.equals(ItemType.LINE_LABEL.getName())) { // Top categorizing item
+                       currentLineLabel = new LineLabelViewItem(item);
+                       return currentLineLabel;
+               }
 
-                               if (itemName.equals(ITEM_VM_NAME)) {
-                                       itemList.add(new VMNameViewItem(item, currentLineLabel));
+               if (itemName.equals(ITEM_VM_NAME)) {
+                       return new VMNameViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_BASE_IMAGE)) {
-                                       itemList.add(new BaseImageViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_BASE_IMAGE)) {
+                       return new BaseImageViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_DISPLAY)) {
-                                       itemList.add(new DisplayViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_DISPLAY)) {
+                       return new DisplayViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_PROCESSORS)) {
-                                       itemList.add(new ProcessorViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_PROCESSORS)) {
+                       return new ProcessorViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_RAM_SIZE)) {
-                                       itemList.add(new RamSizeItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_RAM_SIZE)) {
+                       return new RamSizeItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_MAX_TOUCH)) {
-                                       itemList.add(new MaxTouchViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_MAX_TOUCH)) {
+                       return new MaxTouchViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_SUSPEND_SUPPORT)) {
-                                       itemList.add(new SuspendSupportViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_FILE_SHARE)) {
+                       return new FileShareViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_FILE_SHARE)) {
-                                       itemList.add(new FileShareViewItem(item, currentLineLabel));
+               } else if (itemName.equals(ITEM_HW_SUPPORT)) {
+                       return new HWSupportViewItem(item, currentLineLabel);
+
+               } else if (itemName.equals(ITEM_SUSPEND_SUPPORT)) {
+                       return new SuspendSupportViewItem(item, currentLineLabel);
 
-                               } else if (itemName.equals(ITEM_HW_SUPPORT)) {
-                                       itemList.add(new HWSupportViewItem(item, currentLineLabel));
-                               }
-                       }
                }
+
+               return null;
        }
 
        // Override if need
-       public void makeDeviceItemList(List<? extends IViewItem> list, DeviceList deviceList) {
-
-               if (deviceList != null) {
-                       @SuppressWarnings("unchecked")
-                       List<IViewItem> itemList = (List<IViewItem>)list;
-                       List<Item> deviceItemList = deviceList.getItem();
-                       LineLabelViewItem currentLineLabel = null;   // Top categorizing item
+       public IViewItem findDeviceItem (Item item) {
+               if (item == null) {
+                       return null;
+               }
 
-                       for (Item item : deviceItemList) {
-                               String type = item.getType();
+               String name = item.getName();
+               String type = item.getType();
 
-                               if (type.equals(ItemType.LINE_LABEL.getName())) { // Top categorizing item
+               if (name.equals(CheckingRunningEmulator.OPTION_VIEWER)) {
+                       if (EmulatorManager.isLinux()) {
+                               return new LabelViewItem(item, currentLineLabel);
+                       }
+               } else if (type.equals(ItemType.LINE_LABEL.getName())) { // Top categorizing item
+                       if (name.equals(ITEM_EXPERIMENTAL)) {
+                               isExperimentalLabel = true;
+                               if (EmulatorManager.getManagerMode() == ManagerModeType.INHOUSE_MODE) {
                                        currentLineLabel = new LineLabelViewItem(item);
-                                       itemList.add(currentLineLabel);
-
-                               } 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));
+                                       return currentLineLabel;
                                }
+                       } else {
+                               currentLineLabel = new LineLabelViewItem(item);
+                               isExperimentalLabel = false;
+                               return currentLineLabel;
                        }
-               }
-       }
 
+               } else if (name.equals(ITEM_NET_CONNECT_TYPE)) {
+                       return new NetConnectTypeViewItem(item, currentLineLabel);
 
-       // Override if need
-       public void makeCustomDeviceItemList(List<? extends IViewItem> list, List<ItemList> templateList) {
-               if (templateList == null || templateList.size() == 0 ) {
-                       return;
-               }
+               } else if (name.equals(ITEM_NET_TAP_DEVICE)) {
+                       if (EmulatorManager.isWin()) {
+                               return new NetTapDeviceViewItemWin(item, currentLineLabel);
 
-               if (templateList.size() == 1) {
-                       ItemList item = templateList.get(0);
-                       makePropertyItemList(list, item.getPropertyList(), item.getProfile(), false);
-                       makeDeviceItemList(list, item.getDeviceList());
-                       return;
-               }
+                       } else {
+                               return new NetTapDeviceViewItem(item, currentLineLabel);
 
-               // Make union set
-               if (templateList.size() > 1) {
-                       ItemList base = cloneTemplate(templateList.get(0));
-                       for (int i=1 ; i < templateList.size() ; i++) {
-                               addToBase(base,templateList.get(i));
                        }
-                       makePropertyItemList(list, base.getPropertyList(), base.getProfile(), false);
-                       makeDeviceItemList(list, base.getDeviceList());
-               }
-       }
+               } else if (name.equals(ITEM_NET_PROXY)) {
+                       return new NetProxyViewItem(item, currentLineLabel);
 
-       private void addToBase(ItemList base, ItemList newOne) {
-               // Property list add
-               PropertyList newPropertyList = newOne.getPropertyList();
-               PropertyList basePropertyList = base.getPropertyList();
-               if (newPropertyList != null) {
-                       if (basePropertyList == null) {
-                               basePropertyList = factory.createPropertyList();
-                               base.setPropertyList(basePropertyList);
-                       }
-                       for (Item newItem : newPropertyList.getItem()) {
-                               boolean itemExistInBase = false;
-                               for (Item baseItem : basePropertyList.getItem()) {
-                                       if (baseItem.getName().equals(newItem.getName())) {
-                                               itemExistInBase = true;
-                                               joinItem(baseItem, newItem);
-                                       }
-                               }
-                               if (!itemExistInBase) {
-                                       basePropertyList.getItem().add(cloneItem(newItem));
-                               }
-                       }
-               }
+               } else if (name.equals(ITEM_NET_IP_INFO)) {
+                       return new NetIPInfoViewItem(item, currentLineLabel);
 
-               // Device list add
-               DeviceList newDeviceList = newOne.getDeviceList();
-               DeviceList baseDeviceList = base.getDeviceList();
-               if (newDeviceList != null) {
-                       if (baseDeviceList == null) {
-                               baseDeviceList = factory.createDeviceList();
-                               base.setDeviceList(baseDeviceList);
-                       }
-                       for (Item newItem : newDeviceList.getItem()) {
-                               boolean itemExistInBase = false;
-                               for (Item baseItem : baseDeviceList.getItem()) {
-                                       if (baseItem.getName().equals(newItem.getName())) {
-                                               itemExistInBase = true;
-                                               joinItem(baseItem, newItem);
-                                       }
-                               }
-                               if (!itemExistInBase) {
-                                       baseDeviceList.getItem().add(cloneItem(newItem));
-                               }
-                       }
-               }
-       }
+               } else if (name.equals(ITEM_NET_DNS)) {
+                       return new NetDnsViewItem(item, currentLineLabel);
 
+               } else if (name.equals(ITEM_NET_MAC)) {
+                       return new NetMacViewItem(item, currentLineLabel);
 
-       private void joinItem(Item baseItem, Item newItem) {
-               // join sub items
-               for (Item newSub : newItem.getItem()) {
-                       boolean itemExistInBase = false;
-                       for (Item baseSub : baseItem.getItem()) {
-                               if (baseSub.getName().equals(newSub.getName())) {
-                                       itemExistInBase = true;
-                                       joinItem(baseSub, newSub);
-                               }
-                       }
-                       if (!itemExistInBase) {
-                               baseItem.getItem().add(cloneItem(newSub));
-                       }
-               }
-               // join options
-               for (Option newOption : newItem.getOption()) {
-                       boolean optionExistInBase = false;
-                       for (Option baseOption : baseItem.getOption()) {
-                               if (baseOption.getName().equals(newOption.getName())) {
-                                       optionExistInBase = true;
-                                       if (isListOption(baseOption, newOption)) {
-                                               joinOption(baseOption, newOption);
-                                       }
-                               }
-                       }
+               } else if (name.equals(ITEM_CAMERA)) {
+                       return new CameraViewItem(item, currentLineLabel);
 
-                       if (!optionExistInBase) {
-                               baseItem.getOption().add(cloneOption(newOption));
-                       }
-               }
+               } else if (type.equals(ItemType.TOGGLE.getName())) {
+                       return new OnOffViewItem(item, currentLineLabel);
 
-       }
+               } else if (type.equals(ItemType.LABEL.getName())) {
+                       return new LabelViewItem(item, currentLineLabel);
 
-       private void joinOption(Option baseOption, Option newOption) {
-               baseOption.setValue(joinCommaString(baseOption.getValue(), newOption.getValue()));
-       }
+               } else if (type.equals(ItemType.COMBO.getName())) {
+                       return new ComboViewItem(item, currentLineLabel);
 
+               } else if (type.equals(ItemType.FILE.getName())) {
+                       return new FileViewItem(item, currentLineLabel);
 
-       private String joinCommaString(String base, String newOne) {
-               List<String> optionList = new ArrayList<String>();
-               if (base != null) {
-                       String[] split = base.split(",");
-                       for (String str : split) {
-                               optionList.add(str.trim());
-                       }
-               }
-               if (newOne != null) {
-                       String[] split = newOne.split(",");
-                       for (String str : split) {
-                               optionList.add(str.trim());
-                       }
-               }
+               } else if (type.equals(ItemType.CHECK_LABEL.getName())) {
+                       return new CheckLabelViewItem(item, currentLineLabel);
 
-               if (optionList.size() > 0) {
-                       Set<String> optionSet = new HashSet<String>();
-                       optionSet.addAll(optionList);
-                       optionList.clear();
-                       optionList.addAll(optionSet);
-//                     Collections.sort(optionList);
-                       StringBuilder sb = new StringBuilder();
-
-                       for (int i=0 ; i<optionList.size() ; i++) {
-                               sb.append(optionList.get(i));
-                               if (i < optionList.size()-1) {
-                                       sb.append(",");
-                               }
-                       }
+               } else if (type.equals(ItemType.TEXT.getName())) {
+                       return new TextViewItem(item, currentLineLabel);
 
-                       return sb.toString();
                }
 
                return null;
        }
 
-       private ItemList cloneTemplate(ItemList template) {
-               ItemList newTemplate = factory.createItemList();
-               newTemplate.setProfile(template.getProfile());
-               newTemplate.setImage(template.getImage());
-
-               // clone property list
-               PropertyList propertyList = template.getPropertyList();
+       // Override if need.
+       public void makePropertyItemList(List<? extends IViewItem> list, PropertyList propertyList) {
                if (propertyList != null) {
-                       PropertyList newPropertyList = factory.createPropertyList();
-                       newTemplate.setPropertyList(newPropertyList);
+                       @SuppressWarnings("unchecked")
+                       List<IViewItem> itemList = (List<IViewItem>)list;
+                       List<Item> propertyItemList = propertyList.getItem();
+                       currentLineLabel = null;
+                       IViewItem viewItem;
 
-                       for (Item item : propertyList.getItem()) {
-                               newPropertyList.getItem().add(cloneItem(item));
+                       for (Item item : propertyItemList) {
+                               if (checkExperimental(item)
+                                               && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) {
+                                       continue;
+                               }
+                               viewItem = findPropertyItem(item);
+                               if (viewItem != null) {
+                                       itemList.add(viewItem);
+                               }
                        }
                }
+       }
 
-               // clone device list.
-               DeviceList deviceList = template.getDeviceList();
+       // Override if need
+       public void makeDeviceItemList(List<? extends IViewItem> list, DeviceList deviceList) {
                if (deviceList != null) {
-                       DeviceList newDeviceList = factory.createDeviceList();
-                       newTemplate.setDeviceList(newDeviceList);
+                       @SuppressWarnings("unchecked")
+                       List<IViewItem> itemList = (List<IViewItem>)list;
+                       List<Item> deviceItemList = deviceList.getItem();
+                       currentLineLabel = null;
+                       isExperimentalLabel = false;
+                       IViewItem viewItem;
 
-                       for (Item item : deviceList.getItem()) {
-                               newDeviceList.getItem().add(cloneItem(item));
+                       for (Item item : deviceItemList) {
+                               if (isExperimentalLabel
+                                               && EmulatorManager.getManagerMode() != ManagerModeType.INHOUSE_MODE) {
+                                       continue;
+                               }
+                               viewItem = findDeviceItem(item);
+                               if (viewItem != null) {
+                                       itemList.add(viewItem);
+                               }
                        }
                }
-
-               return newTemplate;
-       }
-
-       private Item cloneItem(Item item) {
-               Item newItem = factory.createItem();
-               newItem.setType(item.getType());
-               newItem.setName(item.getName());
-               newItem.setTitle(item.getTitle());
-
-               for (Option option : item.getOption()) {
-                       newItem.getOption().add(cloneOption(option));
-               }
-
-               for (Item subItem : item.getItem()) {
-                       newItem.getItem().add(cloneItem(subItem));
-               }
-
-               return newItem;
-       }
-
-       private Option cloneOption(Option option) {
-               Option newOption = factory.createOption();
-               newOption.setName(option.getName());
-               newOption.setValue(option.getValue());
-               return newOption;
-       }
-
-       private boolean isListOption(Option baseOption, Option newOption) {
-               if (baseOption.getName().equals(OptionType.COMBO_LIST.getName())
-                               && newOption.getName().equals(OptionType.COMBO_LIST.getName())) {
-                       return true;
-               }
-
-               return false;
        }
 
        private boolean checkExperimental(Item item) {
index d2550a2..43e1829 100644 (file)
@@ -34,7 +34,5 @@ import java.util.List;
 import org.tizen.emulator.manager.vms.xml.template.ItemList;
 
 public interface IItemListFactory {
-
-       public void makeItemList(List<? extends IViewItem> itemList, ItemList template, boolean isCustom);
-       public void makeCustomItemList(List<? extends IViewItem> itemList, List<ItemList> templateList);
+       public void makeItemList(List<? extends IViewItem> itemList, ItemList template);
 }