/// <summary> /// Build dynamic menu /// </summary> /// <param name="dt"></param> /// <returns></returns> /// <remarks> /// Author: Le Tien Phat. /// Created date: 14/05/2011 /// </remarks> private MainMenu BuildMenu(DataTable dt) { MainMenu mainMenu = new MainMenu(); DataRow[] rows; rows = dt.Select("MENU_PID = 0", MENU_ZORDER); MDMenuItem item; Font font = this.Font; foreach (DataRow row in rows) { item = new MDMenuItem(); item.ID = int.Parse(row[FORM_ID].ToString()); item.Name = row[MENU_NAME].ToString(); item.FormName = AssemblyName + row[FORM_NAME].ToString(); item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); item.Font = font; if (item.Name == clsConstants.MENU_WINDOWS) { item.MdiList = true; } mainMenu.MenuItems.Add(item); AddSub(item, dt); } return(mainMenu); }
/// <summary> /// Init title column header for Main Menu. /// </summary> /// <param name="frm"></param> /// <param name="control"></param> /// <remarks> /// Author: PhatLT. FPTSS. /// Created date: 14/02/2011 /// </remarks> public static void InitTitle(Form frm, MDMenuItem item) { if (frm == null || item == null) { return; } if (item.Name == clsConstants.MENU_SEPARATE) { item.Text = clsConstants.MINUS; } else { item.Text = clsResources.GetTitle(frm.Name + "." + item.Name); } foreach (MDMenuItem sub in item.MenuItems) { InitTitle(frm, sub); } }
/// <summary> /// Handle events when click on menu Item (Open window and other action). /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <remarks> /// Author: Le Tien Phat. /// Created date: 14/05/2011 /// </remarks> private void MenuItem_OnClick(object sender, EventArgs e) { string formName = ""; MDMenuItem item = (MDMenuItem)sender; if (clsConstants.EXIT == item.Name) { this.Close(); } else if (clsConstants.MENU_HELP_TOPIC == item.Name) { } else if (clsConstants.MENU_HELP_ABOUT == item.Name) { frmAbout frmAbout = new frmAbout(); frmAbout.ShowDialog(); } else if (clsConstants.WINDOW_CASCADE == item.Name) { this.LayoutMdi(MdiLayout.Cascade); } else if (clsConstants.WINDOW_TILE_HOZ == item.Name) { this.LayoutMdi(MdiLayout.TileHorizontal); } else if (clsConstants.WINDOW_TILE_VERT == item.Name) { this.LayoutMdi(MdiLayout.TileVertical); } else if (clsConstants.WINDOW_CLOSE_ALL == item.Name) { CloseAllWindow(); } else if (clsConstants.SYSTEM_STYLE == item.Name) { item.Checked = !item.Checked; clsStyleManager.SystemStyle = item.Checked; } else if (clsConstants.COLOR_FOCUS_CONTROL == item.Name) { item.Checked = !item.Checked; clsStyleManager.ColorFocusControl = item.Checked; } else if (clsConstants.MAXIMIZED == item.Name) { item.Checked = !item.Checked; clsFormManager.Maximized = item.Checked; } else if (clsConstants.SET_ENGLISH_LANGUAGE == item.Name) { clsResources.Init(clsConstants.ENGLISH); clsTitleManager.InitToolBarToolTip(this); // tip.RemoveAll(); // foreach(Control ctrl in pnlToolBar.Controls) // { // tip.SetToolTip(ctrl, clsResources.GetTitle(frmMainName + ctrl.Name)); // } clsTitleManager.InitTitle(this, this.Menu); foreach (Form frm in this.MdiChildren) { clsTitleManager.InitTitle(frm); } } else if (clsConstants.SET_VIETNAMESE_LANGUAGE == item.Name) { clsResources.Init(clsConstants.VIETNAMESE); clsTitleManager.InitToolBarToolTip(this); // tip.RemoveAll(); // foreach(Control ctrl in pnlToolBar.Controls) // { // tip.SetToolTip(ctrl, clsResources.GetTitle(frmMainName + ctrl.Name)); // } clsTitleManager.InitTitle(this, this.Menu); foreach (Form frm in this.MdiChildren) { clsTitleManager.InitTitle(frm); } } else if (clsConstants.LOG_OUT == item.Name) { if (MessageBox.Show(clsResources.GetMessage("messages.logout"), clsResources.GetMessage("messages.general"), MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { CloseAllWindow(); this.Text = clsResources.GetTitle("frmMain.Title"); this.Menu = mnuMain; //pnlToolBar.Visible = false; clsCommon.RemoveAllToolBar(this); mnuLogin_Click(null, null); } } else { formName = item.FormName; if (formName.Length > 0 && formName != AssemblyName) { if (formName == "DMS.Presentation.frmLogin") { mnuLogin_Click(null, null); } else { Form frm = null; try { frm = (Form)Activator.CreateInstance(Type.GetType(formName), null); } catch (Exception ex) { log.Error(ex.Message, ex); MessageBox.Show(clsResources.GetMessage("errors.form.create", formName)); } if (frm != null) { clsFormManager.ShowMDIChild(frm); } } } } }
/// <summary> /// Add sub menu item on recursive /// </summary> /// <param name="parent"></param> /// <param name="dt"></param> /// <remarks> /// Author: Le Tien Phat. /// Created date: 14/05/2011 /// </remarks> private void AddSub(MDMenuItem parent, DataTable dt) { DataRow[] rows = dt.Select(string.Format("MENU_PID = {0}", parent.ID), MENU_ZORDER); if (rows.Length > 0) { MDMenuItem item; string folder = clsSystemConfig.IconFolder; string iconName = null; Size size = new Size(14, 14); foreach (DataRow row in rows) { item = new MDMenuItem(); item.Font = parent.Font; item.OwnerDraw = true; item.Name = row[MENU_NAME].ToString(); iconName = row[ICON_NAME].ToString(); if (iconName.Length > 0) { string filename = folder + iconName; if (File.Exists(filename)) { try { Icon icon = new Icon(filename); item.Icon = icon; } catch (Exception ex) { log.Error(ex.Message, ex); } } } if (item.Name == clsConstants.MENU_SEPARATE) { item.OwnerDraw = false; item.Text = clsConstants.MINUS; parent.MenuItems.Add(item); } else if (item.Name == clsConstants.MAXIMIZED) { item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); item.Checked = clsFormManager.Maximized; item.Click += new EventHandler(MenuItem_OnClick); } else if (item.Name == clsConstants.SYSTEM_STYLE) { item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); item.Checked = clsStyleManager.SystemStyle; item.Click += new EventHandler(MenuItem_OnClick); } else { item.ID = int.Parse(row[FORM_ID].ToString()); string formName = row[FORM_NAME].ToString(); if (formName.Length > 0) { item.FormName = AssemblyName + formName; } else { item.FormName = ""; } item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); AddSub(item, dt); } } } else { parent.Click += new EventHandler(MenuItem_OnClick); } }