public void execute() {
if (canExecute()) {
if (type.equals(BindingDataSetEventType.DATASOURCE_REMOVED)) {
+ oldModels.clear();
for (BindingData model : appManager.getViewModels()) {
oldModels.add(model.clone());
}
appManager.removeDataSource(bindingData);
} else if (type.equals(BindingDataSetEventType.DATASOURCE_CHANGED)) {
- oldBindingData = appManager.getDataSource(bindingData.getItemName());
- if (oldBindingData != null) {
- appManager.removeDataSource(oldBindingData);
- }
- appManager.addDataSource(bindingData, null);
+ oldBindingData = appManager.getDataSource(bindingData.getSourceName()).clone();
+ oldModels.clear();
+ for (BindingData model : appManager.getViewModels()) {
+ oldModels.add(model.clone());
+ }
+ appManager.changeDataSource(bindingData, null);
} else if (type.equals(BindingDataSetEventType.DATASOURCE_RENAMED)) {
oldName = bindingData.getSourceName();
renameDataSource(value);
if (type.equals(BindingDataSetEventType.DATASOURCE_REMOVED)) {
appManager.addDataSource(bindingData, oldModels);
} else if (type.equals(BindingDataSetEventType.DATASOURCE_CHANGED)) {
- appManager.removeDataSource(bindingData);
- appManager.addDataSource(oldBindingData, null);
+ //appManager.removeDataSource(bindingData);
+ appManager.changeDataSource(oldBindingData, oldModels);
} else if (type.equals(BindingDataSetEventType.DATASOURCE_RENAMED)) {
renameDataSource(oldName);
} else {
}
}
+ private void renameViewModel(String newName) {
+ appManager.renameViewModel(type, bindingData, newName, itemPath);
+ }
+
+ private BindingData getViewModel(String name) {
+ return appManager.getViewModel(name);
+ }
+
+ private BindingObject getViewModelObject(BindingData bindingData,
+ List<String> itemPath) {
+
+ return appManager.getViewModelObject(bindingData, itemPath);
+ }
+
+ private void setViewModelItem(BindingDataSetEventType type) {
+ appManager.changeViewModel(type, bindingData, itemPath, childName, value);
+ }
+
+ private void setViewModelItem(BindingDataSetEventType type, BindingObject oldViewModelObject) {
+ appManager.changeViewModel(type, bindingData, itemPath, oldViewModelObject, value);
+ }
+
+ private void setDataSource(BindingDataSetEventType type, BindingData bindingData, BindingData oldBindingData) {
+ appManager.changeViewModel(type, bindingData, oldBindingData);
+ }
+
+ private void setViewModel(BindingDataSetEventType type) {
+ if (type.equals(BindingDataSetEventType.VIEWMODEL_REMOVED)) {
+ if (!(appManager.getViewModel(bindingData.getItemName())).equals(bindingData)) {
+ bindingData = appManager.getViewModel(bindingData.getItemName());
+ }
+ appManager.removeViewModel(bindingData);
+ } else {
+ appManager.addViewModel(bindingData);
+ }
+ }
+
@Override
public void execute() {
if (canExecute()) {
}
}
- private void renameViewModel(String newName) {
- appManager.renameViewModel(type, bindingData, newName, itemPath);
- }
-
- private BindingData getViewModel(String name) {
- return appManager.getViewModel(name);
- }
-
- private BindingObject getViewModelObject(BindingData bindingData,
- List<String> itemPath) {
-
- return appManager.getViewModelObject(bindingData, itemPath);
- }
- private void setViewModelItem(BindingDataSetEventType type) {
- appManager.changeViewModel(type, bindingData, itemPath, childName, value);
- }
-
- private void setViewModelItem(BindingDataSetEventType type, BindingObject oldViewModelObject) {
- appManager.changeViewModel(type, bindingData, itemPath, oldViewModelObject, value);
- }
-
- private void setDataSource(BindingDataSetEventType type, BindingData bindingData, BindingData oldBindingData) {
- appManager.changeViewModel(type, bindingData, oldBindingData);
- }
-
- private void setViewModel(BindingDataSetEventType type) {
- if (type.equals(BindingDataSetEventType.VIEWMODEL_REMOVED)) {
- appManager.removeViewModel(bindingData);
- } else {
- appManager.addViewModel(bindingData);
- }
- }
@Override
public void undo() {
public void removeDataSource(BindingData bindingData) {
bindingDataSet.removeDataSource(bindingData);
}
-
- public void renameDataSource(BindingDataSetEventType type, BindingData bindingData,
- String newName) {
+
+ public void changeDataSource(BindingData bindingData, List<BindingData> oldModels) {
+ bindingDataSet.changeDataSource(bindingData, oldModels);
+ }
+
+ public void renameDataSource(BindingDataSetEventType type,
+ BindingData bindingData, String newName) {
bindingDataSet.renameDataSource(type, bindingData, newName);
}
bindingData.setModelType(dataSource.getModelType());
bindingData.setUpdateOnStartup(dataSource.getUpdateOnStartup());
bindingData.addAllHandlerInfos(dataSource.getHandlerInfos());
- bindingData.addAllViewModelObjects(dataSource.getDataSourceObjects());
+ bindingData.appendAllViewModelObjects(dataSource.getDataSourceObjects());
Command command =
new SetViewModelCommand(BindingDataSetEventType.VIEWMODEL_SET_DATASOURCE,
new SetViewModelCommand(BindingDataSetEventType.VIEWMODEL_REMOVED,
pageDesigner.getAppManager(), bindingData, 0);
- Command removeCommand = removeBindingInfo(treeItem.getText(), null);
+ Command removeCommand = removeBindingInfo(bindingData.getModelName(), null);
if (removeCommand != null) {
command = command.chain(removeCommand);
}
}
return command;
}
+
+// private void removeDataSourceObjectInModel(BindingData bindingData) {
+// for (BindingData model : viewModels) {
+// if ((model.getSourceName() != null) && (model.getSourceName().equals(bindingData.getSourceName()))) {
+// model.removeAllDataSourceObject(bindingData.getDataSourceObjects());
+// model.setSourceName(null);
+// }
+// }
+// }
private Part getPartFromInfoTabel(TableItem tableItem, String[] modelPath, List<String> itemPath) {
Part part = null;
refresh();
}
+
+ @Override
+ public void dataSourceChanged(BindingDataSetEvent e) {
+ if (pageDesigner != null) {
+ List<BindingData> models = pageDesigner.getAppManager().getViewModels();
+ for (BindingData model : models) {
+ if ((model.getSourceName() != null)&&(model.getSourceName().equals(e.getBindingData().getSourceName()))) {
+ model.appendAllViewModelObjects(e.getBindingData().getDataSourceObjects());
+ }
+ }
+ }
+ refresh();
+ }
@Override
public void dataSourceMoved(BindingDataSetEvent e) {
clearViewModelObjects();
viewModelObjects.addAll( viewModels );
}
+
+ public void appendAllViewModelObjects( List<BindingObject> viewModels ) {
+ boolean checked = false;
+ for (BindingObject obj : viewModels) {
+ checked = false;
+ for (BindingObject model : viewModelObjects) {
+ if (model.getName().equals(obj.getName())) {
+ checked = true;
+ break;
+ }
+ }
+ if (!checked) {
+ viewModelObjects.add(obj);
+ }
+ }
+ }
public void addAllDataSourceObjects( List<BindingObject> dataSources ) {
clearDataSourceObjects();
fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_ADDED, bindingData, getNumberOfDataSources() - 1 , null));
}
+ /**
+ * Change a data source.
+ *
+ * @param bindingData
+ * a data source
+ */
+ public void changeDataSource(BindingData bindingData, List<BindingData> oldModels) {
+
+ List<BindingData> dataSources = getDataSources();
+ int index;
+ if (!dataSources.isEmpty()) {
+ for (index = 0; index < getNumberOfDataSources(); index++) {
+ BindingData dataSource = dataSources.get(index);
+ if (dataSource.getSourceName().equals(bindingData.getSourceName())) {
+ dataSource.setItemName(bindingData.getItemName());
+ dataSource.setModelName(bindingData.getModelName());
+ dataSource.setSourceName(bindingData.getSourceName());
+ dataSource.setModelType(bindingData.getModelType());
+ dataSource.setUpdateOnStartup(bindingData.getUpdateOnStartup());
+ dataSource.addAllHandlerInfos(bindingData.getHandlerInfos());
+ dataSource.addAllViewModelObjects(bindingData.getViewModelObjects());
+ dataSource.addAllDataSourceObjects(bindingData.getDataSourceObjects());
+ dataSource.setStaticFilePath(bindingData.getStaticFilePath());
+ dataSource.setJsonData(bindingData.getJsonData());
+ dataSource.setURL(bindingData.getURL());
+ dataSource.setMethod(bindingData.getMethod());
+ dataSource.setProxy(bindingData.getProxy());
+ dataSource.setQuery(bindingData.getQuery());
+ dataSource.setSourceType(bindingData.getSourceType());
+ dataSource.setTimeout(bindingData.getTimeout());
+ dataSource.addAllHeaderInfos(bindingData.getHeaders());
+ dataSource.setRuntimeApiName(bindingData.getRuntimeApiName());
+ dataSource.setRuntimeApiAddressBookID(bindingData.getRuntimeApiAddressBookID());
+ dataSource.setCallHistoryType(bindingData.getCallHistoryType());
+ dataSource.setCallHistoryDirection(bindingData.getCallHistoryDirection());
+ dataSource.setCallHistoryStartTimeOrder(bindingData.getCallHistoryStartTimeOrder());
+ dataSource.setCalendarName(bindingData.getCalendarName());
+ dataSource.setCalendarType(bindingData.getCalendarType());
+ dataSource.setCalendarID(bindingData.getCalendarID());
+ break;
+ }
+ }
+ }
+
+ if ((oldModels != null) && (!oldModels.isEmpty())) {
+ viewModels.clear();
+ viewModels.addAll(oldModels);
+ }
+
+ selectionPath.clear();
+ if (bindingData.getItemName() == null) {
+ selectionPath.add(bindingData.getSourceName());
+ } else {
+ selectionPath.add(bindingData.getItemName());
+ }
+
+ fireEvent(new BindingDataSetEvent(BindingDataSetEventType.DATASOURCE_CHANGED, bindingData, getNumberOfDataSources() - 1 , null));
+ }
+
// public BindingData getDataSource(String name) {
// List<BindingData> DataSources = getDataSources();
// for (BindingData DataSource : DataSources) {
private void removeDataSourceObjectInModel(BindingData bindingData) {
for (BindingData model : viewModels) {
if ((model.getSourceName() != null) && (model.getSourceName().equals(bindingData.getSourceName()))) {
- model.removeAllDataSourceObject(bindingData.getDataSourceObjects());
+ //model.removeAllDataSourceObject(bindingData.getDataSourceObjects());
model.setSourceName(null);
}
}
case DATASOURCE_MOVED:
listener.dataSourceMoved(bindingEvent);
break;
+ case DATASOURCE_CHANGED:
+ listener.dataSourceChanged(bindingEvent);
+ break;
case ALL_VIEWMODEL_RESETED:
listener.allViewModelReseted(bindingEvent);
break;
void dataSourceMoved(BindingDataSetEvent e);
+ void dataSourceChanged(BindingDataSetEvent e);
+
void allViewModelReseted(BindingDataSetEvent e);
void viewModelAdded(BindingDataSetEvent e);