Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/TArchSettingEditTools.h
T
2026-09-28 15:28:50 +08:00

183 lines
6.6 KiB
C++

#ifndef TARCHSETTINGEDITTOOLS_2009_01_15
#define TARCHSETTINGEDITTOOLS_2009_01_15
//#pragma once
#include "adui.h"
#include "acui.h"
#include <map>
#include "XMLDomNode.h"
#include "XMLDomNodes.h"
#include "XMLDomFile.h"
class TarchHotKeyInfo
{
public:
//CString m_strKeyTitl;//命令组名
CString m_strKeyName;//命令名
CString m_strCmdName;//调用函数的名字
CString m_strCmment;//命令描述
public:
TarchHotKeyInfo()
{
m_strKeyName = _T("");//命令名
m_strCmdName = _T("");//调用函数的名字
m_strCmment = _T("");//命令描述
}
TarchHotKeyInfo(const TarchHotKeyInfo&data)
{
m_strKeyName = data.m_strKeyName;//命令名
m_strCmdName = data.m_strCmdName;//调用函数的名字
m_strCmment = data.m_strCmment;//命令描述
}
TarchHotKeyInfo& operator=(const TarchHotKeyInfo&data)
{
m_strKeyName = data.m_strKeyName;//命令名
m_strCmdName = data.m_strCmdName;//调用函数的名字
m_strCmment = data.m_strCmment;//命令描述
return *this;
}
};
class CToolbarData;
typedef Array<CXMLNodeInfoEx> NodeInfoAry;
class CTArchSettingEditTools
{
public:
CTArchSettingEditTools(void);
void SetXMLDoc(CXMLDOMFile*pXMLDoc){m_pXMLDoc = pXMLDoc;}//指定要操作的文档
//将上华设置信息导出到指定路径的xml文档
BOOL ExportTArchSettingData(CString strPath);
//导入指定xml文件中的设置内容 xml文件格式必须符合上华设置文件格式
void ImportAllTArchSettingData(std::map<CString,NodeInfoAry> &importMapData);
public:
~CTArchSettingEditTools(void);
private:
// 导入上华设置内容
void ImportTArchSet(std::map<CString,NodeInfoAry> &importMapData);
////导入基本设置对话框内容
void ImportBaseSet(const Array<CXMLNodeInfoEx> &aryData);
void SetOneBasePara(const CXMLNodeInfoEx& data);
////导入墙柱加粗界面内容
void ImportWallPillarSet(const Array<CXMLNodeInfoEx> &aryData);
void SetWallPillarPara(const CXMLNodeInfoEx& data,TDbConfig *p);
//轻质隔墙材料
void ImportMaterialPattern1(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//填充墙材料
void ImportMaterialPattern2(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//填充墙1材料
void ImportMaterialPattern3(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//填充墙2材料
void ImportMaterialPattern4(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//砖墙柱材料
void ImportMaterialPattern5(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//石墙柱材料
void ImportMaterialPattern6(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//钢筋混凝土
void ImportMaterialPattern7(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//刚柱
void ImportMaterialPattern8(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
//导入高级选项内容
void ImportAdvancedSet(const Array<CXMLNodeInfoEx> &aryData);
// 导入自定义内容
////导入屏幕菜单
void ImportScreenMenu(const Array<CXMLNodeInfoEx> &aryData);
void SetScreenMenuData(const CXMLNodeInfoEx &data);
////导入工具条
void ImportToolBar(const Array<CXMLNodeInfoEx> &aryData);
////导入快捷键设置
void ImportHotKeySet(const Array<CXMLNodeInfoEx> &aryData);
void WritePgp(const Array<CXMLNodeInfoEx> &aryData);
////导入其他设置
void ImportOtherSet(const Array<CXMLNodeInfoEx> &aryData);
void SetFontProperty(const CXMLNodeInfoEx&nodeInfo);
//导入用户操作
void ImportUserOpreatorSet(const Array<CXMLNodeInfoEx> &aryData);
void SetUserOpreator(const CXMLNodeInfoEx&nodeInfo);
// 导出图形相关设置
void ExportDwgSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出墙柱设置
void ExportWallPillarSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出墙柱材料
void ExortMaterialPattern(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//轻质隔墙材料
void ExortMaterialPattern1(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//填充墙材料
void ExortMaterialPattern2(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//填充墙1材料
void ExortMaterialPattern3(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//填充墙2材料
void ExortMaterialPattern4(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//砖墙柱材料
void ExortMaterialPattern5(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//石墙柱材料
void ExortMaterialPattern6(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//钢筋混凝土
void ExortMaterialPattern7(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//刚柱
void ExortMaterialPattern8(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出高级选项内容
void ExortAdvancedSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出dict文档
void DictToXml(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出dict中的父节点项
void DictToXmlParentNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出dict中的叶子节点项
void DictToXmlLeafNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出自定义内容
//导出屏幕菜单
void ExportScreenMenu(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出工具条
void ExportToolBar(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出快捷键设置
void ExportHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr);
void ExportPgp(const CXMLDOMNodePtr& pXMLDOMNodePtr);
void ExportOneHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出其他设置
void ExportOtherSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//导出用户操作界面
void ExportUserOpreatorSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr);
//根据指定命令名在dbf数据库中找到相应的描述
CString FindComment(const CString &strCmd);
//查找xml节点值在指定属性中的位置
int GetIndex(const CXMLNodeInfoEx &data,const CString &strAttriName);
//根据/ 把节点路径字符串分割成数组
void GetListCtrlIndex(const CXMLNodeInfoEx &data,CStringArray &arystr);
//把一个字符串分成多个字符串 按空格分
void DevideStr(const CString &str,CStringArray &aryStr);
//得到子串在原字符串中的位置定义尽适用于 “asd sd fg” 中查询asd等以空格分界
int GetSubStrNumInStr(const CString &str,const CString strSub)
{
CString strTem;
CStringArray arystr;
int nPos = str.Find(_T(" "),0);//根据空格区分子字符串
int nStart = 0;
while (nPos!=-1)
{
int nNum = nPos-nStart;
strTem = str.Mid(nStart,nNum);//得到子串添加到数组
arystr.Add(strTem);
nStart = nPos+1;
nPos = str.Find(_T(" "),nPos+1);
}
int nSize = str.GetLength();
if (nStart-1<nSize-1)
{
strTem = str.Mid(nStart,nSize-nStart);
arystr.Add(strTem);
}
// Zyu modify on 100722,支持64位
//int nLen = arystr.GetSize();
INT_PTR nLen = arystr.GetSize();
int i =0;
for (;i<nLen;i++)//在数组中查找指定字符串在数组中位置
{
CString strTest = arystr.GetAt(i);
if (strSub==strTest)
{
return i;
}
}
return -1;//没有匹配的返回-1
}
private:
CXMLDOMFile* m_pXMLDoc;//需要操作的文档
DList<CToolbarData> m_lstToolbarData;
};
#endif