DATABIND: Add a setTarget Dialog 32/21232/1
authorjaeyeol lee <jaeyeol148.lee@samsung.com>
Fri, 16 May 2014 08:25:49 +0000 (17:25 +0900)
committerjaeyeol lee <jaeyeol148.lee@samsung.com>
Fri, 16 May 2014 08:25:49 +0000 (17:25 +0900)
Change-Id: Ie88e701ac2a270c91af7b09e5a5037c6ed3e5947
Signed-off-by: jaeyeol lee <jaeyeol148.lee@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/policies/DesignerXYLayoutEditPolicy.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingTooltipParser.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/GetSourceAction.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/SetTargetAction.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/dialog/SetTargetPage.java [new file with mode: 0644]
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingInfo.java [new file with mode: 0644]

index 6fc6f0b..ff449c0 100644 (file)
@@ -182,7 +182,7 @@ public class DesignerXYLayoutEditPolicy extends HoverViewerXYLayoutEditPolicy {
                             final String value = list.get(i).getValue();
                             final String displayName = list.get(i).getDisplayName();
                             if ((displayName != null) && (!displayName.isEmpty())) {
-                                item.setText(displayName);
+                                item.setText(value + "[" + displayName + "]");
                             } else {
                                 item.setText(value);
                             }
@@ -190,7 +190,7 @@ public class DesignerXYLayoutEditPolicy extends HoverViewerXYLayoutEditPolicy {
                             item.addListener(SWT.Selection, new Listener() {
                                 public void handleEvent(Event e) {
                                     String str = targetPart.getProperty(BuilderConstants.ATTRIBUTE_DATA_BIND).getValue();
-                                    final String info = makeInfoString(targetPart, property2, displayName, value, str);
+                                    final String info = DataBindingTooltipParser.makeInfoString(targetPart, property2.getValue(), displayName, value, str);
                                     command =
                                             new SetPartPropertyCommand(targetPart, BuilderConstants.ATTRIBUTE_DATA_BIND,
                                                                        info);
@@ -216,41 +216,6 @@ public class DesignerXYLayoutEditPolicy extends HoverViewerXYLayoutEditPolicy {
         return command;
     }
 
-    
-    private String makeInfoString(Part targetPart, PartProperty property2, String displayName, String value, String str) {
-        String string = "";
-        
-        if ((str != null) && (!str.isEmpty())) {
-            Map<String, String> bindingInfos = DataBindingTooltipParser.parseToMap(str);
-            
-            if (bindingInfos.containsKey(value)) {
-                bindingInfos.remove(value);
-            } else if (bindingInfos.containsKey("attr-"+displayName)) {
-                bindingInfos.remove("attr-"+displayName);
-            }
-            
-            if ((displayName != null) && (!displayName.isEmpty())) {
-                bindingInfos.put("attr-"+displayName, property2.getValue());
-            } else {
-                bindingInfos.put(value, property2.getValue());
-            }
-                        
-            string = DataBindingTooltipParser.makeStringFromMap(bindingInfos);
-        } else {
-            if ((displayName != null) && (!displayName.isEmpty())) {
-                string = value + ": { " + displayName + ": " + property2.getValue() + " }";
-            } else {
-                if (targetPart.getDescriptorId().equals("tizen.listitem")) {
-                    string = value + ": " + property2.getValue() + BuilderConstants.DATABINDING_ARRAYITEM_VALUE_SUFFIX;
-                } else {
-                    string = value + ": " + property2.getValue();
-                }
-            }
-        }
-        
-        return string;
-    }
-
     private boolean hasProperty(EditPart editPart, String name) {
         if (editPart == null) {
             return false;
index 0e41498..a377be2 100644 (file)
@@ -96,26 +96,7 @@ public class DataBindingDnDManager {
         });
     }
 
-    /**
-     * Creates a view model information.
-     * 
-     * @param treeItem
-     * @return view model information
-     */
-    private static String makeViewModelInfo(TreeItem treeItem) {
-        String str = "";
-        while ((treeItem.getParentItem() != null)) {
-            if (str.isEmpty()) {
-                str = treeItem.getText();
-            } else {
-                str = treeItem.getText() + "." + str;
-            }
-            treeItem = treeItem.getParentItem();
-        }
-        TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA");
-        str = treeItemData.getOriginModelName() + "." + str;
-        return str;
-    }
+    
 
     /**
      * Adds a drag and drop listener to the view model tree.
@@ -152,7 +133,6 @@ public class DataBindingDnDManager {
                     event.doit = true;
                     dragSourceItem[0] = selection[0]; // TODO multiselect
                     TreeItemData treeItemData = (TreeItemData) selection[0].getData("TREEITEMDATA");
-                    String viewModelInfo;
                     String dataType = null;
 
                     if ((treeItemData != null) && (treeItemData.getObjectType() != null)
@@ -160,16 +140,8 @@ public class DataBindingDnDManager {
                         dataType = treeItemData.getObjectType();
                     }
 
-                    if ((selection[0].getParentItem() != null)
-                            && (selection[0].getParentItem().getData("TREEITEMDATA") != null)
-                            && (((TreeItemData) selection[0].getParentItem()
-                                    .getData("TREEITEMDATA")).getObjectType() != null)
-                            && (((TreeItemData) selection[0].getParentItem()
-                                    .getData("TREEITEMDATA")).getObjectType().equals("Array"))) {
-                        viewModelInfo = BuilderConstants.DATABINDING_ARRAYITEM_VALUE_PREFIX + selection[0].getText();
-                    } else {
-                        viewModelInfo = makeViewModelInfo(selection[0]);
-                    }
+                    String viewModelInfo = DataBindingTooltipParser.makeViewModelInfo(selection[0]);
+                    
                     // FIXME "id"
                     DataBindingTemplate dataBindingTemplate =
                             new DataBindingTemplate("id", viewModelInfo, dataType);
@@ -193,11 +165,6 @@ public class DataBindingDnDManager {
                     dragSourceItem[0].dispose();
                 }
 
-                DataBindingPage dataBindingPage = getDataBindingPage(dataBindingView);
-                if (dataBindingPage != null) {
-                       dataBindingPage.refresh();
-                }
-
                 dragSourceItem[0] = null;
                 TemplateTransfer.getInstance().setTemplate(null);
             }
index 961864f..9c8345c 100644 (file)
@@ -141,9 +141,9 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
     private List<Part> pageList = new ArrayList<Part>();
     private IAction undoHandler;
     private IAction redoHandler;
-
+    private Part selectedPart = null;
     private boolean showBindInfo = false;
-
+    
     // private List<String> itemPath;
 
     public DataBindingPage(DataBindingView dataBindingView) {
@@ -312,12 +312,12 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                         if (modelValue.startsWith(BuilderConstants.DATABINDING_ARRAYITEM_VALUE_PREFIX)) {
                             String parentPropertyValue = getParentPropertyValue(part, modelValue);
                             if (parentPropertyValue != null) {
-                                addInfoTableItem(part, parentPropertyValue, part.getIdPropertyValue(),
+                                addInfoTableItem(part, parentPropertyValue, part.getOwnerPage().getIdPropertyValue() + "." + part.getIdPropertyValue(),
                                                  key);
                                 break;
                             }
                         } else {
-                            addInfoTableItem(part, modelValue, part.getIdPropertyValue(), key);
+                            addInfoTableItem(part, modelValue, part.getOwnerPage().getIdPropertyValue() + "." + part.getIdPropertyValue(), key);
                         }
                     }
                 }
@@ -765,6 +765,14 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
             getCommandStackFromPageDesigner().execute(command);
         }
     }
+    
+    public void setBindingInfoToPart(Part targetPart, String viewModelInfo, String infoDisplayName,
+                                     String infoValue) {
+        String str = targetPart.getProperty(BuilderConstants.ATTRIBUTE_DATA_BIND).getValue();
+        final String info = DataBindingTooltipParser.makeInfoString(targetPart, viewModelInfo, infoDisplayName, infoValue, str);
+        getCommandStackFromPageDesigner().execute(new SetPartPropertyCommand(targetPart, BuilderConstants.ATTRIBUTE_DATA_BIND, info));
+        
+    }
 
     /**
      * Check the duplicated binding information.
@@ -1445,6 +1453,16 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         return projectManager;
 
     }
+    
+    /**
+     * Gets a page designer
+     * 
+     * @return page designer
+     */
+    public PageDesigner getPageDesigner() {
+        return pageDesigner;
+
+    }
 
     private CommandStack getCommandStackFromPageDesigner() {
         // if (dataBindingView.getSite().getPage().getActiveEditor() instanceof PageDesigner) {
@@ -1476,8 +1494,23 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                     getActionRegistryFromPageDesigner().getAction(ActionFactory.REDO.getId());
         }
 
-        pageDesigner.getAppManager().getBindingDataSet().addBindingDataListener(this);
-
+        if (pageDesigner != null) {
+            pageDesigner.getAppManager().getBindingDataSet().addBindingDataListener(this);
+            
+            //TODO addListener only current page
+            List<PageData> pageData = pageDesigner.getAppManager().getPages();
+            for (int i = 0; i < pageData.size(); i++) {
+                List<Part> childParts = pageData.get(i).getRootPart().getChildren();
+                for (Part childPart : childParts) {
+                    if (childPart.getOwnerPage() != null) {
+                        if (!pageList.contains(childPart.getOwnerPage())) {
+                            pageList.add(childPart.getOwnerPage());
+                            addListeners(childPart.getOwnerPage());
+                        }
+                    }
+                }
+            }
+        }
     }
 
     public PageDesigner getInput() {
@@ -1500,6 +1533,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                         if (editPart.getModel() instanceof Part) {
                             Part model = (Part) editPart.getModel();
                             selModels.add(model);
+                            setSelectedPart(model);
                         }
                     }
                 }
@@ -1513,6 +1547,14 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
             }
         }
     }
