From f7c01240b27f0ad97feb9115b238d7a44b4b56b2 Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期三, 17 七月 2024 17:06:12 +0800 Subject: [PATCH] update --- jrj/project/business/SystemSettings/Developer.Synch.cpp | 301 ++++++++++++++++++++++++++----------------------- 1 files changed, 159 insertions(+), 142 deletions(-) diff --git a/jrj/project/business/SystemSettings/Developer.Synch.cpp b/jrj/project/business/SystemSettings/Developer.Synch.cpp index ba7e601..8789e6e 100644 --- a/jrj/project/business/SystemSettings/Developer.Synch.cpp +++ b/jrj/project/business/SystemSettings/Developer.Synch.cpp @@ -1,45 +1,60 @@ -use "xcontrol.vframe.vbusiness.vd" -use "xbase.vframe.vbusiness.vd" +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <wobject/xdouble.hpp> +#include <xcontrol/xlayersheet.hpp> +#include <xcontrol/xdatetimepick.hpp> -unit trade -[ - class DeveloperSynch : public xframe + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; + class __declspec(dllexport) DeveloperSynch : public xframe { + public: xtreeview tv_gs; xsedit dw_log; - int[100] nItems; + int nItems; int nCount; - string sContent; - - string ProcessDevCmd(string cmd,string ext, string aurl="", bool needlogin=false) + xstring sContent; + public: + DeveloperSynch(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static DeveloperSynch* CreateInstance(void* implPtr, void* hWnd) { - if(aurl == "") aurl = GetServerUrl(); + DeveloperSynch* pWin = new DeveloperSynch(implPtr, (HWND)hWnd); + return pWin; + } + xstring ProcessDevCmd(xstring cmd,xstring ext, xstring aurl=L"", bool needlogin=false) + { + if(aurl == L"") aurl = GetServerUrl(); //alert(aurl); - string d = xaserver::ProcessCmd(aurl,"uri.hxsoft.com/xaserver/developer "+cmd,ext,needlogin); + xstring d = xaserver::ProcessCmd(aurl,L"uri.hxsoft.com/xaserver/developer "+cmd,ext,needlogin); return d; } - string ProcessDevCmd2(string cmd,string ext, string aurl="", bool needlogin=false) + xstring ProcessDevCmd2(xstring cmd,xstring ext, xstring aurl=L"", bool needlogin=false) { - if(aurl == "") aurl = GetServerUrl(); + if(aurl == L"") aurl = GetServerUrl(); //alert(aurl); - string d = xaserver::ProcessCmd(aurl,"uri.hxsoft.com/xaserver/dev:"+cmd,ext,needlogin); + xstring d = xaserver::ProcessCmd(aurl,L"uri.hxsoft.com/xaserver/dev:"+cmd,ext,needlogin); return d; } int GetProjectItem(int hItem) { int pitem = hItem; - string typ; + xstring typ; while(true) { - int h = xtreeview::GetItemData(tv_gs.GetId(), pitem); - msxml::IXMLDOMElement e = trust(h as msxml::IXMLDOMElement); - typ = GetEleString(e, "@tagname"); - if(typ=="project")break; - pitem = xtreeview::GetParentItem(tv_gs.GetId(), pitem); + int h =tv_gs.GetItemData(tv_gs.GetId(), pitem); + KXMLDOMElement e = trust(h as KXMLDOMElement); + typ = GetEleString(e, L"@tagname"); + if(typ==L"project")break; + pitem =tv_gs.GetParentItem(tv_gs.GetId(), pitem); if(pitem<=0)break; } return pitem; @@ -51,30 +66,30 @@ int hP2Item = hItem; while(true) { - hDomainItem = xtreeview::GetParentItem(tv_gs.GetId(), hP2Item); + hDomainItem =tv_gs.GetParentItem(tv_gs.GetId(), hP2Item); if(xtreeview::GetParentItem(tv_gs.GetId(), hDomainItem)<=0)break; hP2Item = hDomainItem; } return hP2Item; } - string GetItemGuid(int hItem) + xstring GetItemGuid(int hItem) { - int h = xtreeview::GetItemData(tv_gs.GetId(), hItem); - msxml::IXMLDOMElement e = trust(h as msxml::IXMLDOMElement); - string guid = e.GetAttribute("guid"); + int h =tv_gs.GetItemData(tv_gs.GetId(), hItem); + KXMLDOMElement e = trust(h as KXMLDOMElement); + xstring guid = e.GetAttribute(L"guid"); return guid; } xaserverarg GetDataArg(int hItem, xaserverarg arg) { - int h = xtreeview::GetItemData(tv_gs.GetId(), hItem); - msxml::IXMLDOMElement e = trust(h as msxml::IXMLDOMElement); - string node = GetEleString(e, "@tagname"); + int h =tv_gs.GetItemData(tv_gs.GetId(), hItem); + KXMLDOMElement e = trust(h as KXMLDOMElement); + xstring node = GetEleString(e, L"@tagname"); //WriteLog(e.xml); - if(node=="File" || node=="file") + if(node==L"File" || node==L"file") { - string caption = e.getAttribute("caption"); + xstring caption = e.getAttribute(L"caption"); int hP2Item = 0; int hDomainItem = 0; @@ -84,35 +99,35 @@ }else { hP2Item = GetP2Item(hItem); - hDomainItem = xtreeview::GetParentItem(tv_gs.GetId(), hP2Item); + hDomainItem =tv_gs.GetParentItem(tv_gs.GetId(), hP2Item); } //find project folder - string prjguid=""; - int pitem = this.GetProjectItem(hItem); + xstring prjguid=L""; + int pitem = GetProjectItem(hItem); if(pitem > 0) prjguid = GetItemGuid(pitem); - //xaserverarg arg = new xaserverarg; - //arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("project.guid",prjguid); + //xaserverarg arg ; + //; + arg.AddArg(L"project.guid",prjguid); if(hP2Item) { if(hP2Item != hItem) { - string guid = e.getAttribute("guid"); - arg.AddArg("guid",guid); + xstring guid = e.getAttribute(L"guid"); + arg.AddArg(L"guid",guid); } - string guid2 = GetItemGuid(hP2Item); - arg.AddArg("root.guid",guid2); + xstring guid2 = GetItemGuid(hP2Item); + arg.AddArg(L"root.guid",guid2); }else if(hDomainItem > 0) { - string guid3 = GetItemGuid(hDomainItem); - arg.AddArg("domain.guid",guid3); + xstring guid3 = GetItemGuid(hDomainItem); + arg.AddArg(L"domain.guid",guid3); } return 1; } - else if(node=="folder" || node=="project") + else if(node==L"folder" || node==L"project") return 2; else return 0; @@ -120,103 +135,103 @@ int SaveData(int hItem) { - xcontrol xc = GetControl("surl"); - string surl = xc.GetText(); - if(surl == "") + xcontrol xc = GetControl(L"surl"); + xstring surl = xc.GetText(); + if(surl == L"") { - alert("请输入同步服务器地址"); + alert(L"请输入同步服务器地址"); return 1; } - string name = xtreeview::GetItemLabel(tv_gs.GetId(), hItem); - xaserverarg arg = new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); + xstring name =tv_gs.GetItemLabel(hItem); + xaserverarg arg ; + ; int ret = GetDataArg(hItem, arg); //alert(arg.GetString()); if(ret == 0) { - WriteLog(name+" 失败, 原因:获取工程或文件夹失败!"); + WriteLog(name+L" 失败, 原因:获取工程或文件夹失败!"); return -1; } else if(ret == 2) { ret = SynchFolder(hItem); if(ret == -1) - WriteLog(name+" 失败, 原因:获取文件数据失败!"); + WriteLog(name+L" 失败, 原因:获取文件数据失败!"); else if(ret == 0) - WriteLog(name+" 失败, 原因:复制文件失败!"); + WriteLog(name+L" 失败, 原因:复制文件失败!"); else WriteLog(name); return -1; } SynchFolder(hItem); - arg.AddArg("__name",name); - arg.AddArg("__url",surl); + arg.AddArg(L"__name",name); + arg.AddArg(L"__url",surl); synchServer(arg); - if(name.right(3) == ".vx" || name.right(5) == ".xpage") + if(name.right(3) == L".vx" || name.right(5) == L".xpage") { - arg.AddArg("__name",name + "[Code]"); - arg.AddArg("iscode","yes"); + arg.AddArg(L"__name",name + L"[Code]"); + arg.AddArg(L"iscode",L"yes"); synchServer(arg); } return 1; } - string GetFolderPath(int hItem) + xstring GetFolderPath(int hItem) { int k = hItem; - if(k == 0) return ""; - string src = ""; - //string name = ""; + if(k == 0) return L""; + xstring src = L""; + //xstring name = L""; while(k > 0) { - int h = xtreeview::GetItemData(tv_gs.GetId(), k); - k = xtreeview::GetParentItem(tv_gs.GetId(), k); - msxml::IXMLDOMElement e = trust(h as msxml::IXMLDOMElement); - string node = GetEleString(e, "@tagname"); - if(node != "File" && node != "file") + int h =tv_gs.GetItemData(tv_gs.GetId(), k); + k =tv_gs.GetParentItem(tv_gs.GetId(), k); + KXMLDOMElement e = trust(h as KXMLDOMElement); + xstring node = GetEleString(e, L"@tagname"); + if(node != L"File" && node != L"file") { - string tmp = GetEleString(e, "@src"); - //if(name == "") name = GetEleString(e, "@caption"); - if(tmp != "") + xstring tmp = GetEleString(e, L"@src"); + //if(name == L"") name = GetEleString(e, L"@caption"); + if(tmp != L"") { SynchFolder(k); - if(src == "") src = tmp; + if(src == L"") src = tmp; else { int j = 1; - int s = tmp.length(); - string t = tmp.right(j).left(1); - while(t != "\\" && j < s) + int s = tmp.length()(); + xstring t = tmp.right(j).left(1); + while(t != L"\\" && j < s) { //WriteLog(t); j++; t = tmp.right(j).left(1); } if(j >= s) - src = tmp+ "\\" + src; + src = tmp+ L"\\" + src; else - src = tmp.left(s - j)+ "\\" + src; + src = tmp.left(s - j)+ L"\\" + src; } } } } - if(src == "") + if(src == L"") { - //WriteLog(name+" 同步失败, 原因:获取文件数据失败0!"); - return ""; + //WriteLog(name+L" 同步失败, 原因:获取文件数据失败0!"); + return L""; } - //if(src.left(9) =="Projects\\") src = src.mid(9, src.length()); - src = "\\" + src;//.replace("Projects\\",""); + //if(src.left(9) ==L"Projects\\") src = src.mid(9, src.length()()); + src = L"\\" + src;//.replace(L"Projects\\",L""); //WriteLog(src); return src; } int SynchFolder(int hItem) { - string src = GetFolderPath(hItem); - if(src== "") return -1; - if(xaserver::FileCopy("devfolder8001", src, "devfolder5001", src) != 1) + xstring src = GetFolderPath(hItem); + if(src== L"") return -1; + if(xaserver::FileCopy(L"devfolder8001", src, L"devfolder5001", src) != 1) return 0; //WriteLog(src); return 1; @@ -224,34 +239,34 @@ int synchServer(xaserverarg arg) { - string name = arg.GetArgString("__name"); - string surl = arg.GetArgString("__url"); - string d = ProcessDevCmd("getobject",arg.GetString()); - if(d == "") + xstring name = arg.GetArgString(L"__name"); + xstring surl = arg.GetArgString(L"__url"); + xstring d = ProcessDevCmd(L"getobject",arg.GetString()); + if(d == L"") { - WriteLog(name+" 失败, 原因:获取文件数据失败!"); + WriteLog(name+L" 失败, 原因:获取文件数据失败!"); return -1; } //WriteLog(d); - arg.AddArg("content",d); - ProcessDevCmd("saveobject",arg.GetString(), surl,true); + arg.AddArg(L"content",d); + ProcessDevCmd(L"saveobject",arg.GetString(), surl,true); WriteLog(name); return 1; } - int WriteLog(string str) + int WriteLog(xstring str) { - if(sContent == "") + if(sContent == L"") sContent = str; else - sContent += "\r\n" + str; + sContent += L"\r\n" + str; //alert(sContent); - dw_log.SetContent(sContent, ""); + dw_log.SetContent(sContent, L""); return 1; } //焦点激活处理函数 - int OnSetFocus(ref TEvent evt,int param) + int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -262,7 +277,7 @@ { if(nCount >99) { - alert("同时同步的数量不能大于100个!"); + alert(L"同时同步的数量不能大于100个!"); return 1; } nItems[nCount] = hItem; @@ -290,17 +305,17 @@ } //命令发布函数 - int OnCmdDispatch(string comdid) + int OnCmdDispatch(xstring comdid) { - if(comdid != "synch") return 1; + if(comdid != L"synch") return 1; - int hCursor = xutil::SetCursorWait(); - sContent = ""; + HCURSOR hCursor = xutil::SetCursorWait(); + sContent = L""; for(int i=0; i<nCount; i++) { int p = nItems[i]; - //int h = xtreeview::GetItemData(tv_gs.GetId(), p); - //msxml::IXMLDOMElement e = trust(h as msxml::IXMLDOMElement); + //int h =tv_gs.GetItemData(tv_gs.GetId(), p); + //KXMLDOMElement e = trust(h as KXMLDOMElement); //alert(e.xml); SaveData(p); xtreeview::SetChecked(tv_gs.GetId(), p,0); @@ -310,13 +325,16 @@ return 0; } - int OnTreeCheckBoxSel(ref TNotifyEvent evt,int p) + int OnTreeCheckBoxSel(TEvent* evt, LPARAM p) { - ref TVNNMHDR nmtv = trust(evt.pnmh as ref TVNNMHDR); + TVNNMHDR* nmtv = (TVNNMHDR*)evt->notify.pnmh; + int hItem = nmtv.FromItem; - int hCursor = xutil::SetCursorWait(); + + HCURSOR hCursor = xutil::SetCursorWait(); int hwnd = nmtv.hwndFrom; - int c = 1 - xtreeview::GetChecked(hwnd, hItem); + + int c = 1 -tv_gs.GetChecked(hwnd, hItem); if(c == 1) Add(hItem); else @@ -326,52 +344,52 @@ } //命令处理事件 - int OnXCommand(ref TXCommandEvent evt,int param) + int OnXCommand(TEvent* evt, LPARAM param) { - return OnCmdDispatch(evt.pStrID); + return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 - AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent(L"WM_XCOMMAND", (FEvent)&DeveloperSynch::OnXCommand); //获取焦点事件,用于重置工具条 - //AttachEvent("WM_SETFOCUS",OnSetFocus); - AttachEvent("DevExplorer","TVN_CHECKBOXSEL",OnTreeCheckBoxSel); - AttachEvent("DevExplorer", "TVN_ITEMEXPANDING",OnTreeExpanding); + //AttachEvent(L"WM_SETFOCUS",OnSetFocus); + AttachEvent(L"DevExplorer",L"TVN_CHECKBOXSEL", (FEvent)&DeveloperSynch::OnTreeCheckBoxSel); + AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING", (FEvent)&DeveloperSynch::OnTreeExpanding); return 1; } - int OnTreeExpanding(ref TNotifyEvent evt,int lparam) + int OnTreeExpanding(TEvent* evt, LPARAM lparam) { - ref NMTREEVIEW nmtv = trust(evt.pnmh as ref NMTREEVIEW); + TVNNMHDR* nmtv = (TVNNMHDR*)evt->notify.pnmh; int hItem = nmtv.itemNew.hItem; int cItem=xtreeview::GetChildItem(tv_gs.GetId(), hItem); if(cItem > 0) return 1; - int p = xtreeview::GetItemData(tv_gs.GetId(), hItem); - msxml::IXMLDOMElement ele = trust(p as msxml::IXMLDOMElement); - string src =GetEleString(ele, "@src"); - string tagname =GetEleString(ele, "@tagname"); - if (src == "" || tagname == "file" || tagname == "File") return 1; + int p =tv_gs.GetItemData(tv_gs.GetId(), hItem); + KXMLDOMElement ele = trust(p as KXMLDOMElement); + xstring src =GetEleString(ele, L"@src"); + xstring tagname =GetEleString(ele, L"@tagname"); + if (src == L"" || tagname == L"file" || tagname == L"File") return 1; OnSetTree(hItem, GetFolderPath(hItem)); return 1; } - int OnSetTree(int pItem, msxml::IXMLDOMElement e) + int OnSetTree(int pItem, KXMLDOMElement e) { - msxml::IXMLDOMNodeList li=e.selectNodes("*"); + KXMLDOMNodeList li=e.selectNodes(L"*"); int i=0; - int s=li.length; + int s=li.length(); for (i=0;i<s;i++){ - msxml::IXMLDOMElement ele= li.item(s - i - 1); - string caption = GetEleString(ele, "@caption"); - string src =GetEleString(ele, "@src"); - string image =GetEleString(ele, "@image"); + KXMLDOMElement ele= li.item(s - i - 1); + xstring caption = GetEleString(ele, L"@caption"); + xstring src =GetEleString(ele, L"@src"); + xstring image =GetEleString(ele, L"@image"); int p = trust(ele as int); int hItem=xtreeview::InsertItem(tv_gs.GetId(), pItem,0,caption,p,image.toInt()); - string tagname =GetEleString(ele, "@tagname"); - if (src != "" && tagname != "file" && tagname != "File") + xstring tagname =GetEleString(ele, L"@tagname"); + if (src != L"" && tagname != L"file" && tagname != L"File") xtreeview::SetItemChild1(tv_gs.GetId(), hItem,1); OnSetTree(hItem, ele); } @@ -379,19 +397,19 @@ return 1; } - int OnSetTree(int hItem, string src) + int OnSetTree(int hItem, xstring src) { xml x=new xml; - x.setNativePointer(xml::CreateInstance()); - xaserverarg arg=new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("src",src); - if(xaserver::ExecXQuery(GetServerUrl(),"[Developer.Tree.xq]",arg.GetString(),x)!=1) + + xaserverarg arg; + ; + arg.AddArg(L"src",src); + if(xaserver::ExecXQuery(GetServerUrl(),L"[Developer.Tree.xq]",arg.GetString(),x)!=1) { - alert("读取节点失败!"); + alert(L"读取节点失败!"); return 1; } - msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; + KXMLDOMElement e = x.documentElement(); OnSetTree(hItem, e); return 1; } @@ -399,8 +417,8 @@ int onload() { nCount = 0; - tv_gs = GetControl("DevExplorer"); - dw_log = GetControl("xlog"); + tv_gs = GetControl(L"DevExplorer"); + dw_log = GetControl(L"xlog"); OnAttachEvent(); return 1; @@ -408,8 +426,7 @@ int onloaded() { - OnSetTree(0, "Projects/projects.xhw"); + OnSetTree(0, L"Projects/projects.xhw"); return 1; } - }; -] \ No newline at end of file + }; \ No newline at end of file -- Gitblit v1.9.3