Files
PatientMgr-CSharp/SaPatMgrWinForms/Win/Forms/Config/SpmForm_Config.cs
T

205 lines
6.0 KiB
C#

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
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}