/// <summary> /// 生成一个xml文件 /// </summary> /// <param name="e"></param> void BuilderXml(PageDirectorySub e) { _XmlTemplate.BaseInfo.PageName = e.PageName; _XmlTemplate.BaseInfo.PageGUID = e.PageGuid; this.Xml_Template = _XmlTemplate.ParseXml().ToString(); }
/// <summary> /// 判断页面是否打开 /// </summary> /// <param name="e"></param> /// <returns></returns> bool JudgePageIsOpen(OpenPageInfoEventArgs e) { bool isOpen = false; foreach (var v in this.tcCollection.Items) { TabItem ti = v as TabItem; if (null == ti) { continue; } PageDirectorySub pds = ti.Tag as PageDirectorySub; if (null == pds) { continue; } if (pds.ID.Equals(e.PageDirectorySub.ID)) { ti.IsSelected = true; isOpen = true; break; } } return(isOpen); }
/// <summary> /// 修改操作 /// </summary> /// <param name="name"></param> void ModifyOperator(string name) { TreeViewItem item = this.tvPageManager.SelectedItem as TreeViewItem; var cmd = new CtrlPlatformCommandInfo(); cmd.CommandName = ConstantCollection.CommandName_MixedCommand; cmd.ExecSql = new List <CtrlExecSQLCmd>(); Dictionary <String, Object> dict = new Dictionary <string, Object>(); if (item.Tag is PageDirectory) { PageDirectory pd = item.Tag as PageDirectory; pd.NodeName = name; //-->修改当前选中目录 string sql = string.Format("update PageDirectory set NodeName = '{0}' where ID = {1}", pd.NodeName, pd.ID); var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.ExecuteNonQuery, sql, "PageDirectory", this.Name, "ModifyOperator"); cmd.ExecSql.Add(exec); cmd.TempValue = Wrapper.SetXmlValue("PageDirectory", "ModifyOperator", new KeyValuePair <String, Object>[] { new KeyValuePair <String, Object>("IsDirectory", true), new KeyValuePair <String, Object>("ControlName", item.Name), new KeyValuePair <String, Object>("ID", pd.ID), new KeyValuePair <String, Object>("NewValue", name) }); } else if (item.Tag is PageDirectorySub) { //-->修改当前选中的页面 PageDirectorySub pds = item.Tag as PageDirectorySub; pds.PageName = name; string sql = string.Format("update PageDirectorySub set PageName = '{0}' where id = {1}", pds.PageName, pds.ID); var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.ExecuteNonQuery, sql, "PageDirectorySub", this.Name, "ModifyOperator"); cmd.ExecSql.Add(exec); dict.Add("IsDirectory", false); dict.Add("ID", pds.ID); cmd.TempValue = Wrapper.SetXmlValue("PageDirectorySub", "ModifyOperator", new KeyValuePair <String, Object>[] { new KeyValuePair <String, Object>("IsDirectory", false), new KeyValuePair <String, Object>("ControlName", item.Name), new KeyValuePair <String, Object>("ID", pds.ID), new KeyValuePair <String, Object>("NewValue", name) }); } this.SendToService(cmd, this); }
/// <summary> /// 删除操作 /// </summary> /// <param name="name"></param> void DeleteOperator(string name) { TreeViewItem item = this.tvPageManager.SelectedItem as TreeViewItem; var cmd = new CtrlPlatformCommandInfo(); cmd.CommandName = ConstantCollection.CommandName_MixedCommand; cmd.ExecSql = new List <CtrlExecSQLCmd>(); if (item.Tag is PageDirectory) { //-->判断是否还有子项 //-->有子项不让其删除 if (0 < item.Items.Count) { Wrapper.ShowDialog("此目录下还有子项,请先删除子项"); return; } PageDirectory pd = item.Tag as PageDirectory; //-->删除当前选中目录 string sql = string.Format("delete from PageDirectory where ID = {0}", pd.ID); //cmd.SqlSentence.Add(sql); var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.ExecuteNonQuery, sql, "PageDirectory", this.Name, "DeleteOperator"); cmd.ExecSql.Add(exec); cmd.TempValue = Wrapper.SetXmlValue("PageDirectory", "DeleteOperator", new KeyValuePair <String, Object>[] { new KeyValuePair <String, Object>("ControlName", item.Name) }); } else if (item.Tag is PageDirectorySub) { //-->删除当前选中的页面 PageDirectorySub pds = item.Tag as PageDirectorySub; string sql = string.Format("delete from PageDirectorySub where ID= '{0}'", pds.ID); var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.ExecuteNonQuery, sql, "PageDirectorySub", this.Name, "DeleteOperator"); cmd.ExecSql.Add(exec); cmd.TempValue = Wrapper.SetXmlValue("PageDirectorySub", "DeleteOperator", new KeyValuePair <String, Object>[] { new KeyValuePair <String, Object>("ControlName", item.Name) }); } this.SendToService(cmd, this); }
/// <summary> /// /// </summary> /// <param name="cmd"></param> public void ProcessAddPage(CtrlPlatformCommandInfo cmd) { //-->判断是否有成功 if (!cmd.ExecuteNonQueryResult.IsNullOrEmpty()) { Wrapper.ShowDialog("失败:" + cmd.ErrorMessage); return; } string controlName = cmd.TempValue.GetAttributeValue("ControlName"); TreeViewItem item = tvPageManager.FindName(controlName) as TreeViewItem; if (null == item) { return; } //-->成功 PageDirectorySub pds = Wrapper.ConvertToModel <PageDirectorySub>(cmd.ExecSql[1].Result); if (null == pds) { return; } TreeViewItem tvi = new TreeViewItem(); tvi.Name = string.Format("tvi_{0}_{1}", pds.PageDirectoryId, pds.ID); tvi.Header = pds.PageName; if (!pds.PageContent.IsNullOrEmpty()) { string[] strBuffer = pds.PageContent.Split(' '); int count = strBuffer.Length; byte[] buffer = new byte[count]; for (int i = 0; i < count; i++) { buffer[i] = byte.Parse(strBuffer[i]); } string content = Encoding.UTF8.GetString(buffer, 0, count); pds.PageContent = content; } tvi.Tag = pds; tvi.Expanded += tvi_Expanded; tvi.Collapsed += tvi_Expanded; item.Items.Add(tvi); var e = new OpenPageInfoEventArgs(); e.PageDirectorySub = pds; _OpenPageInfoMethod(this, e); }
/// <summary> /// 增加页面 /// </summary> /// <param name="name"></param> void AddPage(string name) { TreeViewItem item = this.tvPageManager.SelectedItem as TreeViewItem; if (null == item) { Wrapper.ShowDialog("请选择目录"); return; } PageDirectory pd = item.Tag as PageDirectory; if (null == pd) { Wrapper.ShowDialog("请选择目录"); return; } var cmd = new CtrlPlatformCommandInfo(); cmd.CommandName = ConstantCollection.CommandName_MixedCommand; cmd.ExecSql = new List <CtrlExecSQLCmd>(); PageDirectorySub sds = new PageDirectorySub(); sds.PageDirectoryId = pd.ID; sds.PageName = name; sds.PageGuid = Wrapper.GuidValue; string sql = string.Format("insert into PageDirectorySub(PageDirectoryId,PageGuid,PageName,CreateDate)values("); sql += string.Format("{0},", sds.PageDirectoryId); sql += string.Format("'{0}',", sds.PageGuid); sql += string.Format("'{0}',", sds.PageName); sql += string.Format("NOW())"); var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.ExecuteNonQuery, sql, "PageDirectorySub", this.Name, "AddPage"); cmd.ExecSql.Add(exec); sql = string.Format("select * from PageDirectorySub t where t.PageGuid = '{0}'", sds.PageGuid); exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.Query, sql, "PageDirectorySub", this.Name, "AddPage"); cmd.ExecSql.Add(exec); cmd.ParamCollection = sds.ToXElement(); cmd.TempValue = Wrapper.SetXmlValue("AddPage", "AddPage", new KeyValuePair <String, Object>[] { new KeyValuePair <String, Object>("ParentID", pd.ID), new KeyValuePair <String, Object>("ControlName", item.Name) }); this.SendToService(cmd, this); }
/// <summary> /// 获取保存SQL语句 /// </summary> /// <param name="pwa"></param> /// <param name="saveContent"></param> /// <returns></returns> String SavePageSqlSentence(PageWorkArea pwa, ref string saveContent) { string xaml = pwa.PageXaml; string xml = pwa.PageXml; PageDirectorySub pds = pwa.PageInfo; XElement _xe_xaml = xaml.IsNullOrEmpty() ? null : new XElement("xaml", XElement.Parse(xaml)); XElement _xe_xml = xml.IsNullOrEmpty() ? null : new XElement("xml", XElement.Parse(xml)); saveContent = string.Format("<PageSchema>\r\n{0}\r\n{1}\r\n</PageSchema>", _xe_xaml, _xe_xml); string sql = string.Format("update PageDirectorySub set "); sql += string.Format(" PageContent = ?PageContent"); sql += string.Format(" where ID = {0}", pds.ID); return(sql); }
void OpenNewPage(PageDirectorySub child) { if (dictTabItem.ContainsKey(child.PageGuid)) { var ti = dictTabItem[child.PageGuid]; ti.IsSelected = true; } else { RuntimePage rp = new RuntimePage(); rp.PageInfo = child; rp.IRuntimePageManager = this as IRuntimeManagerPage; TabItem ti = new TabItem(); ti.IsSelected = true; ti.Content = rp; ti.Header = child.PageName; dictTabItem.Add(child.PageGuid, ti); this.tc_Manager.Items.Add(ti); rp.Redraw(); } }
/// <summary> /// /// </summary> /// <param name="node"></param> public OpenPageInfoEventArgs(PageDirectorySub node) { this.PageDirectorySub = node; }
/// <summary> /// /// </summary> public OpenPageInfoEventArgs() : this(null) { this.PageDirectorySub = null; }