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