DATABIND : modify the rename 48/20348/1
authorjaeyeol lee <jaeyeol148.lee@samsung.com>
Sun, 4 May 2014 10:45:21 +0000 (19:45 +0900)
committerjaeyeol lee <jaeyeol148.lee@samsung.com>
Sun, 4 May 2014 10:45:21 +0000 (19:45 +0900)
can not change the source name in the view model tree

Change-Id: Ic5065905237cd41b023e6d75757c748fd9be0f65
Signed-off-by: jaeyeol lee <jaeyeol148.lee@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/commands/SetDataSourceCommand.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/gef/commands/SetViewModelCommand.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/AppManagerForHTML.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/io/AppMetaWriter_ver_2.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/io/HtmlMetaReader_ver_1.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/io/HtmlMetaWriter_ver_1.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/dialog/SetSourcePage.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingData.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingDataSet.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/model/BindingDataSetEvent.java

index 60d965a..53809c1 100644 (file)
@@ -45,7 +45,7 @@ public class SetDataSourceCommand extends Command {
                if (type.equals(BindingDataSetEventType.DATASOURCE_REMOVED)) {
                        appManager.removeDataSource(bindingData);
                } else if (type.equals(BindingDataSetEventType.DATASOURCE_CHANGED)) {
-                       oldBindingData = appManager.getDataSource(bindingData.getSourceName());
+                       oldBindingData = appManager.getDataSource(bindingData.getItemName());
                        if (oldBindingData != null) {
                                appManager.removeDataSource(oldBindingData);
                        }
index 425cb36..e1970e1 100644 (file)
@@ -71,17 +71,15 @@ public class SetViewModelCommand extends Command {
                        oldViewModelObject = getViewModelObject(bindingData, itemPath);
                        setViewModelItem(type);
                } else if (type.equals(BindingDataSetEventType.VIEWMODEL_SET_DATASOURCE)) {
-                       BindingData data = getViewModel(bindingData.getName());
+                       BindingData data = getViewModel(bindingData.getItemName());
                        if (data != null) {
                                setDataSource(type, data, bindingData);
                        } else {
                                setDataSource(type, bindingData, null);
                        }
                } else if (type.equals(BindingDataSetEventType.VIEWMODEL_RENAMED)) {
-                       oldName = bindingData.getName();
+                       oldName = bindingData.getModelName();
                        renameViewModel(value);
-                       itemPath.remove(0);
-                       itemPath.add(0, value);
                } else if (type.equals(BindingDataSetEventType.VIEWMODEL_ITEM_RENAMED)) {
                        oldName = getViewModelObject(bindingData, itemPath).getName();
                        renameViewModel(value);
@@ -141,8 +139,6 @@ public class SetViewModelCommand extends Command {
                setDataSource(BindingDataSetEventType.VIEWMODEL_SET_DATASOURCE, bindingData, oldBindingData);
        } else if (type.equals(BindingDataSetEventType.VIEWMODEL_RENAMED)) {
                renameViewModel(oldName);
-               itemPath.remove(0);
-               itemPath.add(0, oldName);
        } else if (type.equals(BindingDataSetEventType.VIEWMODEL_ITEM_RENAMED)) {
                renameViewModel(oldName);
                itemPath.remove(0);
index bde48a5..baf67a7 100644 (file)
@@ -266,7 +266,7 @@ public class AppManagerForHTML extends AppManager {
                     String value;
                     for (int j = 0; j < values.size(); j++) {
                         value = values.get(j);
-                        if ((value != null) && (value.equals(viewModel.getName()))) {
+                        if ((value != null) && (value.equals(viewModel.getModelName()))) {
                             viewModel.setSourceName(value);
                         }
                     }
index c14e8f0..30cade5 100644 (file)
@@ -146,7 +146,7 @@ public class AppMetaWriter_ver_2 {
         }
 
         for (BindingData dataModel : dataModels) {
-            String modelName = dataModel.getName();
+            String modelName = dataModel.getModelName();
             handlerModelInfo.add(modelName);
         }
 
@@ -230,7 +230,7 @@ public class AppMetaWriter_ver_2 {
 
         Element element = doc.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
 
-        element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
+        element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getModelName());
         element.setAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
 
         List<BindingObject> observableObjects = dataModel.getViewModelObjects();
index 8d6f4f1..2e184f7 100644 (file)
@@ -215,6 +215,7 @@ public class HtmlMetaReader_ver_1 {
                 String addressBookId = element2.getAttribute(BuilderConstants.ATTRIBUTE_ADDRESS_BOOK_ID);
 
                 BindingData dataModel = new BindingData();
+                dataModel.setItemName(sourceName);
                 dataModel.setSourceName(sourceName);
                 dataModel.setModelType(modelType);
                 dataModel.setRuntimeApiName(method);
@@ -227,6 +228,7 @@ public class HtmlMetaReader_ver_1 {
                 String calendarId = element2.getAttribute(BuilderConstants.ATTRIBUTE_CALENDAR_ID);
 
                 BindingData dataModel = new BindingData();
+                dataModel.setItemName(sourceName);
                 dataModel.setSourceName(sourceName);
                 dataModel.setModelType(modelType);
                 dataModel.setCalendarName(method);
@@ -240,6 +242,7 @@ public class HtmlMetaReader_ver_1 {
                 String startTimeOrder = element2.getAttribute(BuilderConstants.ATTRIBUTE_START_TIME_ORDER);
 
                 BindingData dataModel = new BindingData();
+                dataModel.setItemName(sourceName);
                 dataModel.setSourceName(sourceName);
                 dataModel.setModelType(modelType);
                 dataModel.setCallHistoryType(type);
@@ -249,6 +252,7 @@ public class HtmlMetaReader_ver_1 {
                 fileData.addDataSource(dataModel);
             } else {
                 BindingData dataModel = new BindingData();
+                dataModel.setItemName(sourceName);
                 dataModel.setSourceName(sourceName);
                 dataModel.setModelType(BuilderConstants.DATABINDING_TYPE_STATIC);
                 fileData.addDataSource(dataModel);
index 6a14a9c..628b123 100644 (file)
@@ -298,7 +298,7 @@ public class HtmlMetaWriter_ver_1 {
         }
 
         for (BindingData dataModel : dataModels) {
-            String modelName = dataModel.getName();
+            String modelName = dataModel.getModelName();
             handlerModelInfo.add(modelName);
         }
 
@@ -421,7 +421,7 @@ public class HtmlMetaWriter_ver_1 {
 
         Element element = doc.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
 
-        element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
+        element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getModelName());
         if ((dataModel.getSourceName() != null) && (!dataModel.getSourceName().isEmpty())) {
                element.setAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
         }
index cb12cef..52be132 100644 (file)
@@ -164,53 +164,6 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         }
     }
 
-    /**
-     * Update the model and save.
-     */
-    public void updateModel() {
-        if (pageDesigner != null) {
-            pageDesigner.getAppManager().clearDataSources();
-            pageDesigner.getAppManager().clearViewModel();
-
-            updateDataSourceToAppManager(dataSourceTree);
-            updateViewModelToAppManager(viewModelTree);
-
-            // FIXME
-            // pageDesigner.getAppManager().save();
-        }
-    }
-
-    private void updateDataSourceToAppManager(Tree tree) {
-        TreeItem[] dataSourceTreeItems = tree.getItems();
-
-        for (TreeItem dataSourceTreeItem : dataSourceTreeItems) {
-            if (dataSourceTreeItem.getParentItem() == null) {
-
-                TreeItemData treeItemData =
-                        (TreeItemData) dataSourceTreeItem.getData("TREEITEMDATA");
-                if (treeItemData == null) {
-                    treeItemData = new TreeItemData();
-                    dataSourceTreeItem.setData("TREEITEMDATA", treeItemData);
-                }
-                BindingData dataModel = treeItemData.getModel();
-                if (dataModel == null) {
-                    dataModel = makeDataModel(dataSourceTreeItem);
-                } else {
-                    dataModel.clearDataSourceObjects();
-                }
-                dataModel.setSourceName(dataSourceTreeItem.getText());
-
-                makeObservableObjectsFromDataSourceTreeItem(dataModel, dataSourceTreeItem);
-
-                // pageDesigner.getAppManager().addDataSource(dataModel);
-                Command command =
-                        new SetDataSourceCommand(BindingDataSetEventType.DATASOURCE_ADDED,
-                                                 pageDesigner.getAppManager(), dataModel, 0);
-                getCommandStackFromPageDesigner().execute(command);
-            }
-        }
-
-    }
 
     /**
      * Refresh the databinding view.
@@ -397,15 +350,17 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                 viewModel = viewModels.get(i);
                 TreeItem treeItem = new TreeItem(viewModelTree, 0);
                 TreeItemData treeItemData = new TreeItemData();
-
+                
                 if ((viewModel.getSourceName() == null) || (viewModel.getSourceName().isEmpty())) {
-                    treeItem.setText(viewModel.getName());
+                    viewModel.setItemName(viewModel.getModelName());
                 } else {
-                    treeItem.setText(viewModel.getName() + " (" + viewModel.getSourceName() + ")");
+                    viewModel.setItemName(viewModel.getModelName() + " (" + viewModel.getSourceName() + ")");
                 }
+                    
+                treeItem.setText(viewModel.getItemName());
 
                 treeItemData.setModel(viewModel);
-                treeItemData.setOriginModelName(viewModel.getName());
+                treeItemData.setOriginModelName(viewModel.getModelName());
                 treeItem.setData("TREEITEMDATA", treeItemData);
 
                 if (!viewModel.getDataSourceObjects().isEmpty()) {
@@ -437,7 +392,11 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                 TreeItem treeItem = new TreeItem(dataSourceTree, 0);
                 TreeItemData treeItemData = new TreeItemData();
 
-                treeItem.setText(dataSource.getSourceName());
+                if ((dataSource.getItemName() == null) || (!dataSource.getItemName().equals(dataSource.getSourceName()))) {
+                    dataSource.setItemName(dataSource.getSourceName());
+                } 
+                treeItem.setText(dataSource.getItemName());
+                
                 treeItemData.setModel(dataSource);
                 treeItem.setData("TREEITEMDATA", treeItemData);
 
@@ -479,97 +438,6 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         }
     }
 
-    private void updateViewModelToAppManager(Tree tree) {
-
-        TreeItem[] treeItems = tree.getItems();
-        for (TreeItem treeItem : treeItems) {
-            if (treeItem.getParentItem() == null) {
-
-                TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA");
-                if (treeItemData == null) {
-                    treeItemData = new TreeItemData();
-                    treeItem.setData("TREEITEMDATA", treeItemData);
-                }
-                BindingData dataModel = treeItemData.getModel();
-                if (dataModel == null) {
-                    dataModel = makeDataModel(treeItem);
-                } else {
-                    dataModel.clearViewModelObjects();
-                    dataModel.setModelName(treeItemData.getOriginModelName());
-                }
-
-                makeObservableObjectsFromViewModelTreeItem(dataModel, treeItem);
-
-                pageDesigner.getAppManager().addViewModel(dataModel);
-            }
-        }
-
-    }
-
-    // Using to make a Data Source
-    private void makeObservableObjectsFromViewModelTreeItem(BindingData dataModel, TreeItem treeItem) {
-        makeObservableObjectsFromTreeItem(dataModel, treeItem, true);
-    }
-
-    private void makeObservableObjectsFromDataSourceTreeItem(BindingData dataModel,
-                                                             TreeItem treeItem) {
-        makeObservableObjectsFromTreeItem(dataModel, treeItem, false);
-    }
-
-    private void makeObservableObjectsFromTreeItem(BindingData dataModel, TreeItem treeItem,
-                                                   boolean isViewModel) {
-        TreeItem[] subTreeItems = treeItem.getItems();
-        for (TreeItem item : subTreeItems) {
-            TreeItemData treeItemData = (TreeItemData) item.getData("TREEITEMDATA");
-            String type = null;
-            if (treeItemData != null) {
-                type = treeItemData.getObjectType();
-            }
-            BindingObject observableObject = makeObservableObject(item, type);
-            if (isViewModel) {
-                dataModel.addViewModelObjects(observableObject);
-            } else {
-                dataModel.addDataSourceObjects(observableObject);
-            }
-
-            TreeItem[] subSubTreeItems = item.getItems();
-            for (TreeItem subItem : subSubTreeItems) {
-                makeObservableObjectsFromSubTreeItem(observableObject, subItem);
-            }
-        }
-    }
-
-    private void makeObservableObjectsFromSubTreeItem(BindingObject parent, TreeItem treeItem) {
-        TreeItem[] subTreeItems = treeItem.getItems();
-        TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA");
-        String type = null;
-        if (treeItemData != null) {
-            type = treeItemData.getObjectType();
-        }
-        BindingObject observableObject = makeObservableObject(treeItem, type);
-        parent.add(observableObject);
-
-        for (TreeItem item : subTreeItems) {
-            makeObservableObjectsFromSubTreeItem(observableObject, item);
-        }
-    }
-
-    private BindingObject makeObservableObject(TreeItem treeItem, String type) {
-        Object treeItemObj = treeItem.getData(); // FIXME
-        String treeItemValue;
-        if (treeItemObj == null) {
-            treeItemValue = "";
-        } else {
-            treeItemValue = treeItem.getData().toString();
-        }
-        return new BindingObject(treeItem.getText(), treeItemValue, type);
-    }
-
-    private BindingData makeDataModel(TreeItem treeItem) {
-        TreeItemData treeItemData = (TreeItemData) treeItem.getData("TREEITEMDATA");
-        return new BindingData(treeItemData.getOriginModelName());
-    }
-
     /**
      * Adds a tree item in the view model panel.
      */
@@ -582,6 +450,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         BindingData bindingData = new BindingData();
         bindingData.setModelType(BuilderConstants.DATABINDING_TYPE_STATIC);
         bindingData.setModelName("model" + idIndex);
+        bindingData.setItemName(bindingData.getModelName());
 
         Command command =
                 new SetViewModelCommand(BindingDataSetEventType.VIEWMODEL_ADDED,
@@ -694,6 +563,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         BindingData bindingData = new BindingData();
         bindingData.setModelType(BuilderConstants.DATABINDING_TYPE_STATIC);
         bindingData.setSourceName("source" + idIndex);
+        bindingData.setItemName(bindingData.getSourceName());
 
         Command command =
                 new SetDataSourceCommand(BindingDataSetEventType.DATASOURCE_ADDED,
@@ -1109,7 +979,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
                 if (event.keyCode == SWT.F2 && dataSourceTree.getSelectionCount() == 1) {
                     renameDataSource(null);
                 } else if (event.keyCode == SWT.DEL) {
-                    removeViewModel();
+                    removeDataSource();
                 }
             }
         });
@@ -1120,14 +990,6 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
             }
         });
 
-        dataSourceTree.addKeyListener(new KeyAdapter() {
-            public void keyPressed(KeyEvent event) {
-                if (event.keyCode == SWT.DEL) {
-                    removeDataSource();
-                }
-            }
-        });
-
         // DataBindingDnDManager.addDragAndDropListenerToTree(dataSourceTree);
         DataBindingDnDManager.addDragListenerToDataSourceTree(dataSourceTree);
         makeDataSourceContextMenu();
@@ -1333,7 +1195,19 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
 
         // Create a text field to do the editing
         final Text text = new Text(tree, SWT.NONE);
-        text.setText(item.getText());
+        
+        BindingData data = pageDesigner.getAppManager().getViewModel(item.getText());
+        if (data != null) {
+            text.setText(data.getModelName());
+        } else {
+            data = pageDesigner.getAppManager().getDataSource(item.getText());
+            if (data != null) {
+                text.setText(data.getSourceName());
+            } else {
+                text.setText(item.getText());
+            }
+        }
+        
         text.selectAll();
         text.setFocus();
 
@@ -1341,11 +1215,11 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         // and end the editing session
         text.addFocusListener(new FocusAdapter() {
             public void focusLost(FocusEvent event) {
-                if (tree.equals(getDataSourceTree())) {
-                    renameDataSource(item, text.getText());
-                } else {
-                    renameViewModel(item, text.getText());
-                }
+//                if (tree.equals(getDataSourceTree())) {
+//                    renameDataSource(item, text.getText());
+//                } else {
+//                    renameViewModel(item, text.getText());
+//                }
                 text.dispose();
             }
         });
@@ -1580,6 +1454,13 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
 
     @Override
     public void dataSourceRenamed(BindingDataSetEvent e) {
+        List<BindingData> models = pageDesigner.getAppManager().getViewModels();
+        for (BindingData model : models) {
+            if (model.getSourceName().equals(e.getOldValue())) {
+                model.setSourceName(e.getValue());
+            }
+        }
+        
         refresh();
     }
 
index 096ba8b..c7f58d0 100644 (file)
@@ -208,6 +208,7 @@ public class SetSourcePage extends Dialog {
                                dataModel.setModelType( dataTypeCombo.getText() );
                                dataModel.setUpdateOnStartup( updateOnStartUp.getSelection() );
                                dataModel.setSourceName( dataSourceTreeItem.getText() );
+                               dataModel.setItemName( dataModel.getSourceName() );
 
                                TreeItemData treeItemData = (TreeItemData) dataSourceTreeItem.getData( "TREEITEMDATA" );
                                if (treeItemData == null) {
index 63e59e1..619deb2 100644 (file)
@@ -32,6 +32,7 @@ import java.util.Set;
 
 public class BindingData {
 
+    private String itemName;
     private String modelName;
     private String sourceName;
     private String modelType;
@@ -78,6 +79,7 @@ public class BindingData {
      */
     public BindingData( String sourceName, String modelType, String url, String type, String proxy,
             String query, String sourceType, String timeout, String jsonData, Map<String, String> headers ) {
+        this.itemName = sourceName;
         this.sourceName = sourceName;
         this.modelType = modelType;
         this.url = url;
@@ -98,6 +100,7 @@ public class BindingData {
      * @param runtimeApiName
      */
     public BindingData( String sourceName, String modelType, String runtimeApiName ) {
+        this.itemName = sourceName;
         this.sourceName = sourceName;
         this.modelType = modelType;
         this.runtimeApiName = runtimeApiName;
@@ -112,6 +115,7 @@ public class BindingData {
      * @param filePath
      */
     public BindingData( String sourceName, String modelType, String jsonData, String filePath ) {
+        this.itemName = sourceName;
         this.sourceName = sourceName;
         this.modelType = modelType;
         this.jsonData = jsonData;
@@ -124,6 +128,7 @@ public class BindingData {
      * @param modelName
      */
     public BindingData( String name ) {
+        this.itemName = name;
         this.modelName = name;
     }
 
@@ -134,6 +139,7 @@ public class BindingData {
      * @param dataSourceName
      */
     public BindingData( String name, String dataSourceName ) {
+        this.itemName = name;
         this.modelName = name;
         this.sourceName = dataSourceName;
     }
@@ -159,22 +165,31 @@ public class BindingData {
     public BindingData clone() {
 
         BindingData newBindingData = new BindingData();
-        newBindingData.setModelName( modelName );
-        newBindingData.setSourceName( sourceName );
-        newBindingData.setModelType( modelType );
-        newBindingData.setUpdateOnStartup( updateOnStartup );
-        newBindingData.addAllHandlerInfos( handlerInfos );
-        newBindingData.addAllViewModelObjects( viewModelObjects );
-        newBindingData.addAllDataSourceObjects( dataSourceObjects );
-        newBindingData.setStaticFilePath( staticFilePath );
-        newBindingData.setJsonData( jsonData );
-        newBindingData.setURL( url );
-        newBindingData.setMethod( method );
-        newBindingData.setProxy( proxy );
-        newBindingData.setQuery( query );
-        newBindingData.setSourceType( sourceType );
-        newBindingData.setTimeout( timeout );
-        newBindingData.setRuntimeApiName( runtimeApiName );
+        newBindingData.setItemName(itemName);
+        newBindingData.setModelName(modelName);
+        newBindingData.setSourceName(sourceName);
+        newBindingData.setModelType(modelType);
+        newBindingData.setUpdateOnStartup(updateOnStartup);
+        newBindingData.addAllHandlerInfos(handlerInfos);
+        newBindingData.addAllViewModelObjects(viewModelObjects);
+        newBindingData.addAllDataSourceObjects(dataSourceObjects);
+        newBindingData.setStaticFilePath(staticFilePath);
+        newBindingData.setJsonData(jsonData);
+        newBindingData.setURL(url);
+        newBindingData.setMethod(method);
+        newBindingData.setProxy(proxy);
+        newBindingData.setQuery(query);
+        newBindingData.setSourceType(sourceType);
+        newBindingData.setTimeout(timeout);
+        newBindingData.addAllHeaderInfos(headers);
+        newBindingData.setRuntimeApiName(runtimeApiName);
+        newBindingData.setRuntimeApiAddressBookID(runtimeApiAddressBookID);
+        newBindingData.setCallHistoryType(callHistoryType);
+        newBindingData.setCallHistoryDirection(callHistoryDirection);
+        newBindingData.setCallHistoryStartTimeOrder(callHistoryStartTimeOrder);
+        newBindingData.setCalendarName(calendarName);
+        newBindingData.setCalendarType(calendarType);
+        newBindingData.setCalendarID(calendarID);
 
         return newBindingData;
     }
@@ -193,10 +208,18 @@ public class BindingData {
      * 
      * @return name
      */
-    public String getName() {
+    public String getModelName() {
         return modelName;
     }
 
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
     /**
      * Sets a source name.
      * 
@@ -497,7 +520,7 @@ public class BindingData {
 
     public void addAllHandlerInfos( Map<String, List<String>> handlerInfos ) {
         clearHandlerInfos();
-        handlerInfos.putAll( handlerInfos );
+        this.handlerInfos.putAll( handlerInfos );
     }
 
     /**
@@ -692,5 +715,21 @@ public class BindingData {
     public void setHeaders( Map<String, String> headers ) {
         this.headers = headers;
     }
+    
+    /**
+     * Clear header informations.
+     */
+    public void clearHeaderInfos() {
+        if (this.headers != null) {
+            this.headers.clear();
+        }
+    }
+    
+    public void addAllHeaderInfos( Map<String, String> headers ) {
+        clearHeaderInfos();
+        if (this.headers != null) {
+            this.headers.putAll( headers );
+        }
+    }
 
 }
\ No newline at end of file
index 1dc01cd..a7a2ad2 100644 (file)
@@ -50,19 +50,34 @@ public class BindingDataSet {
     public void addViewModel(BindingData bindingData) {
         viewModels.add(bindingData);
         selectionPath.clear();
-        selectionPath.add(bindingData.getName());
+        if (bindingData.getItemName() == null) {
+            selectionPath.add(bindingData.getModelName());
+        } else {
+            selectionPath.add(bindingData.getItemName());
+        }
         fireEvent(new BindingDataSetEvent(BindingDataSetEventType.VIEWMODEL_ADDED, bindingData, getNumberOfViewModels() - 1 , null));
     }
     
+//    public BindingData getViewModel(String name) {
+//     List<BindingData> viewModels = getViewModels();
+//     for (BindingData viewModel : viewModels) {
+//             if (viewModel.getModelName().equals(name)) {
+//                     return viewModel;
+//             }
+//     }
+//     
+//     return null;
+//    }
+    
     public BindingData getViewModel(String name) {
-       List<BindingData> viewModels = getViewModels();
-       for (BindingData viewModel : viewModels) {
-               if (viewModel.getName().equals(name)) {
-                       return viewModel;
-               }
-       }
-       
-       return null;
+        List<BindingData> viewModels = getViewModels();
+        for (BindingData viewModel : viewModels) {
+            if (viewModel.getItemName().equals(name)) {
+                return viewModel;
+            }
+        }
+        
+        return null;
     }
     
     public void changeViewModel(BindingDataSetEventType type, BindingData bindingData, List<String> itemPath, String childName, String value) {
@@ -218,12 +233,17 @@ public class BindingDataSet {
        if (!viewModels.isEmpty()) {
                for (index = 0; index < getNumberOfViewModels(); index++) {
                        BindingData viewModel = viewModels.get(index);
-                       if (viewModel.getName().equals(bindingData.getName())) {
+                       if (viewModel.getModelName().equals(bindingData.getModelName())) {
                                break;
                        }
                }
                selectionPath.clear();
-               selectionPath.add(bindingData.getName());
+               if (bindingData.getItemName() == null) {
+                   selectionPath.add(bindingData.getModelName());
+               } else {
+                   selectionPath.add(bindingData.getItemName());
+               }
+               
                viewModels.remove(index);
                fireEvent(new BindingDataSetEvent(BindingDataSetEventType.VIEWMODEL_REMOVED, bindingData, index, null));
        }
@@ -339,19 +359,35 @@ public class BindingDataSet {
     public void addDataSource(BindingData bindingData) {
         dataSources.add(bindingData);
         selectionPath.clear();
-        selectionPath.add(bindingData.getSourceName());
+        if (bindingData.getItemName() == null) {
+            selectionPath.add(bindingData.getSourceName());
+        } else {
+            selectionPath.add(bindingData.getItemName());
+        }
+        
         fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_ADDED, bindingData, getNumberOfDataSources() - 1 , null));
     }
     
+//    public BindingData getDataSource(String name) {
+//     List<BindingData> DataSources = getDataSources();
+//     for (BindingData DataSource : DataSources) {
+//             if (DataSource.getSourceName().equals(name)) {
+//                     return DataSource;
+//             }
+//     }
+//     
+//     return null;
+//    }
+    
     public BindingData getDataSource(String name) {
-       List<BindingData> DataSources = getDataSources();
-       for (BindingData DataSource : DataSources) {
-               if (DataSource.getSourceName().equals(name)) {
-                       return DataSource;
-               }
-       }
-       
-       return null;
+        List<BindingData> DataSources = getDataSources();
+        for (BindingData DataSource : DataSources) {
+            if (DataSource.getItemName().equals(name)) {
+                return DataSource;
+            }
+        }
+        
+        return null;
     }
     
     public void removeDataSource(BindingData bindingData) {
@@ -366,7 +402,12 @@ public class BindingDataSet {
                        }
                }
                selectionPath.clear();
-               selectionPath.add(bindingData.getName());
+               if (bindingData.getItemName() == null) {
+                selectionPath.add(bindingData.getSourceName());
+            } else {
+                selectionPath.add(bindingData.getItemName());
+            }
+               
                dataSources.remove(index);
                fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_REMOVED, bindingData, index, null));
        }
@@ -375,8 +416,9 @@ public class BindingDataSet {
     public void renameDataSource(BindingDataSetEventType type,
                        BindingData bindingData, String newName) {
                if (type.equals(BindingDataSetEventType.DATASOURCE_RENAMED)) {
+                   String oldName = bindingData.getSourceName();
                        bindingData.setSourceName(newName);
-                       fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_RENAMED, bindingData, null, getNumberOfDataSources() - 1 , null));
+                       fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_RENAMED, bindingData, newName, oldName));
                }               
        }
 
index 01d0507..f3e1410 100644 (file)
@@ -14,6 +14,7 @@ public class BindingDataSetEvent {
     private int index;
     private String value;
     private BindingData oldBindingData;
+    private String oldValue;
 
     public BindingDataSetEvent(BindingDataSetEventType type, BindingData page, int index, BindingData oldPage) {
         this.type = type;
@@ -29,6 +30,13 @@ public class BindingDataSetEvent {
         this.index = index;
         this.oldBindingData = oldPage;
        }
+    
+    public BindingDataSetEvent(BindingDataSetEventType type, BindingData page, String value, String oldValue) {
+        this.type = type;
+        this.bindingData = page;
+        this.value = value;
+        this.oldValue = oldValue;
+    }
 
        public BindingDataSetEventType getType() {
         return type;
@@ -51,6 +59,10 @@ public class BindingDataSetEvent {
     }
 
     public String getName() {
-        return bindingData.getName();
+        return bindingData.getModelName();
+    }
+
+    public String getOldValue() {
+        return oldValue;
     }
 }