#include <wobject/xstring.hpp>
|
#include <wobject/xwin.hpp>
|
#include <wobject/xaserver.hpp>
|
#include <wobject/xaserverarg.hpp>
|
#include <xcontrol/xtreeview.hpp>
|
#include <xcontrol/xlayersheet.hpp>
|
#include <xcontrol/xcombobox.hpp>
|
|
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;
|
}
|
};
|