Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }