#include #include #include #include #include #include #include using xml = KXMLDOMDocument; class export XDevItemDlg : public xwin { private: xaserverarg arg; KXMLDOMElement pr; public: //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if (comdid == L"xmDevCancel") { CloseWindow(); return 1; } if (comdid == L"xmDevOk") { if (arg) { xcontrol xc= GetControl(L"xmDevType"); arg.SetArg(L"typename", xc.GetText()); KXMLDOMElement o = pr.selectSingleNode(L"//folder[@caption='" + xc.GetText() + L"']"); if (o) { xstring image = o.getAttribute(L"image"); //alert(image); arg.SetArg(L"image", image); } xc = GetControl(L"xmDevName"); arg.SetArg(L"name", xc.GetText()); xc = GetControl(L"xmDevDesc"); arg.SetArg(L"desc", xc.GetText()); xc = GetControl(L"xmDevUri"); arg.SetArg(L"uri", xc.GetText()); arg.SetArg(L"__process",L"true"); arg.SetArg(L"folder",L"folder"); } CloseWindow(); return 1; } return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt,LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnCombSelChanged() { xcontrol xc = GetControl(L"xmDevType"); LPARAM j = SendMessage(xc.GetHWND(),0x0147,0,0); if (j > 0) { wchar_t str[255]; SendMessage(xc.GetHWND(),0x0148,j,(LPARAM)str); //trace(str); xc = GetControl(L"xmDevName"); xc.SetText(str); xc = GetControl(L"xmDevUri"); xc.SetText(str); } return 1; } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevItemDlg::OnXCommand); //AttachEvent(L"xmDevType", L"CBN_SELCHANGE",(FEvent)&XDevItemDlg::OnCombSelChanged); return 1; } int OnInitial() { OnAttachEvent(); xml project; xaserver::FetchXml(GetServerUrl(),L"dev:xpage[XDevProject.xml]",L"",project); auto list = project.selectNodes(L"//folder"); pr = project.documentElement(); long nlen = list.length(); int i = 0; for (i = 0; i < nlen; i++) { KXMLDOMElement e = list.item(i); xstring name = e.getAttribute(L"caption"); xcombobox b = GetControl(L"xmDevType"); b.AddItem(name); } return 1; } int onload() { SetArg(); OnInitial(); arg = GetArg(); if (arg) { xstring val; xcontrol xc(nullptr); val = arg.GetArgString(L"typename"); xc = GetControl(L"xmDevType"); if (val)xc.SetText(val); val = arg.GetArgString(L"name"); xc = GetControl(L"xmDevName"); if (val)xc.SetText(val); val = arg.GetArgString(L"desc"); xc = GetControl(L"xmDevDesc"); if (val)xc.SetText(val); val = arg.GetArgString(L"uri"); xc = GetControl(L"xmDevUri"); if (val)xc.SetText(val); val = arg.GetArgString(L"src"); xc = GetControl(L"xmDevPath"); if (val)xc.SetText(val); val = arg.GetArgString(L"guid"); xc = GetControl(L"xmDevGuid"); if (val)xc.SetText(val); val = arg.GetArgString(L"type"); //xml project = new xml; //xaserver::FetchXml(GetServerUrl(),L"dev:xpage[XDevProject.xml]",L"",project); //var list = project.GetXmlDoc().selectNodes(L"//folder"); //trace(val); xc = GetControl(L"xmDevType"); if (val)xc.SetText(val); } return 1; } };