⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toolmanager.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -