コード例 #1
0
 void _UpdatePageNameMethod(object sender, OpenPageInfoEventArgs e)
 {
     if (null != UpdatePageName)
     {
         UpdatePageName(sender, e);
     }
 }
コード例 #2
0
        void pft_OpenPageInfo(object sender, OpenPageInfoEventArgs e)
        {
            //-->获取控件
            XElement _xe_page = XElement.Parse(e.PageDirectorySub.PageContent.Trim());

            if (null == _xe_page)
            {
                return;
            }
            XElement _xe_xaml = _xe_page.Element("xaml");
            XElement _xe_xml  = _xe_page.Element("xml");

            string xaml = _xe_xaml != null && _xe_xaml.FirstNode != null?_xe_xaml.FirstNode.ToString() : "";

            string xml = _xe_xml != null && _xe_xml.FirstNode != null?_xe_xml.FirstNode.ToString() : "";

            //-->xml操作
            _XmlTemplate_CurrentPage = XmlTemplate.DecodeXml(xml);
            //-->获取xaml
            _XamlTemplate = XamlTemplate.DecodeXml(xaml);
            _PageInfo     = Wrapper.CreateUIElement <UserControl>(xaml);
            LoadControls();

            if (null != OpenPageInfo)
            {
                OpenPageInfo(this, e);
            }
        }
コード例 #3
0
 void _OpenPageInfoMethod(object sender, OpenPageInfoEventArgs e)
 {
     if (null != OpenPageInfo)
     {
         OpenPageInfo(sender, e);
     }
 }
コード例 #4
0
        /// <summary>
        /// 打开一个新的设计页面
        /// </summary>
        /// <param name="e"></param>
        internal void OpenPageInfo(OpenPageInfoEventArgs e)
        {
            //-->判断当前页面是否已经打开,如果打开了,就设置为选中状态,否则就打开一个新的。
            bool isOpen = JudgePageIsOpen(e);

            if (!isOpen)
            {
                TabItem       ti     = new TabItem();
                TabItemHeader header = new TabItemHeader();
                PageWorkArea  pwa    = new PageWorkArea();
                pwa.ControlPosition    += pwa_ControlPosition;
                pwa.ContentUpdate      += pwa_ContentUpdate;
                pwa.ControlTimesUpdate += pwa_ControlTimesUpdate;
                pwa.ParentControl       = ti;
                ti.Header  = header;
                ti.Content = pwa;
                this.tcCollection.Items.Add(ti);

                header.OnCloseTabItem    += header_Delete;
                header.MouseLeftButtonUp += header_MouseLeftButtonUp;
                header.Tag    = ti;
                header.Header = e.PageDirectorySub.PageName;

                ti.Tag        = e.PageDirectorySub;
                ti.Name       = string.Format("TabItem_{0}", e.PageDirectorySub.ID);
                ti.IsSelected = true;
                pwa.OpenPageInfo(e, IDesignFramework);
            }
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
 void pft_OpenPageInfo(object sender, OpenPageInfoEventArgs e)
 {
     if (null == e)
     {
         return;
     }
     _PageGuid = e.PageDirectorySub.PageGuid;
 }
コード例 #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="cmd"></param>
 public void ProcessSavePageDirectorySub(CtrlPlatformCommandInfo cmd)
 {
     if (cmd.ExecuteNonQueryResult.ConvertTo <int>() > 0)
     {
         OpenPageInfoEventArgs   e    = new OpenPageInfoEventArgs();
         List <PageDirectorySub> item = Wrapper.ConvertToList <PageDirectorySub>(cmd.ExecSql[0].Result);//, "PageDirectorySub");
         e.PageDirectorySub = item[0];
         //--------->通知打开页面操作。
         _OpenPageInfoMethod(this, e);
     }
     else
     {
         MessageBox.Show(cmd.ErrorMessage);
     }
 }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
        /// <summary>
        /// 打开页面
        /// </summary>
        /// <param name="iPage"></param>
        /// <param name="e"></param>
        internal void OpenPageInfo(OpenPageInfoEventArgs e, IPageDesignFramework iPage)
        {
            _IsOpenPage            = true;
            this._IDesignFramework = iPage;
            this.PageInfo          = e.PageDirectorySub;
            this.DesignPage.SetDesigntimeInterface(iPage);
            //-->判断 this.PageInfo.PageContent 是否为空。
            //-->如果不为空说就把里面的信息分开,然后分别放到 txtXaml,txtXml控件里去
            this.txtXaml.Text = string.Empty;
            this.txtXml.Text  = string.Empty;
            if (this.PageInfo.PageContent.IsNullOrEmpty())
            {
                this.IsUpdate = true;
                //-->说明刚创建的一个新的页面。
                CreateNewPageInfo(e);
                return;
            }
            XElement _xe_page = XElement.Parse(this.PageInfo.PageContent.Trim());

            if (null == _xe_page)
            {
                return;
            }
            XElement _xe_xaml = _xe_page.Element("xaml");
            XElement _xe_xml  = _xe_page.Element("xml");

            string xaml = _xe_xaml != null && _xe_xaml.FirstNode != null?_xe_xaml.FirstNode.ToString() : "";  // _xe_xaml.GetElementValue("xaml");

            string xml = _xe_xml != null && _xe_xml.FirstNode != null?_xe_xml.FirstNode.ToString() : "";

            //-->xml操作
            DecodeXml(xml);
            //-->获取xaml
            Xaml_LostFocus("", xaml);
            DesignPage.Height = _XmlTemplate.BaseInfo.PageHeight;
            DesignPage.Width  = _XmlTemplate.BaseInfo.PageWidth;

            UpdateControlTree();
            _IsOpenPage   = false;
            this.IsUpdate = false;
        }
コード例 #10
0
        void tvi_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = sender as TreeViewItem;

            if (item.Tag is PageDirectory)
            {
                PageDirectory pd = item.Tag as PageDirectory;
                if (!pd.IsSendCommand)
                {
                    //-->发送命令获取下面所有目录及文件
                    //-->获取目录的查询语句;
                    //-->获取文件的查询语句
                    InitCurrentNodeDirectory(pd.ID, item.Name);
                }
            }
            else if (item.Tag is PageDirectorySub)
            {
                //-->打开文件
                OpenPageInfoEventArgs oe = new OpenPageInfoEventArgs();
                oe.PageDirectorySub = item.Tag as PageDirectorySub;
                _OpenPageInfoMethod(this, oe);
            }
        }
