/// <summary> /// 메모 폼에서 이벤트 발생 /// </summary> /// <param name="type"></param> /// <param name="obj"></param> /// <returns></returns> bool memo_occurred_event(DEFINE.EVENTTYPE type, object obj) { // 메모 폼 Close 시 if (type == DEFINE.EVENTTYPE.EVENTTYPE_CLOSEMEMO) { object sender = ((object[])obj)[0]; Item item = (Item)(((object[])obj)[1]); bool isSave = (string)((object[])obj)[2] == "Y" ? true : false; if (isSave) { saveMemo(item); } //memoForms.Remove((Form_Memo)sender); memoForms.Remove((Form_Memo_RIchText)sender); } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_SAVEMEMO) // 메모 폼 Save 시 { Item item = (Item)obj; saveMemo(item); } return(true); //throw new NotImplementedException(); }
/// <summary> /// 설정 폼에서 이벤트 발생 /// </summary> /// <param name="type"></param> /// <param name="obj"></param> /// <returns></returns> private bool settingForm_occurred_event(DEFINE.EVENTTYPE type, object obj) { if (type == DEFINE.EVENTTYPE.EVENTTYPE_SAVEMEMODATAPATH) // 메모 Path 지정 { string str_memo_path = (String)obj; if (!System.IO.File.Exists(str_memo_path)) { MessageBox.Show("메모데이터가 해당 경로에 존재하지 않습니다."); return(false); } XmlDocument memoDoc = Common.XmlControl.getInstance().xmlLoad(str_memo_path); XmlNode memoNode = memoDoc.SelectSingleNode("//MEMODATA"); if (memoNode == null) { MessageBox.Show("해당 경로 파일은 메모데이터가 아닙니다."); return(false); } // 메모 폼이 현재 열려있으면 폼을 닫음 for (int i = memoForms.Count - 1; i >= 0; i--) { Item tmpItem = memoForms[i].g_item; memoForms[i].closeForce = true; memoForms[i].Close(); } // 폴더 폼 닫음 if (mainFolder != null) { mainFolder.Close(); } XmlNode settingNode = configDoc.SelectSingleNode("//SETTING"); XmlNode memoPathNode = settingNode.SelectSingleNode(String.Format("./{0}", DEFINE.CONFIG_SETTING_MEMODATAPATH)); memoPathNode.InnerText = str_memo_path; DEFINE.MEMO_DATA_PATH = str_memo_path; if (Common.XmlControl.getInstance().xmlSave(configDoc, System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME)) { configDoc = Common.XmlControl.getInstance().xmlLoad(System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME); } // 최근메모에 존재하는지 검사 후 저장 settingForm_occurred_event(DEFINE.EVENTTYPE.EVENTTYPE_SAVE_RECENT_MEMODATAPATH, obj); showFormFolder(); } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_SAVE_RECENT_MEMODATAPATH) // 최근 메모 Path 저장 { // 최근 Open한 메모리스트에 존재하는지 검사 후 없으면 추가 XmlNode settingNode = configDoc.SelectSingleNode("//SETTING"); bool is_exist = false; XmlNodeList recentMemoPathNodes = settingNode.SelectNodes(String.Format("./{0}", DEFINE.CONFIG_SETTING_RECENT_MEMODATAPATH)); for (int i = 0; i < recentMemoPathNodes.Count; i++) { XmlNode item = recentMemoPathNodes.Item(i); if (item.InnerText == DEFINE.MEMO_DATA_PATH) { is_exist = true; break; } } if (!is_exist) { XmlNode tmpNode = configDoc.CreateNode(XmlNodeType.Element, DEFINE.CONFIG_SETTING_RECENT_MEMODATAPATH, ""); tmpNode.InnerText = (String)obj; settingNode.AppendChild(tmpNode); if (Common.XmlControl.getInstance().xmlSave(configDoc, System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME)) { configDoc = Common.XmlControl.getInstance().xmlLoad(System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME); } } // 데이터 및 Setting Form Relaod reload_recent_memo_data(); if (mainSetting != null) { mainSetting.reloadForm(); } } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_DELETE_RECENT_MEMODATAPATH) // 최근 메모 Path 삭제 { int idx = (int)obj; // index 순서 XmlNode settingNode = configDoc.SelectSingleNode("//SETTING"); XmlNodeList RecentMemoPathNodes = settingNode.SelectNodes(String.Format("./{0}", DEFINE.CONFIG_SETTING_RECENT_MEMODATAPATH)); if (idx < RecentMemoPathNodes.Count) { // 노드 삭제 XmlNode tmpNode = RecentMemoPathNodes.Item(idx); tmpNode.ParentNode.RemoveChild(tmpNode); // 저장 if (Common.XmlControl.getInstance().xmlSave(configDoc, System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME)) { configDoc = Common.XmlControl.getInstance().xmlLoad(System.Windows.Forms.Application.StartupPath + "\\" + DEFINE.CONFIG_FILENAME); } } // 데이터 및 Setting Form Relaod reload_recent_memo_data(); if (mainSetting != null) { mainSetting.reloadForm(); } } return(false); }
/// <summary> /// 폴더 폼에서 이벤트 발생 /// </summary> /// <param name="type"></param> /// <param name="obj"></param> /// <returns></returns> bool mainFolder_occurred_event(DEFINE.EVENTTYPE type, object obj) { // 메모 폼 OPEN EVENT 발생 if (type == DEFINE.EVENTTYPE.EVENTTYPE_LOADMEMO) { Item item = (Item)obj; // 중복 생성 방지 for (int i = 0; i < memoForms.Count; i++) { Item tmpItem = memoForms[i].g_item; if (tmpItem.PATH == item.PATH && tmpItem.TITLE == item.TITLE) { memoForms[i].textBoxFocus(); return(true); } } //Form_Memo memo = new Form_Memo(); Form_Memo_RIchText memo = new Form_Memo_RIchText(); memo.g_item = item; memo.ShowInTaskbar = false; memo.Show(this); memo.occurred_event += memo_occurred_event; memoForms.Add(memo); } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_DELETEMEMO) { Item item = (Item)obj; // 메모 폼이 현재 열려있으면 폼을 닫음 for (int i = memoForms.Count - 1; i >= 0; i--) { Item tmpItem = memoForms[i].g_item; if (tmpItem.PATH == item.PATH && tmpItem.TITLE == item.TITLE) { memoForms[i].closeForce = true; memoForms[i].Close(); //memoForms.RemoveAt(i); break; } } XmlDocument xmlDoc = Common.XmlControl.getInstance().xmlLoad(DEFINE.MEMO_DATA_PATH); XmlNode memoNode = xmlDoc.SelectSingleNode("//MEMODATA"); String path = item.PATH; if (path != "/") { String[] paths = path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < paths.Length; i++) { memoNode = memoNode.SelectSingleNode("./" + DEFINE.NODE_GROUPNAME + "[@name='" + paths[i] + "']"); } } XmlNode targetNode = memoNode.SelectSingleNode("./" + DEFINE.NODE_MEMONAME + "[@name='" + item.TITLE + "']"); targetNode.ParentNode.RemoveChild(targetNode); Common.XmlControl.getInstance().xmlSave(xmlDoc, DEFINE.MEMO_DATA_PATH); } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_DELETEGROUP) { Item item = (Item)obj; // 해당 그룹에 속하는 메모 폼이 현재 열려있으면 폼을 닫음 for (int i = memoForms.Count - 1; i >= 0; i--) { Item tmpItem = memoForms[i].g_item; if (tmpItem.PATH != "/") { String[] paths = tmpItem.PATH.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); string groupPath = item.PATH + item.TITLE; String[] paths2 = groupPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); bool isGroupChild = true; for (int j = 0; j < paths2.Length; j++) { if (paths.Length < paths2.Length ? true : paths2[j] != paths[j]) { isGroupChild = false; break; } } if (isGroupChild) { //memoForms.Remove(memoForms[i]); memoForms[i].closeForce = true; memoForms[i].Close(); } } } XmlDocument xmlDoc = Common.XmlControl.getInstance().xmlLoad(DEFINE.MEMO_DATA_PATH); XmlNode memoNode = xmlDoc.SelectSingleNode("//MEMODATA"); if (item.PATH != "/") { string[] paths = item.PATH.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < paths.Length; i++) { memoNode = memoNode.SelectSingleNode("./" + DEFINE.NODE_GROUPNAME + "[@name='" + paths[i] + "']"); } } XmlNode targetNode = memoNode.SelectSingleNode("./" + DEFINE.NODE_GROUPNAME + "[@name='" + item.TITLE + "']"); targetNode.ParentNode.RemoveChild(targetNode); Common.XmlControl.getInstance().xmlSave(xmlDoc, DEFINE.MEMO_DATA_PATH); } else if (type == DEFINE.EVENTTYPE.EVENTTYPE_RENAME) // 이름 변경 시 { Item item = (Item)(((object[])obj)[0]); string str_newName = (string)(((object[])obj)[1]); renameItem(item, str_newName); } return(true); //throw new NotImplementedException(); }