LiFan
昨天 d4726c427464d5fa50c9fce848831c4cec36d8d1
jrj/xframe/devloper/XDevEditXFile.cpp
@@ -8,12 +8,13 @@
#include <xcontrol/xsedit.hpp>
#include <xcontrol/xcombobox.hpp>
#include <xcontrol/xreport.hpp>
#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
class export XDevEditXFile : public xwin
class export XDevEditXFile : public XDevEditPage
{
   public:
   XDevEditXFile(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
   XDevEditXFile(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
   static XDevEditXFile* CreateInstance(void* implPtr, void* hWnd)
   {
@@ -25,6 +26,7 @@
   xnode   m_agentNode;   //Agent Condition
   xstring   m_agentCond;   //Agent Node
public:
   int SetAgent()
   {
      /*      xstring xfNodeAgentArea  = L"agentarea";
@@ -156,7 +158,7 @@
         xml x;
         if (!x.loadXML(content))
         {
            KXMLDOMParseError pError = x.parseError;
            KXMLDOMParseError pError = x.parseError();
            if (pError)
            {
               xstring str = pError.srcText();
@@ -180,8 +182,8 @@
         xstring sType = OnGetType();
         if (sType == L"xml.xsd")
         {
            xstring sError;
            x.ValidSchema(content, &sError);
            BSTR sError= nullptr;
            x.ValidSchema((const wchar_t* )content.c_str(), sError);
            trace(sError);
         }
      }
@@ -210,7 +212,7 @@
                              else if (sType == L"xml.xsd")
                              {
                                 xml doc;
                                 x.GetSchemaXml(content,doc);
                                 x.GetSchemaXml((LPTSTR)content.c_str(), doc);
                                 //trace(doc.xml());
                                 auto e = doc.selectSingleNode(L"root/schema");
                                 if (e) {
@@ -243,7 +245,7 @@
      {
         HTREEITEM hP2Item = 0;
         HTREEITEM hDomainItem = 0;
         if (tv_folder.GetParentItem(hItem) <= 0)
         if (!tv_folder.GetParentItem(hItem))
         {
            hDomainItem = hItem;
         }
@@ -255,7 +257,7 @@
            //find project folder
            xstring prjguid = L"";
            int pitem = GetProjectItem(tv_folder,hItem);
            HTREEITEM pitem = GetProjectItem(tv_folder,hItem);
            if (pitem)
               prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
@@ -267,13 +269,13 @@
               {
                  auto f = e.selectSingleNode(L"//*[@uri='" + name + L"']");
                  if (f) {
                     xstring guid = KXMLDOMElement(f).selectSingleNode(L"@guid").text;//.getAttribute(L"guid");
                     xstring guid = f.selectSingleNode(L"@guid").text();//.getAttribute(L"guid");
                     if (guid == L"")
                        return "";
                        return L"";
                     arg.AddArg(L"guid",guid);
                  }
   else
      return "";
      return L"";
   }
   KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
   xstring guid = p.getAttribute(L"guid");
@@ -291,9 +293,9 @@
      return L"";
   }
int OnDoubleClicked(ref TNotifyEvent evt,int param)
int OnDoubleClicked(TEvent* evt,LPARAM param)
{
   ref DWNMHDR  hdr = evt.pnmh;
   DWNMHDR&  hdr = *(DWNMHDR*)evt->notify.pnmh;
   int row = hdr.row;
   KXMLDOMElement e = xp.GetRowElement(row);
   xstring filename = e.getAttribute(L"type");
@@ -301,7 +303,7 @@
   {
      xstring xsd = GetXSD(L"" + filename);
      xml x;
      x.GetSchemaXml(xsd,x);
      x.GetSchemaXml((LPTSTR)xsd.c_str(), x);
      trace(x.xml());
      /*         xml x = new xml;
@@ -332,10 +334,12 @@
   int OnAttachEvent()
   {
      //绑定工具条点击事件
      AttachEvent(L"WM_XCOMMAND",OnXCommand);
      AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXFile::OnXCommand);
      //获取焦点事件,用于重置工具条
      AttachEvent(L"WM_SETFOCUS",OnSetFocus);
      AttachEvent(L"xreport",L"DWV_DOUBLECLICKED",OnDoubleClicked);
      AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXFile::OnSetFocus);
      AttachEvent(L"xreport",L"DWV_DOUBLECLICKED", (FEvent)&XDevEditXFile::OnDoubleClicked);
      return 1;
   }
   int LoadData()