Exemplo n.º 1
0
 private void OpenTemplate(string templateName, string subPage)
 {
     try
     {
         if (!this.IsOpeningTemplate)
         {
             if (!(this.OpenTemplateLastTime.AddMilliseconds(100.0) >= DateTime.Now))
             {
                 if (TemplateManager.Instance.CurrentActiveTemplateView != null)
                 {
                     this._lastTemplate = TemplateManager.Instance.CurrentActiveTemplateView.Name;
                 }
                 if (this.ViewOrderBox != null)
                 {
                     this.ViewOrderBox.CloseViewOrderInfoBox();
                 }
                 this.OpenTemplateLastTime = DateTime.Now;
                 this.IsOpeningTemplate = true;
                 if (TemplateManager.Instance.IsTemplateContains(templateName))
                 {
                     if (subPage != string.Empty && templateName == "Summary")
                     {
                         ((frmStockSummary)TemplateManager.Instance.TemplateViews["Summary"].FormObj).SubPage = subPage;
                     }
                     TemplateManager.Instance.Show(templateName);
                     this.SetMenu(templateName);
                     this.IsOpeningTemplate = false;
                 }
                 else
                 {
                     string text = string.Empty;
                     bool flag = false;
                     text = ApplicationInfo.GetTemplatePathByUser();
                     if (text != string.Empty)
                     {
                         text = text + "\\" + templateName + ".xml";
                         if (File.Exists(text))
                         {
                             flag = true;
                         }
                     }
                     TemplateView templateView = templateView = TemplateManager.Instance.CreateTemplateView(templateName);
                     templateView.CurrentState = TemplateView.ContentState.OpeningOrClosing;
                     Dictionary<string, object> dictionary = new Dictionary<string, object>();
                     if (flag)
                     {
                         TemplateDS templateDS = new TemplateDS();
                         templateDS.ReadXml(text);
                         TemplateDS.FormRememberFieldRow[] array = (TemplateDS.FormRememberFieldRow[])templateDS.FormRememberField.Select();
                         TemplateDS.FormRememberFieldRow[] array2 = array;
                         for (int i = 0; i < array2.Length; i++)
                         {
                             TemplateDS.FormRememberFieldRow formRememberFieldRow = array2[i];
                             dictionary.Add(formRememberFieldRow.FieldName, formRememberFieldRow.FieldValue);
                         }
                     }
                     List<MainFixedTemplate.ControlClient> list = MainFixedTemplate.GetFixedTemplate(templateName);
                     foreach (MainFixedTemplate.ControlClient current in list)
                     {
                         if (dictionary.Count == 0)
                         {
                             dictionary = current.Property;
                         }
                         Form form;
                         if (subPage == string.Empty)
                         {
                             form = (Form)Activator.CreateInstance(current.ControlType, new object[]
                             {
                                 dictionary
                             });
                         }
                         else
                         {
                             form = (Form)Activator.CreateInstance(current.ControlType, new object[]
                             {
                                 dictionary,
                                 subPage
                             });
                         }
                         Form expr_2BE = form;
                         expr_2BE.Name += form.GetHashCode().ToString();
                         form.FormBorderStyle = FormBorderStyle.None;
                         form.TopLevel = false;
                         form.Bounds = this.GetWorkingArea();
                         form.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
                         form.Parent = this;
                         this.SetEventToNewForm(form);
                         TemplateManager.Instance.AddFormToTemplate(templateName, form, current.FormIndex);
                         Thread.Sleep(10);
                     }
                     list.Clear();
                     list = null;
                     dictionary.Clear();
                     dictionary = null;
                     TemplateManager.Instance.SetTabControl(templateName);
                     TemplateManager.Instance.Show(templateName);
                     this.SetMenu(templateName);
                     templateView.CurrentState = TemplateView.ContentState.Unchanged;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         this.ShowError("OpenTemplate", ex);
     }
     finally
     {
         this.IsOpeningTemplate = false;
     }
 }