public DesignerBoard Warp() { foreach (object obj in this.Children) { if (obj is DesignerItem) { //获取DesignerItem中直接包含的BoardControl DesignerControl clonedChild = (DesignerControl)((obj as DesignerItem).Content as IDesigner).GetDesignerModel(); this.Board.AddVisualControl(clonedChild); if (clonedChild is DesignerChart) { foreach (DesignerChartDataSerie dcd in (clonedChild as DesignerChart).Series) { IDynamicData idd = dcd as IDynamicData; if (!string.IsNullOrEmpty(idd.DataSourceKey)) { DesignerDataSource ds = DataSourceManager.GetDataSource(idd.DataSourceKey); this.Board.AddBackControl(ds); } } } //若该设计模型是动态数据类型,则将该数据接口添加至Board的后台元素集合中 if (clonedChild is IDynamicData) { IDynamicData idd = clonedChild as IDynamicData; if (!string.IsNullOrEmpty(idd.DataSourceKey)) { DesignerDataSource ds = DataSourceManager.GetDataSource(idd.DataSourceKey); this.Board.AddBackControl(ds); } } } } return(this.Board); }
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { this.SelectedItem = e.AddedItems[0] as DesignerStaticTextDataSource; } }
public void AddOrUpdate(string key, DesignerDataSource ds, int timeSpan, DispatcherTimer timer, object data) { AddOrUpdateDataSource(key, ds); AddOrUpdateTimeSpan(key, timeSpan); AddOrUpdateTimer(key, timer); AddOrUpdateData(key, data); }
private void DSList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { this.SelectedItem = e.AddedItems[0] as DesignerDataBaseDataSource; } }
private void AddButton_Click(object sender, RoutedEventArgs e) { DesignerDataSource ds = null; TabItemEx tabItem = MainTab.SelectedItem as TabItemEx; switch (tabItem.Header.ToString()) { case "数据库": ds = new DesignerDataBaseDataSource(); DataBaseDataSourceList.Add(ds as DesignerDataBaseDataSource); break; case "本地文件": throw new NotImplementedException(); break; case "网络资源": throw new NotImplementedException(); break; case "静态文本": ds = new DesignerStaticTextDataSource(); StaticTextDataSourceList.Add(ds as DesignerStaticTextDataSource); break; default: throw new NotImplementedException(); } this.SelectedItem = ds; }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { string path = Directory.GetCurrentDirectory() + "\\DataSources\\DataBase\\" + this.SelectedItem.Name + ".bds"; File.Delete(path); this.DataBaseDataSourceList.Remove(this.SelectedItem as DesignerDataBaseDataSource); this.SelectedItem = null; }
public void AddOrUpdateDataSource(string key, DesignerDataSource ds) { if (DataSourceList.Keys.Contains(key)) { DataSourceList[key] = ds; } else { DataSourceList.Add(key, ds); } }
void Select(string name) { if (string.IsNullOrEmpty(name)) { return; } foreach (DesignerDataBaseDataSource ds in DataBaseDataSourceList) { if (ds.Name == name) { this.SelectedItem = ds; break; } } }
/// <summary> /// 执行 /// </summary> /// <param name="key"></param> /// <returns></returns> private async static void ExcuteDataSource(string key) { DesignerDataSource ds = GetDataSource(key); try { switch (ds.DataSourceType) { case DesignerDataSourceType.DataBase: DataTable dbData = await ExcuteDataBaseDataSource(ds as DesignerDataBaseDataSource); List.AddOrUpdateData(key, dbData); break; case DesignerDataSourceType.LocalFile: object lfData = await ExcuteLocalFileDataSource(ds as DesignerLocalFileDataSource); List.AddOrUpdateData(key, lfData); break; case DesignerDataSourceType.RemoteURL: object ruData = await ExcuteRemoteURIDataSource(ds as DesignerRemoteURIDataSource); List.AddOrUpdateData(key, ruData); break; case DesignerDataSourceType.StaticText: object stData = ExcuteStaticTextDataSource(ds as DesignerStaticTextDataSource); List.AddOrUpdateData(key, stData); break; default: throw new Exception("未知的数据源执行方法"); } } catch (Exception e) { LogManager.WriteLog("执行数据源:" + ds.Name + "时发生异常,详细信息:" + e.Message); } }
/// <summary> /// 注册数据源 /// </summary> /// <param name="dataSourceKey"></param> /// <param name="type"></param> /// <param name="dataSource"></param> public static void Register(string dataSourceKey, DesignerDataSourceType type, DesignerDataSource dataSource) { if (string.IsNullOrEmpty(dataSourceKey)) { dataSourceKey = dataSource.Name; } List.AddOrUpdate(dataSourceKey, dataSource, dataSource.TimeSpan < 0 ? 0 : dataSource.TimeSpan, new DispatcherTimer(), null); }