public ViewBase ViewInTab <T>(Action <T> initializer = null) where T : ViewBase { var typeRegistery = new TypeRegistery(); var container = new StructureMap.Container(typeRegistery); var viewInstance = container.GetInstance <T>(); if (initializer != null) { initializer(viewInstance); } viewInstance.ViewEngin = this; if (openTabs.ContainsKey(viewInstance.ViewIdentifier)) { var currentTab = openTabs[viewInstance.ViewIdentifier]; tabControl.SelectedTab = currentTab; return(currentTab.Controls.OfType <T>().First()); } TabPage tabPage = new TabPage(); tabPage.Text = viewInstance.ViewTitle; tabPage.Controls.Add(viewInstance); viewInstance.Dock = DockStyle.Fill; tabControl.TabPages.Add(tabPage); tabControl.SelectedTab = tabPage; openTabs.Add(viewInstance.ViewIdentifier, tabPage); return((T)viewInstance); }
public T ViewInForm <T>(Action <T> initialazer = null, bool displayAsDialog = false , FormWindowState windowState = FormWindowState.Normal, bool topButtonBar = false) where T : ViewBase { var typeRegistery = new TypeRegistery(); var container = new StructureMap.Container(typeRegistery); var viewInstance = container.GetInstance <T>(); viewInstance.ViewEngin = this; if (initialazer != null) { initialazer(viewInstance); } if (openForms.ContainsKey(viewInstance.ViewIdentifier)) { var currentForm = openForms[viewInstance.ViewIdentifier]; currentForm.Activate(); return((T)currentForm.Controls.OfType <ViewBase>().First()); } viewInstance.VisibleTopBar = topButtonBar; var form = new Form(); form.Height = 600; form.Width = 800; form.StartPosition = FormStartPosition.CenterScreen; form.RightToLeft = RightToLeft.Yes; form.Font = new Font("Tahoma", 8); form.Text = viewInstance.ViewTitle; viewInstance.Dock = DockStyle.Fill; form.Controls.Add(viewInstance); form.FormClosed += (obj, e) => { openForms.Remove(viewInstance.ViewIdentifier); }; form.WindowState = windowState; openForms.Add(viewInstance.ViewIdentifier, form); if (displayAsDialog) { form.ShowDialog(); } else { form.Show(); } return((T)viewInstance); }