using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace IControls_FireManager { // 사용자가 쓰는 이벤트 함수는 여기 클래스에서 전담한다 public static class _Event { // 다른 폼을 종료하기 위한 이벤트 // sender : 폼이름 // etc : 기타 변수 (사용자 마음대로) public delegate void FormClose_SendMessage_Handler(object sender, object etc); public static event FormClose_SendMessage_Handler FormClose_SendMessage_Event; public static void FormClose_SendMessage(object sender, object etc) { if (FormClose_SendMessage_Event != null) { FormClose_SendMessage_Event(sender, etc); } } // 팝업 폼을 종료하기 위한 이벤트 // sender : 폼이름 // etc : 기타 변수 (사용자 마음대로) public delegate void PopupClose_SendMessage_Handler(object sender, object etc); public static event PopupClose_SendMessage_Handler PopupClose_SendMessage_Event; public static void PopupClose_SendMessage(object sender, object etc) { if (PopupClose_SendMessage_Event != null) { PopupClose_SendMessage_Event(sender, etc); } } // 팝업 진행 카운트를 제어하기 위한 이벤트 // sender : 폼이름 // etc : 기타 변수 (사용자 마음대로) public delegate void ProgressPopupCount_SendMessage_Handler(object sender, object etc); public static event ProgressPopupCount_SendMessage_Handler ProgressPopupCount_SendMessage_Event; public static void ProgressPopupCount_SendMessage(object sender, object etc) { if (ProgressPopupCount_SendMessage_Event != null) { ProgressPopupCount_SendMessage_Event(sender, etc); } } // 디버그뷰에 텍스트 추가 이벤트 (예시 : 프로그램 구동시 LOG 를 남긴다) public delegate void DebugView_SendMessage_Handler(string Data); public static event DebugView_SendMessage_Handler DebugView_SendMessage_Event; public static void DebugView_SendMessage_Write(string Data) { if (DebugView_SendMessage_Event != null) { DebugView_SendMessage_Event(Data); } } // 스타일 변경 이벤트 (예시 : 메인메뉴에서 스타일을 변경하면 모든 폼에 있는 컴포넌트의 스타일이 변경된다) public delegate void WindowStyleSet_SendMessage_Handler(); public static event WindowStyleSet_SendMessage_Handler WindowStyleSet_SendMessage_Event; public static void WindowStyleSet_SendMessage_Write() { if (WindowStyleSet_SendMessage_Event != null) { WindowStyleSet_SendMessage_Event(); } } // 트리뷰에 수신기 노드를 생성 및 편집하기 위한 이벤트 (예시 : 트리에서 ROOT 노드의 팝업창을 통해 수신기 추가) // _RECEIVER : _RECEIVER 클래스 public delegate void TreeView_ReceiverNodeSet_SendMessage_Handler(_RECEIVER RECEIVER); public static event TreeView_ReceiverNodeSet_SendMessage_Handler TreeView_ReceiverNodeSet_SendMessage_Event; public static void TreeView_ReceiverNodeSet_SendMessage_Write(_RECEIVER RECEIVER) { if (TreeView_ReceiverNodeSet_SendMessage_Event != null) { TreeView_ReceiverNodeSet_SendMessage_Event(RECEIVER); } } // 트리뷰에 페이지 노드를 생성 및 편집하기 위한 이벤트 (예시 : 맵디자이너에서 페이지 추가) // _Page : _Page 클래스 public delegate void TreeView_PageNodeSet_SendMessage_Handler(string RECEIVER_ID, _Page Page); public static event TreeView_PageNodeSet_SendMessage_Handler TreeView_PageNodeSet_SendMessage_Event; public static void TreeView_PageNodeSet_SendMessage_Write(string RECEIVER_ID, _Page Page) { if (TreeView_PageNodeSet_SendMessage_Event != null) { TreeView_PageNodeSet_SendMessage_Event(RECEIVER_ID, Page); } } // 워크뷰 초기화 이벤트 (예시 : 다른뷰 -> 워크뷰) public delegate void WorkView_Clear_SendMessage_Handler(); public static event WorkView_Clear_SendMessage_Handler WorkView_Clear_SendMessage_Event; public static void WorkView_Clear_SendMessage_Write() { if (WorkView_Clear_SendMessage_Event != null) { WorkView_Clear_SendMessage_Event(); } } // 트리뷰 초기화 이벤트 및 프로젝트 열기 혹은 새로만들기 겸용 (예시 : 다른뷰 -> 트리뷰) public delegate void TreeView_Clear_SendMessage_Handler(string ProjectName); public static event TreeView_Clear_SendMessage_Handler TreeView_Clear_SendMessage_Event; public static void TreeView_Clear_SendMessage_Write(string ProjectName) { if (TreeView_Clear_SendMessage_Event != null) { TreeView_Clear_SendMessage_Event(ProjectName); } } // 수신기 초기화 이벤트 (예시 : 다른뷰 -> 트리뷰) public delegate void Receiver_Clear_SendMessage_Handler(); public static event Receiver_Clear_SendMessage_Handler Receiver_Clear_SendMessage_Event; public static void Receiver_Clear_SendMessage_Write() { if (Receiver_Clear_SendMessage_Event != null) { Receiver_Clear_SendMessage_Event(); } } // 메인 메뉴에서 그림 수정 이벤트 (예시 : 그래픽노드 -> 오른쪽마우스 -> 그림수정 , 단 맵디자이너가 켜져 있는 경우) public delegate void PictrueEdit_NodeSeleted_SendMessage_Handler(_RECEIVER RECEIVER, string PageName); public static event PictrueEdit_NodeSeleted_SendMessage_Handler PictrueEdit_NodeSeleted_SendMessage_Event; public static void PictrueEdit_NodeSeleted_SendMessage_Write(_RECEIVER RECEIVER, string PageName) { if (PictrueEdit_NodeSeleted_SendMessage_Event != null) { PictrueEdit_NodeSeleted_SendMessage_Event(RECEIVER, PageName); } } // 맵디자이너 창을 닫는 이벤트 public delegate void MapDesigner_Close_SendMessage_Handler(); public static event MapDesigner_Close_SendMessage_Handler MapDesigner_Close_SendMessage_Event; public static void MapDesigner_Close_SendMessage_Write() { if (MapDesigner_Close_SendMessage_Event != null) { MapDesigner_Close_SendMessage_Event(); } } // 워크뷰에 페이지 별로 작업하기 위한 이벤트 (예시 : 트리뷰에서 노드를 선택하면 페이지가 표시됨) // SystemTreeView : 시스템 트리 정보 // TypeName : 디바이스 타입 public delegate void WorkViewPageName_SendMessage_Handler(string RECEIVER_ID, Object_Type TypeName, string NodeKey, string NodeText); public static event WorkViewPageName_SendMessage_Handler WorkViewPageName_SendMessage_Event; public static void WorkViewPageName_SendMessage_Write(string RECEIVER_ID, Object_Type TypeName, string NodeKey, string NodeText) { if (WorkViewPageName_SendMessage_Event != null) { WorkViewPageName_SendMessage_Event(RECEIVER_ID, TypeName, NodeKey, NodeText); } } // 워크뷰에 그룹 및 연동설정 텝페이지 별로 작업하기 위한 이벤트 (예시 : 트리뷰에서 그룹 및 연동설정노드를 선택하면 페이지가 표시됨) // TypeName : 디바이스 타입 public delegate void WorkViewPageName_Oper_SendMessage_Handler(string RECEIVER_ID, Object_Type TypeName); public static event WorkViewPageName_Oper_SendMessage_Handler WorkViewPageName_Oper_SendMessage_Event; public static void WorkViewPageName_Oper_SendMessage_Write(string RECEIVER_ID, Object_Type TypeName) { if (WorkViewPageName_Oper_SendMessage_Event != null) { WorkViewPageName_Oper_SendMessage_Event(RECEIVER_ID, TypeName); } } // 수신기 추가 및 편집 폼에서 작업 완료 (예시 : 수신기 추가 혹은 수신기 정보를 편집하였다) -> 수신기 편집만 해당되도록 수정 - cyim 2013.06.17 public delegate void WorkViewPageName_Receiver_SendMessage_Handler(string RECEIVER_ID); public static event WorkViewPageName_Receiver_SendMessage_Handler WorkViewPageName_Receiver_SendMessage_Event; public static void WorkViewPageName_Receiver_SendMessage_Write(string RECEIVER_ID) { if (WorkViewPageName_Receiver_SendMessage_Event != null) { WorkViewPageName_Receiver_SendMessage_Event(RECEIVER_ID); } } // 다른이름으로 페이지 명을 변경하여 저장하는 이벤트 (예시 : 트리->페이지노드->이름변경 에서 저장버튼 누름) public delegate void Page_Rename_SendMessage_Handler(string RECEIVER_ID, string PageNodeKey, string PageNodeText); public static event Page_Rename_SendMessage_Handler Page_Rename_SendMessage_Event; public static void Page_Rename_SendMessage_Write(string RECEIVER_ID, string PageNodeKey, string PageNodeText) { if (Page_Rename_SendMessage_Event != null) { Page_Rename_SendMessage_Event(RECEIVER_ID, PageNodeKey, PageNodeText); } } // 페이지 저장 (XML 및 DB 저장) 이벤트 (예시 : 메인->프로젝트열기, 새로만들기 혹은 프로그램 종료시 팝업창-> 확인버튼) public delegate void Page_Save_SendMessage_Handler(string RECEIVER_ID); public static event Page_Save_SendMessage_Handler Page_Save_SendMessage_Event; public static void Page_Save_SendMessage_Write(string RECEIVER_ID) { if (Page_Save_SendMessage_Event != null) { Page_Save_SendMessage_Event(RECEIVER_ID); } } // Form_AddDevice폼에서 Form_ConfigMAP폼으로 이벤트 발생 public delegate void Form_AddDevice_SendMessage_Handler(DEVICE_EVENT EventName); public static event Form_AddDevice_SendMessage_Handler Form_AddDevice_SendMessage_Event; public static void Form_AddDevice_SendMessage_Write(DEVICE_EVENT EventName) { if (Form_AddDevice_SendMessage_Event != null) { Form_AddDevice_SendMessage_Event(EventName); } } // Form_AddGroup폼에서 Form_ConfigMAP폼으로 이벤트 발생 public delegate void Form_AddGroup_SendMessage_Handler(DEVICE_EVENT EventName); public static event Form_AddGroup_SendMessage_Handler Form_AddGroup_SendMessage_Event; public static void Form_AddGroup_SendMessage_Write(DEVICE_EVENT EventName) { if (Form_AddGroup_SendMessage_Event != null) { Form_AddGroup_SendMessage_Event(EventName); } } // Form_ConfigMAP폼에서 Form_Check_Device폼으로 이벤트 발생 public delegate void Form_ConfigMAP_SendMessage_Handler(string GroupID); public static event Form_ConfigMAP_SendMessage_Handler Form_ConfigMAP_SendMessage_Event; public static void Form_ConfigMAP_SendMessage_Write(string GroupID) { if (Form_ConfigMAP_SendMessage_Event != null) { Form_ConfigMAP_SendMessage_Event(GroupID); } } // 비상방송 편집 이벤트 발생 (입력 포인트에서 비상방송을 편집하면 입출력 포인트 정보를 모두 표시하도록 한다) public delegate void EmergencyCodeEdit_SendMessage_Handler(string RECEIVER_ID); public static event EmergencyCodeEdit_SendMessage_Handler EmergencyCodeEdit_SendMessage_Event; public static void EmergencyCodeEdit_SendMessage_Write(string RECEIVER_ID) { if (EmergencyCodeEdit_SendMessage_Event != null) { EmergencyCodeEdit_SendMessage_Event(RECEIVER_ID); } } // 수신기 xml 을 이용해서 프로젝트 열기하는 경우 자동으로 트리 표시 (TreeView Form -> Project Open Form) public delegate void Receiver_NodeAddComplete_SendMessage_Handler(string RECEIVER_ID); public static event Receiver_NodeAddComplete_SendMessage_Handler Receiver_NodeAddComplete_SendMessage_Event; public static void Receiver_NodeAddComplete_SendMessage_Write(string RECEIVER_ID) { if (Receiver_NodeAddComplete_SendMessage_Event != null) { Receiver_NodeAddComplete_SendMessage_Event(RECEIVER_ID); } } // 프로젝트 저장시에 페이지 저장을 위해 수신기 아이디별로 작업해야 한다 (TreeView Form -> Main Form) public delegate void Receiver_PageSaveComplete_SendMessage_Handler(string RECEIVER_ID); public static event Receiver_PageSaveComplete_SendMessage_Handler Receiver_PageSaveComplete_SendMessage_Event; public static void Receiver_PageSaveComplete_SendMessage_Write(string RECEIVER_ID) { if (Receiver_PageSaveComplete_SendMessage_Event != null) { Receiver_PageSaveComplete_SendMessage_Event(RECEIVER_ID); } } // 화면 최대화 명령 (TreeView Form -> Main Form) public delegate void Windows_MaxSize_SendMessage_Handler(); public static event Windows_MaxSize_SendMessage_Handler Windows_MaxSize_SendMessage_Event; public static void Windows_MaxSize_SendMessage_Write() { if (Windows_MaxSize_SendMessage_Event != null) { Windows_MaxSize_SendMessage_Event(); } } // 화면 캡쳐 명령 (TreeView Form -> Work Form) public delegate void Capture_Save_SendMessage_Handler(string RECEIVER_ID, string PAGE_ID); public static event Capture_Save_SendMessage_Handler Capture_Save_SendMessage_Event; public static void Capture_Save_SendMessage_Write(string RECEIVER_ID, string PAGE_ID) { if (Capture_Save_SendMessage_Event != null) { Capture_Save_SendMessage_Event(RECEIVER_ID, PAGE_ID); } } } }