📄 toolmanager.cpp
字号:
// ToolManager.cpp: implementation of the CToolManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "VisualJava.h"
#include "ToolManager.h"
#include "toolpages.h"
#include "xmlsupport.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CToolManager::CToolManager()
{
m_bModified = FALSE;
}
CToolManager::~CToolManager()
{
if(m_bModified&&m_lxmlSettings.GetCount())
{
//write settings to file
CStdioFile writer;
if(!writer.Open(m_szpSettingsSrc,CFile::modeWrite|CFile::modeCreate))
return;
writer.WriteString("<!--BugfreeSoft Visual Java IDE Project tools Setting File-->\n");
writer.WriteString("<!--PLEASE DO NOT EDIT THIS FILE, IF U'D LIKE YOUR PRODUCT TO WORK CORRECTLY, OTHERWISE GO RIGHT AHEAD:)-->\n\n\n");
writer.WriteString("<tools>\n");
XMLelement* pXMLTools = m_lxmlSettings.GetHead();
for(POSITION pos = pXMLTools->m_lNestedElements.GetHeadPosition(); pos != NULL;)
{
XMLelement* pXMLTool = pXMLTools->m_lNestedElements.GetNext(pos);
if(pXMLTool->m_strElementName.Compare("javac") == 0)
SaveJavacSettings(&writer,pXMLTool);
else
if(pXMLTool->m_strElementName.Compare("javaw") == 0)
SaveJavawSettings(&writer,pXMLTool);
}
writer.WriteString("</tools>\n");
writer.Close();
}
for(POSITION pos = m_lxmlSettings.GetHeadPosition(); pos != NULL;)
delete m_lxmlSettings.GetNext(pos);
}
void CToolManager::SaveJavacSettings(CStdioFile* pWriter,
XMLelement* pXMLTool)
{
pWriter->WriteString(" <javac configsrc=\""+pXMLTool->m_lAttributes.GetHead()->m_strValue+"\">\n");
XMLelement* pXMLSrcFiles = pXMLTool->m_lNestedElements.GetHead();//<srcFiles>
pWriter->WriteString(" <srcFiles>\n");
for(POSITION pos = pXMLSrcFiles->m_lNestedElements.GetHeadPosition(); pos != NULL;)
{
XMLelement* pXMLFile = pXMLSrcFiles->m_lNestedElements.GetNext(pos);
pWriter->WriteString(" <file name=\""+pXMLFile->m_lAttributes.GetHead()->m_strValue+"\">\n");
pWriter->WriteString(" <options>\n");
XMLelement* pXMLOpts = pXMLFile->m_lNestedElements.GetHead();//<options>
for(POSITION _pos = pXMLOpts->m_lNestedElements.GetHeadPosition(); _pos !=NULL;)
{
XMLelement* pXMLOpt = pXMLOpts->m_lNestedElements.GetNext(_pos);
POSITION __pos = pXMLOpt->m_lAttributes.GetHeadPosition();
if(pXMLOpt->m_lAttributes.GetCount() == 3)
{
CString strName = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strCheck = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strArgs = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
pWriter->WriteString(" <option name=\""+strName+"\" check=\""+strCheck+"\" args=\""+strArgs+"\"/>\n");
}
else
{
CString strName = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strCheck = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
pWriter->WriteString(" <option name=\""+strName+"\" check=\""+strCheck+"\"/>\n");
}
}
pWriter->WriteString(" </options>\n");
pWriter->WriteString(" </file>\n");
}
pWriter->WriteString(" </srcFiles>\n");
pWriter->WriteString(" </javac>\n");
}
void CToolManager::SaveJavawSettings(CStdioFile* pWriter,
XMLelement* pXMLTool)
{
pWriter->WriteString(" <javaw>\n");
XMLelement* pElement = pXMLTool->m_lNestedElements.GetHead();//<classFiles>
pWriter->WriteString(" <classFiles>\n");
for(POSITION pos =pElement->m_lNestedElements.GetHeadPosition(); pos != NULL;)
{
XMLelement* pXMLFile = pElement = pElement->m_lNestedElements.GetNext(pos);
pWriter->WriteString(" <file name=\""+pXMLFile->m_lAttributes.GetHead()->m_strValue+"\" prompt=\""+pXMLFile->m_lAttributes.GetTail()->m_strValue+"\">\n");
pWriter->WriteString(" <options>\n");
pXMLFile = pXMLFile->m_lNestedElements.GetHead();//<options>
for(POSITION _pos = pXMLFile->m_lNestedElements.GetHeadPosition(); _pos !=NULL;)
{
XMLelement* pXMLOpt = pXMLFile->m_lNestedElements.GetNext(_pos);
POSITION __pos = pXMLOpt->m_lAttributes.GetHeadPosition();
if(pXMLOpt->m_lAttributes.GetCount() == 3)
{
CString strName = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strCheck = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strArgs = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
pWriter->WriteString(" <option name=\""+strName+"\" check=\""+strCheck+"\" args=\""+strArgs+"\"/>\n");
}
else
{
CString strName = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strCheck = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
pWriter->WriteString(" <option name=\""+strName+"\" check=\""+strCheck+"\"/>\n");
}
}
pWriter->WriteString(" </options>\n");
pWriter->WriteString(" </file>\n");
}
pWriter->WriteString(" </classFiles>\n");
pWriter->WriteString(" </javaw>\n");
}
void CToolManager::LoadToolSettings(CString szpSrc)
{
m_szpSettingsSrc = szpSrc;
CVisualJavaApp::LoadXML(m_szpSettingsSrc,&m_lxmlSettings);
}
void CToolManager::AcquireDataToRunJavac(CMapStringToString* lszpList,int& nConfig)
{
XMLelement* pXMLJavac = GetXMLObject("javac");
CString strConfig = pXMLJavac->m_lAttributes.GetHead()->m_strValue;
nConfig = atoi(strConfig);
XMLelement* pXMLSrcFiles = pXMLJavac->m_lNestedElements.GetHead();
for(POSITION pos = pXMLSrcFiles->m_lNestedElements.GetHeadPosition(); pos !=NULL;)
{
XMLelement* pXMLSrc = pXMLSrcFiles->m_lNestedElements.GetNext(pos);
CString strName = pXMLSrc->m_lAttributes.GetHead()->m_strValue;
CString strOptions;
XMLelement* pXMLOptions = pXMLSrc->m_lNestedElements.GetHead();
for(POSITION _pos = pXMLOptions->m_lNestedElements.GetHeadPosition(); _pos !=NULL;)
{
XMLelement* pXMLOpt = pXMLOptions->m_lNestedElements.GetNext(_pos);
POSITION __pos = pXMLOpt->m_lAttributes.GetHeadPosition();
CString strName = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strCheck = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
CString strArgs;
if(strCheck.Compare("1") == 0)
{
if(__pos)
strArgs = pXMLOpt->m_lAttributes.GetNext(__pos)->m_strValue;
if(strName.Compare("-classpath") == 0)
strOptions +=" -classpath "+strArgs;
else
if(strName.Compare("-d") == 0)
strOptions +=" -d "+strArgs;
else
if(strName.Compare("-encoding") == 0)
strOptions +=" -encoding "+strArgs;
else
if(strName.Compare("-g:{keyword list}") == 0)
strOptions +=" -g: "+strArgs;
else
if(strName.Compare("-source") == 0)
strOptions +=" -source "+strArgs;
else
if(strName.Compare("-sourcepath") == 0)
strOptions +=" -sourcepath "+strArgs;
else
if(strName.Compare("-target") == 0)
strOptions +=" -target "+strArgs;
else
if(strName.Compare("-bootclasspath") == 0)
strOptions +=" -bootclasspath "+strArgs;
else
if(strName.Compare("-extdirs") == 0)
strOptions +=" -extdirs "+strArgs;
else
if(strName.Compare("-Xstdout") == 0)
strOptions +=" -Xstdout "+strArgs;
else
if(strName.Compare("-J") == 0)
strOptions +=" -J "+strArgs;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -