| | |
| | | #include <xcontrol/xlayersheet.hpp> |
| | | #include <xcontrol/xcombobox.hpp> |
| | | #include <vbusiness/vutil/publiccode.vutil.vbusiness.hpp> |
| | | #include <win32/xfile.hpp> |
| | | |
| | | using xml = KXMLDOMDocument; |
| | | class export XDevEditPage : public xwin |
| | |
| | | public: |
| | | xstring ProcessDevCmd(xstring cmd, xstring ext) |
| | | { |
| | | //trace(ext); |
| | | int nlen = 0; |
| | | BYTE* pdata; |
| | | xaserver::ProcessCmd(GetServerUrl(), (L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext, pdata, nlen); |
| | | if (nlen > 0) |
| | | { |
| | | xstring str = ((wchar_t*)pdata); |
| | | return str.mid(1, 9999999); |
| | | } |
| | | else |
| | | return L""; |
| | | return xaserver::ProcessCmd(GetServerUrl(), (L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext); |
| | | } |
| | | |
| | | HTREEITEM GetProjectItem(xtreeview tv_folder, HTREEITEM hItem ) |
| | |
| | | { |
| | | return publiccode::GetGuid(); |
| | | } |
| | | |
| | | int ImportItem(HTREEITEM hItem, KXMLDOMElement ele, xstring prjguid, xstring domainguid, xstring rootguid) |
| | | { |
| | | xwin w = GetFrameWindow(); |
| | | xtreeview tv_folder = w.GetControl(L"DevExplorer"); |
| | | xstring caption = ele.getAttribute(L"src"); |
| | | xstring guid = ((KXMLDOMElement)tv_folder.GetItemData(hItem)).getAttribute(L"guid"); |
| | | xstring typ = ele.tagName(); |
| | | KXMLDOMElement e = tv_folder.GetItemData(hItem); |
| | | |
| | | |
| | | xaserverarg arg; |
| | | KXMLDOMNode node = e.selectSingleNode(typ + L"[@caption='" + caption + L"']"); |
| | | if (!node) |
| | | { |
| | | //add file folder |
| | | arg.AddArg(L"image", ele.getAttribute(L"image")); |
| | | //arg.AddArg(L"guid", ele.getAttribute(L"guid")); |
| | | arg.AddArg(L"folder", ele.tagName()); |
| | | arg.AddArg(L"type", ele.getAttribute(L"type")); |
| | | arg.AddArg(L"desc", ele.getAttribute(L"desc")); |
| | | arg.AddArg(L"uri", ele.getAttribute(L"uri")); |
| | | arg.AddArg(L"src", ele.getAttribute(L"src")); |
| | | arg.AddArg(L"name", ele.getAttribute(L"caption")); |
| | | |
| | | arg.AddArg(L"parent.guid", guid); |
| | | arg.AddArg(L"project.guid", prjguid); |
| | | arg.AddArg(L"domain.guid", domainguid); |
| | | arg.AddArg(L"root.guid", rootguid); |
| | | |
| | | xstring str = ProcessDevCmd(L"addfolder", arg.GetString()); |
| | | if (str != L"") |
| | | { |
| | | xml x; |
| | | x.loadXML(str); |
| | | auto e1 = x.documentElement(); |
| | | e.appendChild(e1); |
| | | int himage = xstring(e1.getAttribute(L"image")).toInt(); |
| | | HTREEITEM hNewItem = tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage); |
| | | |
| | | |
| | | int lens; |
| | | KXMLDOMNodeList nodes = ele.selectNodes(L"node()"); |
| | | lens = nodes.length(); |
| | | for (int i = 0; i < lens; i++) |
| | | { |
| | | KXMLDOMElement child = nodes.item(i); |
| | | ImportItem(hNewItem, child, prjguid, domainguid, rootguid); |
| | | } |
| | | } |
| | | return 1; |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | int ImportItems(xstring srcfile, xstring id) |
| | | { |
| | | xwin w = GetFrameWindow(); |
| | | xtreeview tv_folder = w.GetControl(L"DevExplorer"); |
| | | HTREEITEM hItem = tv_folder.GetSelectedItem(); |
| | | if (!hItem) return 1; |
| | | |
| | | xml src; |
| | | src.load(srcfile); |
| | | xstring path = L"//*[(name()='file' or name()='folder') and @src='" + id + L"']"; |
| | | const wchar_t* str = src.xml(); |
| | | KXMLDOMElement srcele = src.selectSingleNode(path); |
| | | if (!srcele) return 1; |
| | | |
| | | |
| | | //find project folder |
| | | xstring prjguid = L""; |
| | | xstring domainguid = L""; |
| | | xstring rootguid = L""; |
| | | |
| | | HTREEITEM pitem = GetProjectItem(tv_folder,hItem); |
| | | if (pitem && pitem != hItem) |
| | | prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid"); |
| | | |
| | | HTREEITEM hP2Item = 0; |
| | | HTREEITEM hDomainItem = 0; |
| | | KXMLDOMElement e = tv_folder.GetItemData(hItem); |
| | | if (!tv_folder.GetParentItem(hItem)) |
| | | { |
| | | hDomainItem = hItem; |
| | | } |
| | | else |
| | | { |
| | | hP2Item = GetP2Item(tv_folder,hItem); |
| | | hDomainItem = tv_folder.GetParentItem(hP2Item); |
| | | } |
| | | |
| | | if (hP2Item) |
| | | { |
| | | KXMLDOMElement p = tv_folder.GetItemData(hP2Item); |
| | | rootguid = p.getAttribute(L"guid"); |
| | | } |
| | | if (hDomainItem) |
| | | { |
| | | KXMLDOMElement d = tv_folder.GetItemData(hDomainItem); |
| | | domainguid = d.getAttribute(L"guid"); |
| | | } |
| | | int lens; |
| | | KXMLDOMNodeList nodes = srcele.selectNodes(L"node()"); |
| | | lens = nodes.length(); |
| | | for (int i = 0; i < lens; i++) |
| | | { |
| | | KXMLDOMElement child = nodes.item(i); |
| | | ImportItem(hItem, child, prjguid, domainguid, rootguid); |
| | | } |
| | | |
| | | return 1; |
| | | } |
| | | }; |