+    
+    public Part getSelectedPart() {
+        return selectedPart;
+    }
+
+    public void setSelectedPart(Part selectedPart) {
+        this.selectedPart = selectedPart;
+    }
 
     public void updateDataSourceMenus() {
         if (removeDataSourceAction != null) {
index 2e17d65..22c9b31 100644 (file)
@@ -7,9 +7,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.activation.CommandInfo;
-
+import org.eclipse.swt.widgets.TreeItem;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.model.Part;
 import org.tizen.webuibuilder.ui.views.databinding.model.DataBindingTooltipData;
+import org.tizen.webuibuilder.ui.views.databinding.model.TreeItemData;
 
 
 public class DataBindingTooltipParser {
@@ -137,14 +139,14 @@ public class DataBindingTooltipParser {
     }
 
     private static void put(Map<String, String> bindingInfos, String string) {
-       String[] infos = string.split(": ");
-       if (infos.length == 2) {
-               if ((infos[0] != null) && (!infos[0].isEmpty())) {
-                       if ((infos[1] != null) && (!infos[1].isEmpty())) {
-                               bindingInfos.put(infos[0], infos[1]);
-                       }
-               }
-       }
+        String[] infos = string.split(": ");
+        if (infos.length == 2) {
+            if ((infos[0] != null) && (!infos[0].isEmpty())) { 
+                if ((infos[1] != null) && (!infos[1].isEmpty())) {
+                    bindingInfos.put(infos[0], infos[1]);
+                }
+            }            
+        }
     }
 
     public static String makeStringFromMap(Map<String, String> bindingInfos) {
@@ -174,4 +176,74 @@ public class DataBindingTooltipParser {
         
         return string;
     }
+    
+    public static String makeInfoString(Part targetPart, String viewModelInfo, String displayName, String value, String str) {
+        String string = "";
+        
+        if ((str != null) && (!str.isEmpty())) {
+            Map<String, String> bindingInfos = DataBindingTooltipParser.parseToMap(str);
+            
+            if (bindingInfos.containsKey(value)) {
+                bindingInfos.remove(value);
+            } else if (bindingInfos.containsKey("attr-"+displayName)) {
+                bindingInfos.remove("attr-"+displayName);
+            }
+            
+            if ((displayName != null) && (!displayName.isEmpty())) {
+                bindingInfos.put("attr-"+displayName, viewModelInfo);
+            } else {
+                bindingInfos.put(value, viewModelInfo);
+            }
+                        
+            string = DataBindingTooltipParser.makeStringFromMap(bindingInfos);
+        } else {
+            if ((displayName != null) && (!displayName.isEmpty())) {
+                string = value + ": { " + displayName + ": " + viewModelInfo + " }";
+            } else {
+                if (targetPart.getDescriptorId().equals("tizen.listitem")) {
+                    string = value + ": " + viewModelInfo + BuilderConstants.DATABINDING_ARRAYITEM_VALUE_SUFFIX;
+                } else {
+                    string = value + ": " + viewModelInfo;
+                }
+            }
+        }
+        
+        return string;
+    }
+    
+    /**
+     * Creates a view model information.
+     * 
+     * @param treeItem
+     * @return view model information
+     */
+    public static String makeViewModelInfoString(TreeItem treeItem) {
+        String str = "";
+        while ((treeItem.getParentItem() != null)) {
+            if (str.isEmpty()) {
+                str = treeItem.getText();
+            } else {
+                str = treeItem.getText() + "." + str;
+            }
+            treeItem = treeItem.getParentItem();
+        }
+        TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA");
+        str = treeItemData.getOriginModelName() + "." + str;
+        return str;
+    }
+
+    public static String makeViewModelInfo(TreeItem treeItem) {
+        String viewModelInfo;
+        if ((treeItem.getParentItem() != null)
+                && (treeItem.getParentItem().getData("TREEITEMDATA") != null)
+                && (((TreeItemData) treeItem.getParentItem()
+                        .getData("TREEITEMDATA")).getObjectType() != null)
+                && (((TreeItemData) treeItem.getParentItem()
+                        .getData("TREEITEMDATA")).getObjectType().equals("Array"))) {
+            viewModelInfo = BuilderConstants.DATABINDING_ARRAYITEM_VALUE_PREFIX + treeItem.getText();
+        } else {
+            viewModelInfo = DataBindingTooltipParser.makeViewModelInfoString(treeItem);
+        }
+        return viewModelInfo;
+    }
 }
index ea9fc13..7cb8cdc 100644 (file)
@@ -36,19 +36,16 @@ import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.dialogs.ElementListSelectionDialog;
 import org.eclipse.ui.part.IPage;
-import org.tizen.webuibuilder.model.Part;
-import org.tizen.webuibuilder.model.page.PageData;
-import org.tizen.webuibuilder.model.project.ProjectManager;
+import org.tizen.webuibuilder.ui.editor.PageDesigner;
 import org.tizen.webuibuilder.ui.views.databinding.DataBindingPage;
 import org.tizen.webuibuilder.ui.views.databinding.DataBindingView;
+import org.tizen.webuibuilder.ui.views.databinding.model.BindingData;
 
 
 public class GetSourceAction extends SelectionAction {
 
     protected DataBindingView view;
-    private ProjectManager projectManager;
-    List<String> idList = new ArrayList<String>();
-    List<Part> partList = new ArrayList<Part>();
+    private PageDesigner pageDesigner;
 
     /**
      * Constructor.
@@ -70,60 +67,32 @@ public class GetSourceAction extends SelectionAction {
             return false;
         }
 
-        //return true;
-        return false;
+        if (getSelectedTreeItem() == null) {
+            return false;
+        }
+
+        return true;
     }
     
     public void refresh() {
                setEnabled(calculateEnabled());
        }
 
-    // private CommandStack getCommandStackFromPageDesigner() {
-    // PageDesigner pageDesigner =
-    // (PageDesigner)view.getSite().getPage().getActiveEditor();
-    // return (CommandStack) pageDesigner.getAdapter(CommandStack.class);
-    // }
-
-    private void makeWidgetList() {
-        List<Part> subSubPart = null;
-        List<Part> part = null;
-
-        idList.clear();
-        partList.clear();
-
-        IPage page = view.getCurrentPage();
-        if (!(page instanceof DataBindingPage)) {
-            return;
-        }
-        DataBindingPage dataBindingPage = (DataBindingPage) page;
-        projectManager = dataBindingPage.getProjectManager();
-        List<PageData> pageData = projectManager.getDefaultAppManager().getPages();
-
-        for (int i = 0; i < pageData.size(); i++) {
-            part = pageData.get(i).getRootPart().getChildren();
-            for (int j = 0; j < part.size(); j++) {
-                List<Part> subPart = part.get(j).getChildren();
-                for (int k = 0; k < subPart.size(); k++) {
-                    subSubPart = subPart.get(k).getChildren();
-                    for (int l = 0; l < subSubPart.size(); l++) {
-                        idList.add(subSubPart.get(l).getIdPropertyValue());
-                        partList.add(subSubPart.get(l));
-                    }
-                }
-            }
-        }
-    }
-
     private TreeItem getSelectedTreeItem() {
         IPage page = view.getCurrentPage();
         if (!(page instanceof DataBindingPage)) {
             return null;
         }
         DataBindingPage dataBindingPage = (DataBindingPage) page;
+        
         Tree tree = dataBindingPage.getViewModelTree();
         TreeItem[] treeItem = tree.getSelection();
+        
+        if ((treeItem == null) || (treeItem.length < 1)) {
+            return null;
+        }
 
-        if (treeItem[0].getParentItem() == null) {
+        if (treeItem[0].getParentItem() != null) {
             return null;
         }
 
@@ -131,138 +100,40 @@ public class GetSourceAction extends SelectionAction {
         return treeItem[0];
     }
 
-    /*
-     * private Tree getTree() { IPage page = view.getCurrentPage(); if (!(page instanceof
-     * DataBindingPage)) { return null; } DataBindingPage dataBindingPage = (DataBindingPage) page;
-     * Tree tree = dataBindingPage.getTree();
-     * 
-     * return tree; }
-     * 
-     * 
-     * //TODO private static String readAll(Reader rd) throws IOException { StringBuilder sb = new
-     * StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return
-     * sb.toString(); }
-     * 
-     * 
-     * public static JSONObject readJsonFromUrl(String url) throws IOException { InputStream is =
-     * null; try { is = new URL(url).openStream(); //BufferedReader rd = new BufferedReader(new
-     * InputStreamReader(is, Charset.forName("EUC-KR"))); BufferedReader rd = new BufferedReader(new
-     * InputStreamReader(is, "utf-8")); String jsonText = readAll(rd); //JSONObject json = new
-     * JSONObject(jsonText); JSONObject json = (JSONObject)JSONValue.parse(jsonText); return json; }
-     * finally { is.close(); } }
-     */
-
-    /*
-     * public Object getJSON(String json, String searchWord, Map<String, Object> resultMap) { //Json
-     * DATA 전 영역 탐사 및 원하는 데이터를 Map 형태로 리턴시킴 JSONObject jsonObj = null; try { jsonObj = new
-     * JSONObject(json); Iterator itr = jsonObj.keys(); int countJSON = 0; while (itr.hasNext()) {
-     * 
-     * String key = (String)itr.next(); Object value = jsonObj.get(key); String selecter =
-     * (String)value.toString();
-     * 
-     * if(key.equals(searchWord)){ // 조건에 걸린 word 값을 찾아서 map 형태로 리턴 resultMap.put(key, value); }
-     * 
-     * if(selecter != null && !selecter.equals("") && !selecter.equals("null") && jsonObj.get(key)
-     * instanceof JSONArray){ if((JSONArray)jsonObj.get(key) instanceof JSONArray){ JSONArray
-     * jsonArray = (JSONArray)jsonObj.get(key); //this.logger.debug(jsonArray.toString()); for(int i
-     * = 0 ; i<jsonArray.length() ; i++){ jsonArray.get(i); JSONObject jsonObj2 = new
-     * JSONObject(jsonArray.get(i).toString()); getJSON(jsonObj2.toString(), searchWord, resultMap);
-     * } } } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); }
-     * return resultMap; }
-     */
-
-    /*
-     * private void makeDataModel(JSONObject json, String str, TreeItem parentTreeItem, int index) {
-     * 
-     * 
-     * 
-     * if ( (json.get(str) != null) && (
-     * json.get(str).getClass().getName().equals("org.json.simple.JSONArray") )) { JSONArray array =
-     * (JSONArray)json.get(str); TreeItem treeItem; if (parentTreeItem == null) { treeItem = new
-     * TreeItem(getTree(), 0); } else { treeItem = new TreeItem(parentTreeItem, 0); }
-     * treeItem.setText(str); treeItem.setData("TYPE", "Array");
-     * treeItem.setImage(newItem.setImage( ResourceManager.getImage(BuilderConstants.ICON_DIR,
-     * "temp.png"));
-     * 
-     * if (array.get(0).getClass().getName().equals("org.json.simple.JSONObject")) { for (int j=0; j
-     * < ((JSONObject)array.get(0)).size(); j++) { Object[] obj =
-     * ((JSONObject)array.get(0)).keySet().toArray(); makeDataModel((JSONObject) array.get(0),
-     * (String)obj[j], treeItem, 0); } } else {
-     * 
-     * }
-     * 
-     * } else if ( (json.get(str) != null) && (json.get(str).getClass().getName()
-     * .equals("org.json.simple.JSONObject"))) { JSONObject jsonTest = (JSONObject)json.get(str);
-     * TreeItem treeItem; if (parentTreeItem == null) { treeItem = new TreeItem(getTree(), 0); }
-     * else { treeItem = new TreeItem(parentTreeItem, 0); } treeItem.setText(str);
-     * 
-     * if (jsonTest.size() > 0) { for (int j=0; j < jsonTest.size(); j++) { Object[] obj =
-     * jsonTest.keySet().toArray(); makeDataModel(jsonTest, (String)obj[j], treeItem, j); //TODO //
-     * subTreeItem.setData((String)json.get((String)obj[j])); } } else {
-     * 
-     * //TODO treeItem.setData((String)json.get(str)); } } else { TreeItem treeItem; if
-     * (parentTreeItem == null) { treeItem = new TreeItem(getTree(), index); } else { treeItem = new
-     * TreeItem(parentTreeItem, index); } treeItem.setText((String)str);
-     * treeItem.setData(json.get(str)); } }
-     */
-
     @Override
     public void run() {
-
-        makeWidgetList();
-
+        IPage page = view.getCurrentPage();
+        if (!(page instanceof DataBindingPage)) {
+            return;
+        }
+        DataBindingPage dataBindingPage = (DataBindingPage) page;
+        pageDesigner = dataBindingPage.getPageDesigner();
+        if (pageDesigner == null) {
+            return;
+        }
+        
+        TreeItem treeItem = getSelectedTreeItem();
+        if (treeItem == null) {
+            return;
+        }
+        
+        List<BindingData> sources = pageDesigner.getAppManager().getDataSources();
+        List<String> sourceNames = new ArrayList<String>();
+        for (BindingData source : sources) {
+            sourceNames.add(source.getSourceName());
+        }
         ElementListSelectionDialog dialog =
                 new ElementListSelectionDialog(Display.getCurrent().getActiveShell(),
                                                new LabelProvider());
-        dialog.setElements(idList.toArray());
-        dialog.setTitle("Which operating system are you using");
-        // User pressed cancel
+        dialog.setElements(sourceNames.toArray());
+        dialog.setTitle("");
+
         if (dialog.open() != Window.OK) {
             return;
         }
         Object[] result = dialog.getResult();
 
-        for (int i = 0; i < partList.size(); i++) {
-            if (partList.get(i).getIdPropertyValue().equals((String) result[0])) {
-                // getCommandStackFromPageDesigner().execute(new
-                // SetPartPropertyCommand(partList.get(i), "data-bind",
-                // "value: MYOBJ.models.model0.temp", false));
-                TreeItem treeItem = getSelectedTreeItem();
-                if (treeItem == null) {
-                    return;
-                }
-                treeItem.setData(partList.get(i).getPropertyValue("text"));
-
-                IPage page = view.getCurrentPage();
-                if (!(page instanceof DataBindingPage)) {
-                    return;
-                }
-                DataBindingPage dataBindingPage = (DataBindingPage) page;
-                //dataBindingPage.updateModel();
-            }
-        }
-
-        /*
-         * InputDialog dlg = new InputDialog(Display.getCurrent().getActiveShell(), "", "Enter URL",
-         * "http://apis.daum.net/search/blog?apikey=DAUM_SEARCH_DEMO_APIKEY&q=love&result=20&pageno=1&output=json"
-         * , null);
-         * 
-         * if (dlg.open() == Window.OK) { // User clicked OK; update the label with the input
-         * 
-         * IPage page = view.getCurrentPage(); if (!(page instanceof DataBindingPage)) { return; }
-         * DataBindingPage dataBindingPage = (DataBindingPage) page; TreeItem item =
-         * dataBindingPage.addTreeItem2(); item.setData("URL", dlg.getValue());
-         * 
-         * try { JSONObject json = readJsonFromUrl(dlg.getValue());
-         * 
-         * Object[] str = json.keySet().toArray(); for (int i=0; i < str.length; i++) {
-         * makeDataModel(json, (String)str[i], item, 0); //jsonTest.getClass(); }
-         * 
-         * } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
-         * 
-         * dataBindingPage.updateModel(); }
-         */
-
+        dataBindingPage.setDataSourceToViewModel(pageDesigner.getAppManager().getDataSource(result[0].toString()), pageDesigner.getAppManager().getViewModel(treeItem.getText()));
     }
 
 }
index 2d00616..ac66e47 100644 (file)
 
 package org.tizen.webuibuilder.ui.views.databinding.actions;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.commands.CommandStack;
 import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
 import org.eclipse.ui.part.IPage;
-import org.tizen.webuibuilder.BuilderConstants;
-import org.tizen.webuibuilder.gef.commands.SetPartPropertyCommand;
 import org.tizen.webuibuilder.model.Part;
-import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
-import org.tizen.webuibuilder.model.page.PageData;
-import org.tizen.webuibuilder.model.project.ProjectManager;
-import org.tizen.webuibuilder.ui.editor.PageDesigner;
 import org.tizen.webuibuilder.ui.views.databinding.DataBindingPage;
+import org.tizen.webuibuilder.ui.views.databinding.DataBindingTooltipParser;
 import org.tizen.webuibuilder.ui.views.databinding.DataBindingView;
+import org.tizen.webuibuilder.ui.views.databinding.dialog.SetTargetPage;
+import org.tizen.webuibuilder.ui.views.databinding.model.BindingInfo;
 
 
 public class SetTargetAction extends SelectionAction {
 
     protected DataBindingView view;
-    private ProjectManager projectManager;
-    List<String> idList = new ArrayList<String>();
-    List<Part> partList = new ArrayList<Part>();
-
+    private DataBindingPage dataBindingPage;
+  
     /**
      * Constructor.
      * 
@@ -74,185 +62,67 @@ public class SetTargetAction extends SelectionAction {
         if (view == null) {
             return false;
         }
+        
+        if (getSelectedTreeItem() == null) {
+            return false;
+        }
 
-        //return true;
-        return false;
+        return true;
     }
     
     public void refresh() {
                setEnabled(calculateEnabled());
        }
 
-    // FIXME remove? move to databindingPage?
-    private CommandStack getCommandStackFromPageDesigner() {
-        PageDesigner pageDesigner = (PageDesigner) view.getSite().getPage().getActiveEditor();
-        return (CommandStack) pageDesigner.getAdapter(CommandStack.class);
-    }
-
-    private void makeWidgetList() {
-        List<Part> part = null;
-
-        idList.clear();
-        partList.clear();
-
-        IPage page = view.getCurrentPage();
-        if (!(page instanceof DataBindingPage)) {
-            return;
-        }
-        DataBindingPage dataBindingPage = (DataBindingPage) page;
-        projectManager = dataBindingPage.getProjectManager();
-        List<PageData> pageData = projectManager.getDefaultAppManager().getPages();
-
-        for (int i = 0; i < pageData.size(); i++) {
-            part = pageData.get(i).getRootPart().getChildren();
-
-            makeSubWidgetList(part, idList, partList);
-        }
-    }
-
-    private void makeSubWidgetList(List<Part> part, List<String> idList2, List<Part> partList2) {
-
-        if (part.size() == 0) {
-            return;
-        } else {
-            for (int j = 0; j < part.size(); j++) {
-                idList.add(part.get(j).getIdPropertyValue());
-                partList.add(part.get(j));
-                List<Part> subPart = part.get(j).getChildren();
-                makeSubWidgetList(subPart, idList, partList);
-            }
-        }
-    }
-
-    private DataBindingPage getDataBindingPage() {
+    private TreeItem getSelectedTreeItem() {
         IPage page = view.getCurrentPage();
         if (!(page instanceof DataBindingPage)) {
             return null;
         }
-        return (DataBindingPage) page;
-    }
-
-    private TreeItem getSelectedTreeItem() {
-        DataBindingPage dataBindingPage = getDataBindingPage();
-        if (dataBindingPage == null) {
-               return null;
-        }
+        DataBindingPage dataBindingPage = (DataBindingPage) page;
                
         Tree tree = dataBindingPage.getViewModelTree();
         TreeItem[] treeItem = tree.getSelection();
+        
+        if ((treeItem == null) || (treeItem.length < 1)) {
+            return null;
+        }
 
         if (treeItem[0].getParentItem() == null) {
             return null;
         }
 
-        // 0 .. multi select
         return treeItem[0];
     }
 
-    private void addInfoTableItem(Part part, String modelName, String widgetName,
-                                  String bindingInfoStr) {
-
-        DataBindingPage dataBindingPage = getDataBindingPage();
-        if (dataBindingPage != null) {
-               if (dataBindingPage.checkDuplicatedTableItem(modelName, widgetName, bindingInfoStr)) {
-                   dataBindingPage.addInfoTableItem(part, modelName, widgetName, bindingInfoStr);
-                   //dataBindingPage.updateModel();
-               }
-        }
-    }
-
     @Override
     public void run() {
         IPage page = view.getCurrentPage();
         if (!(page instanceof DataBindingPage)) {
             return;
         }
+        dataBindingPage = (DataBindingPage) page;
 
         TreeItem treeItem = getSelectedTreeItem();
         if (treeItem == null) {
             return;
         }
-
-        makeWidgetList();
-
-        ElementListSelectionDialog dialog =
-                new ElementListSelectionDialog(Display.getCurrent().getActiveShell(),
-                                               new LabelProvider());
-        dialog.setElements(idList.toArray());
-        dialog.setTitle("Which operating system are you using");
-        // User pressed cancel
-        if (dialog.open() != Window.OK) {
+        
+        SetTargetPage dialog = new SetTargetPage(Display.getCurrent().getActiveShell(), dataBindingPage);
+        BindingInfo bindingInfo = dialog.open();
+        
+        if (bindingInfo == null) {
             return;
         }
-        Object[] result = dialog.getResult();
-
-        for (int i = 0; i < partList.size(); i++) {
-
-            // TODO partList.get(i).getPartId()
-            if (partList.get(i).getIdPropertyValue().equals(result[0].toString())) {
-
-                // treeItem.getText(); //temp
-                // treeItem.getParentItem().getText(); //model
-
-                String str = makePropertyValue(treeItem);
-
-                // FIXME testCode
-                List<ConstantDescriptor> enums =
-                        partList.get(i).getPartDescriptor().getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND)
-                                .getTypeDescriptor().getAvailableConstant();
-                // String defaultBindingType =
-                // partList.get(i).getPartDescriptor().getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND).getDefaultValue();
-
-                // TODO 0 == defaultvalue
-                String defaultBindingType = enums.get(0).getValue();
-                String bindingInfoStr;
-                if ((partList.get(i).getParent() != null)
-                        && (partList.get(i).getParent().getPartDescriptor()
-                                .getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND) != null)
-                        && (partList.get(i).getParent().getPartDescriptor()
-                                .getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND).getTypeDescriptor()
-                                .getAvailableConstant().get(0).getValue().equals("foreach"))) {
-                    bindingInfoStr = defaultBindingType + ": $data." + treeItem.getText();
-                } else {
-                    bindingInfoStr = defaultBindingType + ": " + str;
-                }
-
-                //TODO add -> refresh
-                addInfoTableItem(partList.get(i), str, result[0].toString(), bindingInfoStr);
-                getCommandStackFromPageDesigner()
-                        .execute(new SetPartPropertyCommand(partList.get(i), BuilderConstants.ATTRIBUTE_DATA_BIND,
-                                                            bindingInfoStr, false));
-
-                /*
-                 * //FIXME //move this code if( (treeItem.getData("TYPE") != null) &&
-                 * (treeItem.getData("TYPE").equals("Array")) ) {
-                 * getCommandStackFromPageDesigner().execute(new
-                 * SetPartPropertyCommand(partList.get(i), BuilderConstants.ATTRIBUTE_DATA_BIND,
-                 * "foreach: MYOBJ.models."+str, false)); } else if(
-                 * (treeItem.getParentItem().getData("TYPE") != null) && (treeItem
-                 * .getParentItem().getData("TYPE").equals("Array")) ) {
-                 * getCommandStackFromPageDesigner().execute(new
-                 * SetPartPropertyCommand(partList.get(i), BuilderConstants.ATTRIBUTE_DATA_BIND, "text: "+treeItem.getText(),
-                 * false)); } else { getCommandStackFromPageDesigner().execute(new
-                 * SetPartPropertyCommand(partList.get(i), BuilderConstants.ATTRIBUTE_DATA_BIND, bindingInfoStr, false)); }
-                 */
-            }
-        }
-
-    }
-
-    private String makePropertyValue(TreeItem treeItem) {
-        String str = "";
-        while ((treeItem.getParentItem() != null)) {
-            if (str == "") {
-                str = treeItem.getText();
-            } else {
-                str = treeItem.getText() + "." + str;
-            }
-            treeItem = treeItem.getParentItem();
+        
+        Part targetPart = bindingInfo.getTargetPart();
+        String infoValue = bindingInfo.getInfoValue();
+        String infoDisplayName = bindingInfo.getInfoDisplayName();
+        
+        String viewModelInfo = DataBindingTooltipParser.makeViewModelInfo(treeItem);
+        
+        if (targetPart != null) {
+            dataBindingPage.setBindingInfoToPart(targetPart, viewModelInfo, infoDisplayName, infoValue);
         }
-        str = treeItem.getData("DEFAULTTEXT") + "." + str;
-        return str;
     }
-
 }
diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/dialog/SetTargetPage.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/dialog/SetTargetPage.java
new file mode 100644 (file)
index 0000000..574bef9
--- /dev/null
@@ -0,0 +1,288 @@
+package org.tizen.webuibuilder.ui.views.databinding.dialog;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
+import org.tizen.webuibuilder.model.page.PageData;
+import org.tizen.webuibuilder.ui.views.databinding.DataBindingPage;
+import org.tizen.webuibuilder.ui.views.databinding.model.BindingInfo;
+import org.tizen.webuibuilder.utility.ResourceManager;
+
+public class SetTargetPage extends Dialog {
+
+    private Shell shell;
+    private SashForm sashForm;
+    private DataBindingPage dataBindingPage;
+    private Tree widgetTree;
+    private Tree bindingInfoTree;
+    private Button okButton;
+    private BindingInfo bindingInfo = new BindingInfo();
+    
+    public SetTargetPage(Shell parent, DataBindingPage dataBindingPage) {
+        super( parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL );
+        setText( "Set Target" );
+        this.dataBindingPage = dataBindingPage;
+    }
+    
+    /**
+     * Opens the dialog and returns the input
+     * 
+     * @return message
+     */
+    public BindingInfo open() {
+        // Create the dialog window
+        shell = new Shell( getParent(), SWT.TITLE | SWT.CLOSE | SWT.BORDER | SWT.RESIZE );
+        shell.setText( getText() );
+        //shell.setMinimumSize(400, 500);
+        createContents();
+        shell.pack();
+        
+        shell.open();
+        Display display = getParent().getDisplay();
+        while ( !shell.isDisposed() ) {
+            if (!display.readAndDispatch()) {
+                display.sleep();
+            }
+        }
+        return bindingInfo;
+    }
+    
+    private void createContents() {
+        FormLayout layout = new FormLayout();
+        shell.setLayout(layout);
+        layout.marginWidth = 5;
+        layout.marginHeight = 5;
+        
+        sashForm = new SashForm(shell, SWT.HORIZONTAL);
+        
+        FormData sashData = new FormData();
+        sashData.top = new FormAttachment( 0, 0);
+        sashData.bottom = new FormAttachment(100, -35);
+        sashData.left = new FormAttachment(0, 0);
+        sashData.right = new FormAttachment(100, -5);
+        sashForm.setLayoutData( sashData );
+        
+        Group widgetTreeGroup = new Group(sashForm, SWT.NONE);
+        Group bindingInfoGroup = new Group(sashForm, SWT.NONE);
+        
+        //sashForm.setWeights(new int[] {2, 3});
+        
+        makeBindingInfoGroup( bindingInfoGroup );
+        makeWidgetTreeGroup( widgetTreeGroup );
+        
+        // Create the cancel button and add a handler
+        // so that pressing it will set input to null
+        Button cancelButton = new Button( shell, SWT.PUSH );
+        cancelButton.setText( "CANCEL" );
+        
+        FormData data = new FormData( 100, 30 );
+        data.top = new FormAttachment( sashForm, 5 );
+        data.right = new FormAttachment( 100, -5 );
+        data.bottom = new FormAttachment( 100, -5 );
+        
+        cancelButton.setLayoutData( data );
+        
+        cancelButton.addSelectionListener( new SelectionAdapter() {
+            public void widgetSelected( SelectionEvent event ) {
+                bindingInfo = null;
+                shell.close();
+            }
+        } );
+
+        // Create the OK button and add a handler
+        // so that pressing it will set input
+        // to the entered value
+        okButton = new Button( shell, SWT.PUSH );
+        okButton.setText( "OK" );
+        
+        data = new FormData( 100, 30 );
+        data.top = new FormAttachment( sashForm, 5 );
+        data.right = new FormAttachment( cancelButton, -5 );
+        data.bottom = new FormAttachment( 100, -5 );
+        
+        okButton.setLayoutData( data );
+        okButton.setEnabled(false);
+        
+        okButton.addSelectionListener( new SelectionAdapter() {            
+            public void widgetSelected( SelectionEvent event ) {
+                TreeItem[] widetTreeItem = widgetTree.getSelection();
+                TreeItem[] bindingInfoTreeItem = bindingInfoTree.getSelection();
+                
+                if ((widetTreeItem != null) && (bindingInfoTreeItem != null)) {
+                    if ((widetTreeItem.length > 0) && (bindingInfoTreeItem.length > 0)) {
+                        if ((widetTreeItem[0] != null) && (bindingInfoTreeItem[0] != null)) {
+                            bindingInfo.setTargetPart((Part) widetTreeItem[0].getData("PART"));
+                            bindingInfo.setInfoValue((String) bindingInfoTreeItem[0].getData("INFOVALUE")); 
+                            bindingInfo.setInfoDisplayName((String) bindingInfoTreeItem[0].getData("INFODISPLAYNAME"));
+                        }
+                    }
+                }
+                shell.close();
+            }
+        });
+        
+    }
+
+    private void makeBindingInfoGroup(Group bindingInfoGroup) {
+        FormLayout layout = new FormLayout();
+        bindingInfoGroup.setLayout(layout);
+        
+        bindingInfoTree = new Tree(bindingInfoGroup, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION );
+
+        bindingInfoTree.setLinesVisible(true);
+        //dialogTree.setHeaderVisible(true);
+        
+        FormData data = new FormData(150, 300);
+        data.top = new FormAttachment(0, 2);
+        data.left = new FormAttachment(0, 0);
+        data.right = new FormAttachment(100, 0);
+        data.bottom = new FormAttachment(100, 0);
+        bindingInfoTree.setLayoutData(data);
+        
+        bindingInfoGroup.layout();
+        
+        bindingInfoTree.addMouseListener(new MouseAdapter() {
+            public void mouseUp(MouseEvent e) {
+                setVisibleToOkButton();
+            }
+        });
+    }
+
+    private void makeWidgetTreeGroup(Group widgetTreeGroup) {
+        FormLayout layout = new FormLayout();
+        widgetTreeGroup.setLayout(layout);
+        
+        widgetTree = new Tree(widgetTreeGroup, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION );
+        
+        FormData data = new FormData(250, 300);
+        data.top = new FormAttachment(0, 2);
+        data.left = new FormAttachment(0, 0);
+        data.right = new FormAttachment(100, 0);
+        data.bottom = new FormAttachment(100, 0);
+        widgetTree.setLayoutData(data);
+        
+        makeTreeItems(widgetTree);
+        widgetTreeGroup.layout();
+        
+        widgetTree.addMouseListener(new MouseAdapter() {
+            public void mouseUp(MouseEvent e) {
+                Point point = new Point(e.x, e.y);
+                final TreeItem treeItem = widgetTree.getItem(point);
+                makeBindingInfoList(treeItem);
+                setVisibleToOkButton();
+            }
+        });
+    }
+    
+    private void setVisibleToOkButton() {
+        boolean enable = false;
+        if ((widgetTree.getSelection() != null) && (widgetTree.getSelection().length > 0)) {
+            if ((bindingInfoTree.getSelection() != null) && (bindingInfoTree.getSelection().length > 0)) {
+                enable = true;
+            }
+        }
+        okButton.setEnabled(enable);
+    }
+
+    private void makeBindingInfoList(TreeItem treeItem) {
+        if (treeItem == null) {
+            widgetTree.deselectAll();
+            return;
+        }
+        Part part = (Part) treeItem.getData("PART");
+        if (part == null) {
+            return;
+        }
+        
+        if (bindingInfoTree == null) {
+            return;
+        }
+        
+        bindingInfoTree.removeAll();
+        
+        if (part.getPartDescriptor().getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND) == null) {
+            return;
+        }
+        
+        List<ConstantDescriptor> list =
+                part.getPartDescriptor().getPropertyDescriptor(BuilderConstants.ATTRIBUTE_DATA_BIND)
+                        .getTypeDescriptor().getAvailableConstant();
+        
+        if ((list == null) || (list.size() <= 0)) {
+            return;
+        }
+        for (int i = 0; i < list.size(); i++) {
+            TreeItem subItem = new TreeItem(bindingInfoTree, SWT.NONE);
+            final String value = list.get(i).getValue();
+            final String displayName = list.get(i).getDisplayName();
+            subItem.setData("INFOVALUE", value);
+            if ((displayName != null) && (!displayName.isEmpty())) {
+                subItem.setText(value + "[" + displayName + "]");
+                subItem.setData("INFODISPLAYNAME", displayName);
+            } else {
+                subItem.setText(value);
+            }
+        }
+    }
+
+    private void makeTreeItems(Tree widgetTree) {
+        List<PageData> pageData = dataBindingPage.getPageDesigner().getAppManager().getPages();
+        List<Part> childParts = null;
+        
+        for (int i = 0; i < pageData.size(); i++) {
+            childParts = pageData.get(i).getRootPart().getChildren();
+            makeSubWidgetList(null, childParts);
+        }
+    }
+
+    private void makeSubWidgetList(TreeItem parentItem, List<Part> childParts) {
+        if (childParts.size() == 0) {
+            return;
+        }
+        
+        TreeItem subItem;
+        for (int i = 0; i < childParts.size(); i++) {
+            if (parentItem == null) {
+                subItem = new TreeItem(widgetTree, SWT.NONE);
+            } else {
+                subItem = new TreeItem(parentItem, SWT.NONE);
+            }
+            subItem.setText(childParts.get(i).getIdPropertyValue() + " <" + childParts.get(i).getPartDescriptor().getDisplayName()+ ">");
+            subItem.setData("PART", childParts.get(i));
+            String iconPath = childParts.get(i).getPartDescriptor().getIcon16();
+            Image image = ResourceManager.getImage(BuilderConstants.ICON_DIR, iconPath);
+            subItem.setImage(image);
+            if ((dataBindingPage.getSelectedPart() != null) && (childParts.get(i).equals(dataBindingPage.getSelectedPart()))) {
+                subItem.setExpanded(true);
+                widgetTree.setSelection(subItem);
+                makeBindingInfoList(subItem);
+            }
+            
+            List<Part> subPart = childParts.get(i).getChildren();
+            makeSubWidgetList(subItem, subPart);
+        }
+        
+    }
+
+    
+}
diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingInfo.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingInfo.java
new file mode 100644 (file)
index 0000000..961cf67
--- /dev/null
@@ -0,0 +1,28 @@
+package org.tizen.webuibuilder.ui.views.databinding.model;
+
+import org.tizen.webuibuilder.model.Part;
+
+public class BindingInfo {
+    private Part targetPart;
+    private String infoValue;
+    private String infoDisplayName;
+    
+    public Part getTargetPart() {
+        return targetPart;
+    }
+    public void setTargetPart(Part targetPart) {
+        this.targetPart = targetPart;
+    }
+    public String getInfoValue() {
+        return infoValue;
+    }
+    public void setInfoValue(String infoValue) {
+        this.infoValue = infoValue;
+    }
+    public String getInfoDisplayName() {
+        return infoDisplayName;
+    }
+    public void setInfoDisplayName(String infoDisplayName) {
+        this.infoDisplayName = infoDisplayName;
+    }
+}
\ No newline at end of file