using Sarand.PatientMgr.Win.Forms.Base; using Sarand.PatientMgr.Win.Forms.Panels; using Sarand.Win.Forms.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Sarand.PatientMgr.Win.Forms.Config { //======================================================================= public partial class SpmForm_Config : SpmForm { //------------------------------------------------------------------- // Configuration. public new class Config : SpmForm.Config { } //------------------------------------------------------------------- // Definitions. public enum ConfigPanelType { Unknown = 0, Departments, Operations, Employees, Patients, Procedures, EmployeeRoles, FacilityTemplates } //------------------------------------------------------------------- // Data members. private Config config = null; private SpmPanel_Config_Menu panelMenu = null; private ConfigPanelType panelType = ConfigPanelType.Unknown; //------------------------------------------------------------------- // Construction. private SpmForm_Config () : this(new Config()) { } public SpmForm_Config (Config config) : base(config) { InitializeComponent(); } protected override void Dispose (bool disposing) { if (disposing) { if (components != null) components.Dispose(); if (panelMenu != null) panelMenu.Dispose(); } base.Dispose(disposing); } //------------------------------------------------------------------- // Properties. [Browsable(false), ReadOnly(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public ConfigPanelType PanelType { get { return panelType; } set { SwitchPanel(value); } } private void SwitchPanel (ConfigPanelType panelType) { if (this.panelType == panelType) return; SpmPanel panel = null; switch (panelType) { case ConfigPanelType.Departments: { SpmPanel_Departments.Config panelConfig = new SpmPanel_Departments.Config(SpmPanel_Departments.PanelMode.Maintain); panel = new SpmPanel_Departments(panelConfig); break; } case ConfigPanelType.FacilityTemplates: { SpmPanel_FacilityTemplates.Config panelConfig = new SpmPanel_FacilityTemplates.Config(); panelConfig.Mode = SpmPanel_FacilityTemplates.PanelMode.Maintain; panel = new SpmPanel_FacilityTemplates(panelConfig); break; } case ConfigPanelType.Operations: { /* ToDo Operations panel SpmPanel_Operations.Config panelConfig = new SpmPanel_Operations.Config(); panelConfig.Mode = SpmPanel_Operations.PanelMode.Maintain; panel = new SpmPanel_Operations(panelConfig); */ break; } case ConfigPanelType.Procedures: { SpmPanel_Procedures.Config panelConfig = new SpmPanel_Procedures.Config(); panelConfig.Mode = SpmPanel_Procedures.PanelMode.Maintain; panel = new SpmPanel_Procedures(panelConfig); break; } case ConfigPanelType.Patients: { /* ToDo Patients panel SpmPanel_Patients.Config panelConfig = new SpmPanel_Patients.Config(); panelConfig.Mode = SpmPanel_Patients.PanelMode.Maintain; panel = new SpmPanel_Patients(panelConfig); */ break; } case ConfigPanelType.Employees: { /* ToDo Employees panel SpmPanel_Employees.Config panelConfig = new SpmPanel_Employees.Config(); panelConfig.Mode = SpmPanel_Employees.PanelMode.Maintain; panel = new SpmPanel_Employees(panelConfig); */ break; } case ConfigPanelType.EmployeeRoles: { SpmPanel_EmployeeRoles.Config panelConfig = new SpmPanel_EmployeeRoles.Config(); panelConfig.Mode = SpmPanel_EmployeeRoles.PanelMode.Maintain; panel = new SpmPanel_EmployeeRoles(panelConfig); break; } } if (panel == null) return; // Clear existing view. while (splitContainer.Panel2.Controls.Count > 0) { Control control = splitContainer.Panel2.Controls[0]; splitContainer.Panel2.Controls.RemoveAt(0); control.Dispose(); } // Add new view. splitContainer.Panel2.Controls.Add(panel); panel.Dock = DockStyle.Fill; this.panelType = panelType; } //------------------------------------------------------------------- // I n i t i a l i s a t i o n //------------------------------------------------------------------- protected override void OnCreateControl () { base.OnCreateControl(); if (this.IsDesignerHosted()) return; // Spliter. splitContainer.SplitterDistance = 200; splitContainer.FixedPanel = FixedPanel.Panel1; splitContainer.IsSplitterFixed = true; // Menu panel. SpmPanel_Config_Menu.Config menuConfig = new SpmPanel_Config_Menu.Config(); menuConfig.ConfigForm = this; panelMenu = new SpmPanel_Config_Menu(menuConfig); splitContainer.Panel1.Controls.Add(panelMenu); panelMenu.Dock = DockStyle.Fill; panelMenu.RefreshPanel(); SetControlActivity(); } protected override void OnShown (EventArgs e) { base.OnShown(e); } //------------------------------------------------------------------- // C o n t r o l A c t i v i t y //------------------------------------------------------------------- protected override void SetControlActivity () { SetControlsReadOnly(); } protected override void SetControlsReadOnly () { } //------------------------------------------------------------------- // F o r m A c t i o n s //------------------------------------------------------------------- public void RefreshView() { } //------------------------------------------------------------------- // F o r m E v e n t s //------------------------------------------------------------------- //------------------------------------------------------------------- } //======================================================================= }