From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/xframe/devloper/XDevEditXWorkNode.cpp | 572 ++++++++------------------------------------------------
1 files changed, 87 insertions(+), 485 deletions(-)
diff --git a/jrj/xframe/devloper/XDevEditXWorkNode.cpp b/jrj/xframe/devloper/XDevEditXWorkNode.cpp
index f26ab17..31989eb 100644
--- a/jrj/xframe/devloper/XDevEditXWorkNode.cpp
+++ b/jrj/xframe/devloper/XDevEditXWorkNode.cpp
@@ -4,544 +4,150 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditWorkNode : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditWorkNode(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditWorkNode* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditWorkNode* pWin = new XDevEditWorkNode(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
+ xaserverarg arg;
+ //xdwgrid dw_list;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
public:
- int trace(xstring msg)
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ /*
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
+ {
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }
+ */
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt, LPARAM p)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
+ //重置工具条
+ SetAgent();
return 1;
}
- xstring ProcessDevCmd(xstring cmd, xstring ext)
+ int LoadData()
{
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
+ SetArg();
+ if (!GetWinParam()) return 1;
+ xstring content = GetData();
+ if (content != L"")
{
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
+ xsedit xs = GetControl(L"xcontent");
+ xs.LoadContent(content,L".xml");
+ xml x;
+ auto xdoc = x;
+ xdoc.load(content);
+ xstring s = xdoc.xml();
+ trace(s);
+
+ //IXMLDOMDocument xdoc = x.GetXmlDoc();
+ //IXMLDOMElement e = x.GetXmlDoc().selectSingleNode(L"config/ruler");
}
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
+ /*arg = GetParam();
+ if(arg)
{
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
+ xstring val;
+ xcontrol xc;
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
+ 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);
+ }*/
return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ if (comdid == L"xmWorkNodeSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
+ HCURSOR hCursor = xutil::SetCursorWait();
+
+ xstring content;
+ xsedit xs = GetControl(L"sqlcontent");
+ xs.GetContent(content);
+ SaveContent(content);
+
+ xutil::RestoreCursor(hCursor);
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmPreview")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
}
- else if (comdid == L"xmClearBuffer")
+ else if (comdid == L"xmWorkNodeSelect")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
}
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
+ else if (comdid == L"xmWorkNodeSelectEx")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- 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();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"xmWorkNodeSelectEx1")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
- }
- else if (comdid == L"xmUpdateProject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
}
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt, LPARAM p)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditWorkNode::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditWorkNode::OnSetFocus);
return 1;
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,12 +155,8 @@
int onload()
{
- sheet_Count = -1;
OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
+ LoadData();
return 1;
}
--
Gitblit v1.9.3