mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/MI-38.git
synced 2026-01-24 01:35:40 +03:00
04.07.2022
This commit is contained in:
128
s1000d/Converter14/s1000d_manager.h
Normal file
128
s1000d/Converter14/s1000d_manager.h
Normal file
@@ -0,0 +1,128 @@
|
||||
#ifndef S1000D_MANAGER_H
|
||||
#define S1000D_MANAGER_H
|
||||
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
//#include <QXmlStreamWriter>
|
||||
//#include <QXmlStreamReader>
|
||||
//#include <QXmlStreamAttribute>
|
||||
#include <QDomDocument>
|
||||
#include "ru_const.h"
|
||||
#include "splashform.h"
|
||||
#include <QApplication>
|
||||
#include "QMessageBox"
|
||||
#include <QElapsedTimer>
|
||||
#include <QProcess>
|
||||
#include <QDateTime>
|
||||
|
||||
enum _moduleType { mtDDN, mtDML, mtDM, mtPM, mtUNKNOWN };
|
||||
enum _schemeType { stDDN, stDML, stPM, stAPPLICCROSSREFTABLE, stPRDCROSSREFTABLE, stCONDCROSSREFTABLE, stDESCRIPT, stPROCED, stPROCESS,
|
||||
stCOMREP, stFRONTMATTER, stBREX, stBRDOC, stLEARNING, stCREW, stFAULT, stIPD, stCHECKLIST, stNOTATIONS, stCONTAINER, stXLINK, stWRNGFLDS, stUNKNOWN};
|
||||
|
||||
class S1000D_Manager
|
||||
{
|
||||
public:
|
||||
S1000D_Manager();
|
||||
~S1000D_Manager();
|
||||
|
||||
bool OpenProjectDirectory(const QString& projectPath, QString& schemasPath); // старое
|
||||
void prepareSaveProject(); // старое
|
||||
void SaveProject();
|
||||
|
||||
//static bool validateXML(const QString &xsdschema, const QString &xmlschema);
|
||||
QDomNode findElementRec(QDomNode domNode, QString path);
|
||||
QDomNode findElement(QString path);
|
||||
//void searchPrepare();
|
||||
//QDomNode searchNodeWithTag(QString tag); //QDomNode startNode,
|
||||
//QDomNode searchNodeWithAttr(QString attrName, QString attrVal); //QDomNode startNode,
|
||||
QString makeNodeXPath(QDomNode node);
|
||||
QDomNode getNodeFromXPath(QString path, bool debugTrace=false);
|
||||
QString getNodeText(QString path);
|
||||
void setNodeText(QString path, QString text);
|
||||
void deleteNode(QString path);
|
||||
int createNode(QString path, QString nodeName);
|
||||
bool isNodeCreated(QString path);
|
||||
QString getNodeAttr(QString path, QString attrName);
|
||||
void setNodeAttr(QString path, QString attrName, QString attrVal);
|
||||
void deleteNodeAttr(QString path, QString attrName);
|
||||
QStringList getNodeAllChilds(QString path);
|
||||
int getNodeChildsWithNameCount(QString path, QString childNodeName);
|
||||
int getNodePathIndex(QString name);
|
||||
QString dmIdentString(QString dmIdentPath);
|
||||
QString pmIdentString(QString pmIdentPath);
|
||||
QString dmCodeIdentString(QDomNode node);
|
||||
void setCurItem(int ind);
|
||||
void clearItems();
|
||||
|
||||
void buildPMTree(int pmItemInd); // старое
|
||||
void replaceCurItem_pmCode(QString new_Title, QString new_modelIdentCode, QString new_pmIssuer, QString new_pmNumber, QString pmVolume);
|
||||
void moveItemToPM(int itemInd, int pmInd, int pmContextEntryIndex);
|
||||
void replaceCurItem_dmCode(QString new_techName, QString new_infoName,
|
||||
QString new_modelIdentCode, QString new_systemDiffCode,
|
||||
QString new_systemCode, QString new_subSystemCode, QString new_subSubSystemCode, QString new_assyCode,
|
||||
QString new_disassyCode, QString new_disassyCodeVariant,
|
||||
QString new_infoCode, QString new_infoCodeVariant,
|
||||
QString new_itemLocationCode, QString new_learnCode, QString new_learnEventCode);
|
||||
|
||||
int createPM(int parentItemInd, int insertAfterChildNum);
|
||||
int createDM(int parentItemInd, int insertAfterChildNum, QString scheme);
|
||||
QDomElement createEmpty_pmRef(QString parent_modelIdentCode, QString parent_pmIssuer);
|
||||
QDomElement createEmpty_dmRef(QString parent_modelIdentCode);
|
||||
void deleteItem(int itemInd);
|
||||
_schemeType getSchemeTypeByStr(QString str);
|
||||
void resetICN();
|
||||
QString genICN();
|
||||
bool copyDir(const QString &srcPath, const QString &dstPath);
|
||||
|
||||
void fillManifest(int itemIndex, QDomNode curOrgNode, QDomNode resNode, QDomDocument manifest);
|
||||
bool exportS1000D(QString dstDir, QString packFileName, QString packTitle, SplashForm* splash);
|
||||
bool exportSCORM(QString dstDir, QString packFileName, QString packTitle, SplashForm* splash);
|
||||
QStringList html;
|
||||
void addHTML(int lvl, QString s);
|
||||
void catHTML(QString s);
|
||||
|
||||
|
||||
int bugCnt=0;
|
||||
RU_Const ru_const;
|
||||
//struct searchListStruct {
|
||||
// QString name;
|
||||
// QDomNode node;
|
||||
//};
|
||||
|
||||
struct ItemStruct { // Основная структура хранения данных
|
||||
QString fileName, S1000D_fileName, SCORM_fileName;
|
||||
QString fileCode;
|
||||
_moduleType moduleType;
|
||||
_schemeType schemeType;
|
||||
int parent; // -1 = root
|
||||
QList<int> child;
|
||||
QDomDocument doc;
|
||||
bool isReady, dmDataFilled, toExport, isQualifyed;
|
||||
int selectedInDMCodeList;
|
||||
QString importedFromLyX;
|
||||
QStringList lyxLog, html, inPackages;
|
||||
QString origTitle;
|
||||
} *item;
|
||||
int itemIndex;
|
||||
|
||||
QList <ItemStruct> items;
|
||||
QList <QString> log;
|
||||
bool DBG=true;
|
||||
QString projectPath="";
|
||||
QString rootLyXfile="";
|
||||
int ICN_UI=0;
|
||||
|
||||
bool isConsole=false;
|
||||
int timeConvert, timeSCORM, timeS1000D;
|
||||
struct PackageStruct {
|
||||
QString cfgName, title, exportFileName;
|
||||
};
|
||||
QList <PackageStruct> packages;
|
||||
|
||||
void LoadPackagesXML();
|
||||
void SavePackagesXML();
|
||||
void AddPackageContent(QDomNode node, int ind);
|
||||
void ParsePackageContent(QDomNode node, int parentItem);
|
||||
};
|
||||
|
||||
#endif // S1000D_MANAGER_H
|
||||
Reference in New Issue
Block a user