From bfd1173666dd8d88ed91add62070b95f9c22b392 Mon Sep 17 00:00:00 2001 From: YongHwan Date: Fri, 21 Feb 2014 16:14:15 +0900 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into tizen Change-Id: I03ead7c8ddba9fda69a9b3e343dd515566f56344 Signed-off-by: YongHwan --- org.tizen.webuibuilder/META-INF/MANIFEST.MF | 1 - .../widget/html.headingone.widget.xml | 2 + .../Tizen-web-ui-fw/widget/tizen.button.widget.xml | 2 + .../Tizen-web-ui-fw/widget/tizen.list.widget.xml | 2 + .../widget/tizen.listitemsubtextone.widget.xml | 2 + .../widget/tizen.listitemthumbnail.widget.xml | 2 + .../model/descriptors/PartDescriptor.java | 19 ++- .../webuibuilder/model/io/DescriptorReader.java | 4 +- .../views/databinding/DataBindingDnDManager.java | 31 +++- .../ui/views/databinding/DataBindingPage.java | 169 ++++++++++++++++----- .../ui/views/databinding/SetSourceDialog.java | 89 ++++++++--- .../actions/AddViewModelItemAction.java | 76 +++++++++ .../ui/views/databinding/model/TreeItemData.java | 19 --- .../properties/HTMLBlockPropertyModifier.java | 23 ++- 14 files changed, 342 insertions(+), 99 deletions(-) create mode 100644 org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/AddViewModelItemAction.java diff --git a/org.tizen.webuibuilder/META-INF/MANIFEST.MF b/org.tizen.webuibuilder/META-INF/MANIFEST.MF index eb0d65d..413508e 100644 --- a/org.tizen.webuibuilder/META-INF/MANIFEST.MF +++ b/org.tizen.webuibuilder/META-INF/MANIFEST.MF @@ -6,7 +6,6 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui.navigator, org.tizen.common, org.tizen.web.project.wizard;bundle-version="1.0.0", - org.eclipse.jst.pagedesigner, org.eclipse.ui.views.properties.tabbed, org.eclipse.ltk.core.refactoring;bundle-version="3.5.201", org.eclipse.wst.jsdt.ui, diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/html.headingone.widget.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/html.headingone.widget.xml index a584561..28854cf 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/html.headingone.widget.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/html.headingone.widget.xml @@ -24,6 +24,8 @@ --> + + diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.button.widget.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.button.widget.xml index 41f8213..96b1681 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.button.widget.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.button.widget.xml @@ -60,6 +60,8 @@ + + diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.list.widget.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.list.widget.xml index 0a58442..1ace03b 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.list.widget.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.list.widget.xml @@ -23,6 +23,8 @@ --> + + diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.listitemsubtextone.widget.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.listitemsubtextone.widget.xml index 6981a98..853b71f 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.listitemsubtextone.widget.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/widget/tizen.listitemsubtextone.widget.xml @@ -32,6 +32,8 @@ --> + + + + diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/descriptors/PartDescriptor.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/descriptors/PartDescriptor.java index 9c422b9..b288254 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/descriptors/PartDescriptor.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/descriptors/PartDescriptor.java @@ -62,6 +62,11 @@ public abstract class PartDescriptor { protected String description; /** + * The condition of feedback in Page Designer. + */ + protected String layoutCapacity; + + /** * The visibility in a palette of Page Designer. */ protected boolean paletteVisible; @@ -190,6 +195,8 @@ public abstract class PartDescriptor { * a 16x16 icon name * @param description * a description of {@link Part} + * @param layoutCapacity + * a layoutCapacity of {@link Part} * @param paletteVisible * the visibility in a palette of Page Designer * @param helpCategory @@ -216,7 +223,7 @@ public abstract class PartDescriptor { * a child xpath */ public void init(String descriptorId, String displayName, String smallIcon, String icon16, - String description, boolean paletteVisible, String helpCategory, + String description, String layoutCapacity, boolean paletteVisible, String helpCategory, String helpContens, String feedbackWidth, String feedbackHeight, boolean borderVisible, String feedbackCondition, String guideText, boolean setStyle, String uiSelector, String xpath, String childXpath) { @@ -225,6 +232,7 @@ public abstract class PartDescriptor { this.smallIcon = smallIcon; this.icon16 = icon16; this.description = description; + this.layoutCapacity = layoutCapacity; this.paletteVisible = paletteVisible; this.helpCategory = helpCategory; this.helpContents = helpContens; @@ -285,6 +293,15 @@ public abstract class PartDescriptor { } /** + * Gets a layoutCapacity of {@link Part}. + * + * @return layoutCapacity of {@link Part} + */ + public String getLayoutCapacity() { + return layoutCapacity; + } + + /** * Gets the visibility in a palette of Page Designer. * * @return visibility in a palette of Page Designer diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/DescriptorReader.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/DescriptorReader.java index 3a75ba8..6bdb71e 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/DescriptorReader.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/DescriptorReader.java @@ -87,6 +87,7 @@ public class DescriptorReader { private static final String ATTR_ICON = "icon"; //$NON-NLS-1$ private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$ private static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$ + private static final String ATTR_LAYOUT_CAPACITY = "layoutCapacity"; //$NON-NLS-1$ private static final String ATTR_PALETTE_VISIBLE = "paletteVisible"; //$NON-NLS-1$ private static final String ATTR_HELPCATEGORY = "helpCategory"; //$NON-NLS-1$ private static final String ATTR_HELPCONTENS = "helpContents"; //$NON-NLS-1$ @@ -256,6 +257,7 @@ public class DescriptorReader { String smallIcon = elem.getAttribute(ATTR_SMALLICON); String icon16 = elem.getAttribute(ATTR_ICON_16); String description = elem.getAttribute(ATTR_DESCRIPTION); + String layoutCapacity = elem.getAttribute(ATTR_LAYOUT_CAPACITY); String paletteVisible = elem.getAttribute(ATTR_PALETTE_VISIBLE); String helpCategory = elem.getAttribute(ATTR_HELPCATEGORY); String helpContens = elem.getAttribute(ATTR_HELPCONTENS); @@ -276,7 +278,7 @@ public class DescriptorReader { boolean boolBorderVisible = Boolean.parseBoolean(borderVisible); boolean boolSetStyle = Boolean.parseBoolean(setStyle); - part.init(id, displayName, smallIcon, icon16, description, + part.init(id, displayName, smallIcon, icon16, description, layoutCapacity, boolpaletteVisible, helpCategory, helpContens, width, height, boolBorderVisible, feedbackCondition, guideText, boolSetStyle, uiSelector, xpath, childXpath); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java index ca8e7a2..ff060f5 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java @@ -358,15 +358,13 @@ public class DataBindingDnDManager { TreeItemData treeData = new TreeItemData(); TreeItemData treeItemData = new TreeItemData(); - int count = 0; - TreeItemData viewModelTreeData = - (TreeItemData) viewModelTree.getData("TREEITEMDATA"); - if (viewModelTreeData != null) { - count = viewModelTreeData.getViewModelCount(); + int idIndex = 0; + + while (!canSetTreeItemName(viewModelTree, "model" + idIndex)) { + idIndex++; } + viewModelItem.setText("model" + idIndex); - viewModelItem.setText("model" + count++); - treeData.setViewModelCount(count); treeItemData.setOriginModelName(viewModelItem.getText()); viewModelItem.setData("TREEITEMDATA", treeItemData); viewModelTree.setData("TREEITEMDATA", treeData); @@ -460,6 +458,25 @@ public class DataBindingDnDManager { } }); } + + /** + * Returns TRUE if tree item name can be set. + * @param viewModelTree + * + * @param itemName + * a tree item name + * @return true if tree item name can be set + */ + private static boolean canSetTreeItemName(Tree tree, String itemName) { + TreeItem[] childItems = tree.getItems(); + for (TreeItem childItem : childItems) { + TreeItemData treeItemData = (TreeItemData) childItem.getData("TREEITEMDATA"); + if ((treeItemData != null) && (treeItemData.getOriginModelName().equals(itemName))) { + return false; + } + } + return true; + } private static void makeViewModel(TreeItem item, TreeItem sourceItem) { TreeItemData treeItemData = (TreeItemData) item.getData("TREEITEMDATA"); 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 59f5c00..9875442 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 @@ -67,6 +67,7 @@ import org.tizen.webuibuilder.model.project.ProjectManager; import org.tizen.webuibuilder.ui.editor.PageDesigner; import org.tizen.webuibuilder.ui.views.databinding.actions.AddDataSourceAction; import org.tizen.webuibuilder.ui.views.databinding.actions.AddViewModelAction; +import org.tizen.webuibuilder.ui.views.databinding.actions.AddViewModelItemAction; import org.tizen.webuibuilder.ui.views.databinding.actions.EditDataSourceAction; import org.tizen.webuibuilder.ui.views.databinding.actions.GetSourceAction; import org.tizen.webuibuilder.ui.views.databinding.actions.RemoveDataSourceAction; @@ -89,6 +90,7 @@ public class DataBindingPage extends Page { private DataBindingView dataBindingView; private AddViewModelAction addViewModelAction; + private AddViewModelItemAction addViewModelItemAction; private EditDataSourceAction editDataModelAction; private SetTargetAction setTargetAction; private GetSourceAction getSourceAction; @@ -241,7 +243,7 @@ public class DataBindingPage extends Page { if (data == null) { data = new TreeItemData(); } - data.setViewModelCount(i + 1); + //data.setViewModelCount(i + 1); viewModelTree.setData("TREEITEMDATA", data); } } @@ -269,7 +271,7 @@ public class DataBindingPage extends Page { if (data == null) { data = new TreeItemData(); } - data.setViewModelCount(i + 1); + //data.setViewModelCount(i + 1); dataSourceTree.setData("TREEITEMDATA", data); } } @@ -386,13 +388,12 @@ public class DataBindingPage extends Page { TreeItem[] subSubTreeItems = item.getItems(); for (TreeItem subItem : subSubTreeItems) { - makeObservableObjectsFromTreeItem2(observableObject, subItem); + makeObservableObjectsFromSubTreeItem(observableObject, subItem); } } } - // FIXME change the func name... - private void makeObservableObjectsFromTreeItem2(BindingObject parent, TreeItem treeItem) { + private void makeObservableObjectsFromSubTreeItem(BindingObject parent, TreeItem treeItem) { TreeItem[] subTreeItems = treeItem.getItems(); TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA"); String type = null; @@ -403,7 +404,7 @@ public class DataBindingPage extends Page { parent.add(observableObject); for (TreeItem item : subTreeItems) { - makeObservableObjectsFromTreeItem2(observableObject, item); + makeObservableObjectsFromSubTreeItem(observableObject, item); } /* @@ -437,42 +438,127 @@ public class DataBindingPage extends Page { */ public TreeItem addViewModel() { - TreeItem[] selectedItems = viewModelTree.getSelection(); + TreeItem item = new TreeItem(viewModelTree, 0); + TreeItemData treeItemData = new TreeItemData(); + TreeItemData modelTreeItemData = (TreeItemData) viewModelTree.getData("TREEITEMDATA"); - if (selectedItems.length == 0) { - TreeItem item = new TreeItem(viewModelTree, 0); - TreeItemData treeItemData = new TreeItemData(); - TreeItemData modelTreeItemData = (TreeItemData) viewModelTree.getData("TREEITEMDATA"); + int idIndex = 0; - int count = 0; - if (modelTreeItemData != null) { - count = modelTreeItemData.getViewModelCount(); - } + while (!canSetTreeItemName(viewModelTree, "model" + idIndex)) { + idIndex++; + } - item.setText("model" + count++); - if (modelTreeItemData == null) { - modelTreeItemData = new TreeItemData(); - } + item.setText("model" + idIndex); + if (modelTreeItemData == null) { + modelTreeItemData = new TreeItemData(); + } - modelTreeItemData.setViewModelCount(count); - viewModelTree.setData("TREEITEMDATA", modelTreeItemData); + viewModelTree.setData("TREEITEMDATA", modelTreeItemData); - treeItemData.setOriginModelName(item.getText()); + treeItemData.setOriginModelName(item.getText()); - BindingData bindingData = new BindingData(); - bindingData.setModelType("STATIC"); - treeItemData.setModel(bindingData); - item.setData("TREEITEMDATA", treeItemData); - viewModelTree.select(item); - return item; - } else { + BindingData bindingData = new BindingData(); + bindingData.setModelType("STATIC"); + treeItemData.setModel(bindingData); + item.setData("TREEITEMDATA", treeItemData); + viewModelTree.select(item); + return item; + + } + + /** + * Adds a tree item in the view model panel. + * + * @return tree item + */ + public TreeItem addViewModelItem() { + + TreeItem[] selectedItems = viewModelTree.getSelection(); + + if (selectedItems.length != 0) { TreeItem item = new TreeItem(selectedItems[0], 0); - item.setText("viewModelItem"); + int idIndex = 0; + + while (!canSetTreeItemName(selectedItems[0], "viewModelItem" + idIndex)) { + idIndex++; + } + + TreeItem parentItem = selectedItems[0]; + if (parentItem != null) { + TreeItemData treeItemData = (TreeItemData) parentItem.getData("TREEITEMDATA"); + if (treeItemData != null) { + if (treeItemData.getObjectType() == null) { + treeItemData.setObjectType("JSONObject"); + parentItem.setData("TREEITEMDATA", treeItemData); + } else { + //do nothing + } + + } else { + treeItemData = new TreeItemData(); + treeItemData.setObjectType("JSONObject"); + parentItem.setData("TREEITEMDATA", treeItemData); + } + } + + item.setText("viewModelItem"+ idIndex); viewModelTree.showItem(item); return item; + } else { + return null; } } + + /** + * Returns TRUE if tree item name can be set. + * @param tree + * + * @param itemName + * a tree item name + * @return true if tree item name can be set + */ + private boolean canSetTreeItemName(Tree tree, String itemName) { + TreeItem[] childItems = tree.getItems(); + for (TreeItem childItem : childItems) { + TreeItemData treeItemData = (TreeItemData) childItem.getData("TREEITEMDATA"); + String originName = null; + String name; + if (treeItemData != null) { + originName = treeItemData.getOriginModelName(); + } + if (originName == null) { + name = childItem.getText(); + } else { + name = originName; + } + + if (name != null) { + if (name.equals(itemName)) { + return false; + } + } + } + return true; + } + + /** + * Returns TRUE if tree item name can be set. + * @param TreeItem + * + * @param itemName + * a tree item name + * @return true if tree item name can be set + */ + private boolean canSetTreeItemName(TreeItem treeItem, String itemName) { + TreeItem[] childItems = treeItem.getItems(); + for (TreeItem childItem : childItems) { + if (childItem.getText().equals(itemName)) { + return false; + } + } + return true; + } /** * Adds a tree item in the data source panel. @@ -484,16 +570,17 @@ public class DataBindingPage extends Page { TreeItemData treeItemData = new TreeItemData(); TreeItemData sourceTreeItemData = (TreeItemData) dataSourceTree.getData("TREEITEMDATA"); - int count = 0; - if (sourceTreeItemData != null) { - count = sourceTreeItemData.getViewModelCount(); + int idIndex = 0; + + while (!canSetTreeItemName(dataSourceTree, "source" + idIndex)) { + idIndex++; } - item.setText("source" + count++); + item.setText("source" + idIndex); if (sourceTreeItemData == null) { sourceTreeItemData = new TreeItemData(); } - sourceTreeItemData.setViewModelCount(count); + dataSourceTree.setData("TREEITEMDATA", sourceTreeItemData); BindingData bindingData = new BindingData(); @@ -534,6 +621,16 @@ public class DataBindingPage extends Page { private void removeSelectedTreeItem(Tree tree) { TreeItem[] treeItems = tree.getSelection(); for (TreeItem treeItem : treeItems) { + if (treeItem.getParentItem() != null) { + if (treeItem.getParentItem().getItems().length == 1) { + TreeItemData treeItemData = (TreeItemData)treeItem.getParentItem().getData("TREEITEMDATA"); + + if (treeItemData != null) { + treeItemData.setObjectType(null); + treeItem.getParentItem().setData("TREEITEMDATA", treeItemData); + } + } + } treeItem.dispose(); } } @@ -759,6 +856,7 @@ public class DataBindingPage extends Page { private void createActions() { editDataModelAction = new EditDataSourceAction("EDIT", dataBindingView); addViewModelAction = new AddViewModelAction("ADD", dataBindingView); + addViewModelItemAction = new AddViewModelItemAction("ADD ITEM", dataBindingView); setTargetAction = new SetTargetAction("SET TARGET", dataBindingView); getSourceAction = new GetSourceAction("GET SOURCE", dataBindingView); @@ -812,6 +910,7 @@ public class DataBindingPage extends Page { toolBarManager.add(setTargetAction); toolBarManager.add(getSourceAction); toolBarManager.add(removeViewModelAction); + toolBarManager.add(addViewModelItemAction); toolBarManager.add(addViewModelAction); toolBarManager.update(true); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/SetSourceDialog.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/SetSourceDialog.java index 3053621..0e5610e 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/SetSourceDialog.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/SetSourceDialog.java @@ -34,6 +34,7 @@ import java.net.URL; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; +import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.custom.StackLayout; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.custom.TreeEditor; @@ -538,8 +539,10 @@ public class SetSourceDialog extends Dialog { } }); - settingComposite = makeSettingComposite(treeGroup, addTreeItemButton); - treeComposite = makeTreeComposite(treeGroup, settingComposite, addTreeItemButton); + SashForm sashForm = makeSashForm(treeGroup, addTreeItemButton); + settingComposite = makeSettingComposite(sashForm, addTreeItemButton); + treeComposite = makeTreeComposite(sashForm, settingComposite, addTreeItemButton); + sashForm.setWeights(new int[] {2, 3}); return treeGroup; } @@ -879,21 +882,27 @@ public class SetSourceDialog extends Dialog { return dialogTree; } - private Composite makeTreeComposite(Group treeGroup, Composite settingComposite, + private SashForm makeSashForm(Group treeGroup, Button addButton) { + SashForm sashForm = new SashForm(treeGroup, SWT.HORIZONTAL); + + FormData data = new FormData(); + data.top = new FormAttachment(addButton, 0, SWT.TOP); + data.bottom = new FormAttachment(100, 0); + data.left = new FormAttachment(0, 0); + data.right = new FormAttachment(addButton, -5, SWT.LEFT); + sashForm.setLayoutData(data); + + return sashForm; + } + + private Composite makeTreeComposite(SashForm sashForm, Composite settingComposite, Button addButton) { - Composite treeComposite = new Composite(treeGroup, SWT.BORDER); + Composite treeComposite = new Composite(sashForm, SWT.BORDER); treeStackLayout = new StackLayout(); treeComposite.setLayout(treeStackLayout); - FormData data = new FormData(); - data.top = new FormAttachment(addButton, 0, SWT.TOP); - data.bottom = new FormAttachment(100, 0); - data.left = new FormAttachment(settingComposite, 5); - data.right = new FormAttachment(addButton, -5, SWT.LEFT); - treeComposite.setLayoutData(data); - makeTree(treeComposite); treeSourceStyledText = makeSourceStyledText(treeComposite); @@ -901,20 +910,13 @@ public class SetSourceDialog extends Dialog { return treeComposite; } - - private Composite makeSettingComposite(Group treeGroup, Button addButton) { - Composite settingComposite = new Composite(treeGroup, SWT.NONE); + + private Composite makeSettingComposite(SashForm sashForm, Button addButton) { + Composite settingComposite = new Composite(sashForm, SWT.NONE); setttingStackLayout = new StackLayout(); settingComposite.setLayout(setttingStackLayout); - FormData data = new FormData(); - data.top = new FormAttachment(addButton, 0, SWT.TOP); - data.bottom = new FormAttachment(100, 0); - data.left = new FormAttachment(0, 0); - data.right = new FormAttachment(0, 200); - settingComposite.setLayoutData(data); - staticComposite = makeStaticSettingComposite(settingComposite); remoteComposite = makeRemoteSettingComposite(settingComposite); runtimeComposite = makeRuntimeApiSettingComposite(settingComposite); @@ -1680,6 +1682,51 @@ public class SetSourceDialog extends Dialog { for (int i = 0; i < str.length; i++) { makeTreeItemsFromJson(jsonObject, (String) str[i], parentTreeItem, 0); } + + //makeJsonFromDialogTree(); } + + private void makeJsonFromDialogTree() { + JSONObject jsonObject = new JSONObject(); + TreeItem[] subItems = dialogTree.getItems(); + + if (subItems.length != 0) { + for (TreeItem treeItem : subItems) { + makeJsonFromTreeItems(jsonObject, null, treeItem); + + } + } + + String str = jsonObject.toJSONString(); + } + + private void makeJsonFromTreeItems(JSONObject jsonObject, JSONArray list, TreeItem treeItem) { + TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA"); + String objectType = treeItemData.getObjectType(); + if ((objectType != null) && (objectType.equals("JSONArray"))) { + if (list == null) { + list = new JSONArray(); + } + + TreeItem[] subItems = treeItem.getItems(); + if (subItems.length != 0) { + for (TreeItem subItem : subItems) { + makeJsonFromTreeItems(null, list, subItem); + } + jsonObject.put(treeItem.getText(), list); + } + + } else if ((objectType != null) && (objectType.equals("JSONObject"))) { + + } else { + if (list == null) { + jsonObject.put(treeItem.getText(), treeItemData.getObjectValue()); + } else { + list.add(treeItemData.getObjectValue()); + } + } + + } + } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/AddViewModelItemAction.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/AddViewModelItemAction.java new file mode 100644 index 0000000..b56416c --- /dev/null +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/actions/AddViewModelItemAction.java @@ -0,0 +1,76 @@ +/* + * UI Builder + * + * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +package org.tizen.webuibuilder.ui.views.databinding.actions; + +import org.eclipse.gef.ui.actions.SelectionAction; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.IPage; +import org.tizen.webuibuilder.ui.views.databinding.DataBindingPage; +import org.tizen.webuibuilder.ui.views.databinding.DataBindingView; + +public class AddViewModelItemAction extends SelectionAction { + + protected DataBindingView view; + + /** + * Constructor. + * + * @param text + * @param view + */ + public AddViewModelItemAction(String text, DataBindingView view) { + super(null); + setText(text); + this.view = view; + setImageDescriptor(PlatformUI.getWorkbench().getSharedImages() + .getImageDescriptor(ISharedImages.IMG_OBJ_ADD)); + } + + @Override + protected boolean calculateEnabled() { + if (view == null) { + return false; + } + + // if (!view.isActive()) { + // return false; + // } + + return true; + } + + @Override + public void run() { + IPage page = view.getCurrentPage(); + if (!(page instanceof DataBindingPage)) { + return; + } + DataBindingPage dataBindingPage = (DataBindingPage) page; + if (dataBindingPage.addViewModelItem() != null) { + dataBindingPage.updateModel(); + } + } + +} diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/TreeItemData.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/TreeItemData.java index eb48b65..97f1bf3 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/TreeItemData.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/TreeItemData.java @@ -27,7 +27,6 @@ public class TreeItemData { private BindingData model; private String originModelName; - private int viewModelCount; private String objectType; private String objectValue; @@ -69,24 +68,6 @@ public class TreeItemData { } /** - * Gets a view model number. - * - * @return view model number - */ - public int getViewModelCount() { - return viewModelCount; - } - - /** - * Sets a view model number. - * - * @param viewModelCount - */ - public void setViewModelCount(int viewModelCount) { - this.viewModelCount = viewModelCount; - } - - /** * Gets a object type. * * @return object type diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/HTMLBlockPropertyModifier.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/HTMLBlockPropertyModifier.java index 55c4ca4..532ad91 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/HTMLBlockPropertyModifier.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/HTMLBlockPropertyModifier.java @@ -42,7 +42,6 @@ import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.DocumentEvent; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentListener; -import org.eclipse.jst.pagedesigner.editors.HTMLEditor; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorPart; @@ -52,6 +51,7 @@ import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.wst.sse.ui.StructuredTextEditor; import org.tizen.webuibuilder.commands.SetPartPropertyCommand; import org.tizen.webuibuilder.model.PagePart; import org.tizen.webuibuilder.model.Part; @@ -119,29 +119,29 @@ public class HTMLBlockPropertyModifier implements IDocumentListener { ErrorDialog.open("Couldn't open HTML editor"); } - HTMLEditor editor = null; - if (htmlEditor instanceof HTMLEditor) { - editor = (HTMLEditor) htmlEditor; + StructuredTextEditor editor = null; + if (htmlEditor instanceof StructuredTextEditor) { + editor = (StructuredTextEditor) htmlEditor; } else { ErrorDialog.open("Current active editor isn't jst page designer"); return; } - editor.setDesignerMode(HTMLEditor.MODE_SOURCE); - editor.getTextEditor().setFocus(); + editor.setFocus(); - document = editor.getDocument(); + document = editor.getDocumentProvider().getDocument(editor.getEditorInput()); InitializeHtmlBlocks(document); InitializeMarker(document); setInitialCursorPosition(editor); document.addDocumentListener(this); } - private void setInitialCursorPosition(HTMLEditor editor) { + private void setInitialCursorPosition(StructuredTextEditor editor) { HTMLBlock currentBlock = getCurrentHtmlBlock(); if (currentBlock != null) { int startOffset = currentBlock.getStartOffset(); int endOffset = currentBlock.getEndOffset(); - editor.getTextEditor().selectAndReveal(startOffset, endOffset - startOffset); + //editor.getTextEditor().selectAndReveal(startOffset, endOffset - startOffset); + editor.selectAndReveal(startOffset, endOffset - startOffset); } } @@ -243,11 +243,6 @@ public class HTMLBlockPropertyModifier implements IDocumentListener { return pageFileData; } - // private DescriptorManager getDescriptorManager() { - // //return DescriptorManager.getInstance(model.getProject()); - // return model.getDescriptorManager(); - // } - private IEditorPart getActiveEditor() { IEditorPart editorPart = getActivePage().getActiveEditor(); return editorPart; -- 2.7.4