コード例 #11
0
 /// <summary>
 /// 更新Tab标签信息
 /// </summary>
 /// <param name="e"></param>
 internal void UpdateTabItemHeader(OpenPageInfoEventArgs e)
 {
     foreach (var v in this.tcCollection.Items)
     {
         TabItem ti = v as TabItem;
         if (null == ti)
         {
             continue;
         }
         PageWorkArea pwa = ti.Content as PageWorkArea;
         if (null == pwa)
         {
             continue;
         }
         if (pwa.PageInfo.PageGuid.Equals(e.PageDirectorySub.PageGuid))
         {
             pwa.PageInfo.PageName = e.PageDirectorySub.PageName;
             TabItemHeader header = ti.Header as TabItemHeader;
             header.Header = e.PageDirectorySub.PageName;
             pwa.UpdateXmlPageNameValue(pwa.PageInfo.PageName);
         }
     }
 }
コード例 #12
0
 /// <summary>
 /// 创建一个新的页面
 /// </summary>
 /// <param name="e"></param>
 void CreateNewPageInfo(OpenPageInfoEventArgs e)
 {
     this.Xaml_Template = _XamlTemplate.ParseXml().ToString();
     BuilderXml(e.PageDirectorySub);
 }
コード例 #13
0
 void pft_OpenPageInfo(object sender, OpenPageInfoEventArgs e)
 {
     pwag.OpenPageInfo(e);//, this);
 }
コード例 #14
0
 void pft_UpdatePageName(object sender, OpenPageInfoEventArgs e)
 {
     pwag.UpdateTabItemHeader(e);
 }
コード例 #15
0
 void pftm_OpenPageInfo(object sender, OpenPageInfoEventArgs e)
 {
     _XmlTemplate_CurrentPage = this.pftm.SelectedPageInfo;
     _CurrentPageControl      = this.pftm.PageControl;
 }