From 410ab954878beb9e27d1d1f68e63bb3f4e0dbbf3 Mon Sep 17 00:00:00 2001 From: jaeyeol lee Date: Sun, 11 May 2014 14:26:31 +0900 Subject: [PATCH] DATABIND: Add the binding property for a list item Change-Id: Ia654acdbfab51d94e2e27dbc085ff7bb58ad9ca1 Signed-off-by: jaeyeol lee --- .../descriptors/Tizen-web-ui-fw/tizen.types.xml | 4 ++-- .../org/tizen/webuibuilder/BuilderConstants.java | 1 + .../gef/policies/DesignerXYLayoutEditPolicy.java | 14 ++++++++----- .../ui/views/databinding/DataBindingPage.java | 23 +++++++++++++--------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml index 57a9414..99a662e 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml @@ -794,8 +794,8 @@ - - + + \ No newline at end of file diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/BuilderConstants.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/BuilderConstants.java index 7106683..4563853 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/BuilderConstants.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/BuilderConstants.java @@ -253,6 +253,7 @@ public class BuilderConstants { // DataBinding public static final String DATABINDINGVIEW_DEFAULT_MESSAGE = "Data-Binding view is not available."; //$NON-NLS-1$ public static final String DATABINDING_ARRAYITEM_VALUE_PREFIX = "$data."; //$NON-NLS-1$ + public static final String DATABINDING_ARRAYITEM_VALUE_SUFFIX = ", attr: { 'data-index': $index }"; //$NON-NLS-1$ public static final String DATABINDING_TYPE_STATIC = "Static"; //$NON-NLS-1$ public static final String DATABINDING_TYPE_REMOTECALL = "Remote Call"; //$NON-NLS-1$ diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/policies/DesignerXYLayoutEditPolicy.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/policies/DesignerXYLayoutEditPolicy.java index 47ccfab..c14a2ce 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/policies/DesignerXYLayoutEditPolicy.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/policies/DesignerXYLayoutEditPolicy.java @@ -192,7 +192,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(property2, displayName, value, str); + final String info = makeInfoString(targetPart, property2, displayName, value, str); command = new SetPartPropertyCommand(targetPart, BuilderConstants.ATTRIBUTE_DATA_BIND, info); @@ -219,7 +219,7 @@ public class DesignerXYLayoutEditPolicy extends HoverViewerXYLayoutEditPolicy { } - private String makeInfoString(PartProperty property2, String displayName, String value, String str) { + private String makeInfoString(Part targetPart, PartProperty property2, String displayName, String value, String str) { String string = ""; if ((str != null) && (!str.isEmpty())) { @@ -232,17 +232,21 @@ public class DesignerXYLayoutEditPolicy extends HoverViewerXYLayoutEditPolicy { } if ((displayName != null) && (!displayName.isEmpty())) { - bindingInfos.put(value+"-"+displayName, property2.getValue()); + 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 { - string = value + ": " + property2.getValue(); + if (targetPart.getDescriptorId().equals("tizen.listitem")) { + string = value + ": " + property2.getValue() + BuilderConstants.DATABINDING_ARRAYITEM_VALUE_SUFFIX; + } else { + string = value + ": " + property2.getValue(); + } } } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java index 316977e..479a37c 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java @@ -314,6 +314,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener { if (parentPropertyValue != null) { addInfoTableItem(part, parentPropertyValue, part.getIdPropertyValue(), key); + break; } } else { addInfoTableItem(part, modelValue, part.getIdPropertyValue(), key); @@ -920,15 +921,19 @@ public class DataBindingPage extends Page implements IBindingDataSetListener { Part part = (Part) tableItem.getData("PART"); String tableTypeValue = tableItem.getText(2); if (part != null) { - String propertyValue = - part.getProperty(BuilderConstants.ATTRIBUTE_DATA_BIND).getValue(); - if ((propertyValue != null) && (!propertyValue.isEmpty())) { - Map bindingInfos = DataBindingTooltipParser.parseToMap(propertyValue); - Object[] bindingTypes = bindingInfos.keySet().toArray(); - for (Object bindingType : bindingTypes) { - if ((tableTypeValue != null) && (bindingType.toString().equals(tableTypeValue))) { - bindingInfos.remove(bindingType); - removeInfoTableItem(part, DataBindingTooltipParser.makeStringFromMap(bindingInfos)); + if (part.getDescriptorId().equals("tizen.listitem")) { + removeInfoTableItem(part, ""); + } else { + String propertyValue = + part.getProperty(BuilderConstants.ATTRIBUTE_DATA_BIND).getValue(); + if ((propertyValue != null) && (!propertyValue.isEmpty())) { + Map bindingInfos = DataBindingTooltipParser.parseToMap(propertyValue); + Object[] bindingTypes = bindingInfos.keySet().toArray(); + for (Object bindingType : bindingTypes) { + if ((tableTypeValue != null) && (bindingType.toString().equals(tableTypeValue))) { + bindingInfos.remove(bindingType); + removeInfoTableItem(part, DataBindingTooltipParser.makeStringFromMap(bindingInfos)); + } } } } -- 2.7.4