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

📄 workspace.h

📁 用bcg库编写的java IDE 源码
💻 H
字号:
// WorkSpace.h: interface for the CWorkSpace class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_WORKSPACE_H__B3BF9DBF_1547_40D3_B81A_9387A7F91EAD__INCLUDED_)
#define AFX_WORKSPACE_H__B3BF9DBF_1547_40D3_B81A_9387A7F91EAD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include "OptWorkSpcBar.h"
class CCoreToolJavaw;
class CDevToolJavacPage;
class CCoreToolJavaw;

class CDevToolJavacPage;
class CToolManager;
class CFileViewTree;
class CProject;
struct CProjectFile;
struct CProjectFileFolder;
class CJavaTextBuffer;

struct CWorkSpcItem
{
  UINT m_nItemType;
  int  m_nStatus;
  void *m_pItem;
  CWorkSpcItem(){m_nStatus =0;}
  ~CWorkSpcItem()
  {
    int x =0;
  }
};

class CWorkSpace  
{
    CString m_szpWorkSpcName;
	CString m_szpPath;
	CList<CProject*,CProject*> m_Projects;
	BOOL m_bModified;
	CProject* m_pActiveProject;
	void close();
public:
	void SetActiveProject(CString strProject);
	CWorkSpcItem* m_pItem;	HTREEITEM m_hLocation;
    CFileViewTree* getFileView();
	CWorkSpace();
	virtual ~CWorkSpace();
	BOOL CreateWorkSpc(CString szpName,CString szpPath,BOOL bCreateProject = FALSE);
	BOOL CreateProject(CString szpName,CString szpPath);
	BOOL OpenWorkSpc(CString szpPath,CTreeCtrl *pTreeCtrl);
	void AddProject(CString szpName,CString szpPath,CTreeCtrl *pTreeCtrl);
	void AddFile(CString szpName,CString szpPath,CString szpFolder,
		CTreeCtrl *pTreeCtrl,void* pProj);
	void FillCombo(CComboBox *pCombo);
	CString getPath(){return m_szpPath;}
	CString getName(){return m_szpWorkSpcName;}
	CProject *getProject(CString szpName);
	void SaveWorkSpc();
	BOOL Modified(){return m_bModified;}
    BOOL OpenProject(CString szpPath, CTreeCtrl *pTreeCtrl);
	void CreateOnOpenProject(CString szpName,CString szpPath);
	void SaveSetting();
	void LoadSetting();
	void NewFolder(CString szpName,CString szpExts,CString szpProject);
	void AddFiles(CStringList* pNames,CString szpFolder,CString szpProject);
    CProject* GetActiveProject(){return m_pActiveProject;}
	void OpenFile(CString szpProj,CString strFolder,CString szpFile);


	void AcquireDataToRunJavac(CMapStringToString* lszpList,int& nConfig);
	void AcquireDataToRunJavaw(CMap<CString,CString&,int,int&>*lpCommands);
};


class CProject
{
   CString m_szpProjectName;
   CString m_szpPath;
   CList<CProjectFileFolder*,CProjectFileFolder*> m_FileFolders;
   
   CToolManager* m_pToolManager;
public:
   CWorkSpcItem* m_pItemFileView;
   CWorkSpcItem* m_pItemClassView;
   CWorkSpcItem* m_pItemResView;
   CFileViewTree* getFileView();
   HTREEITEM m_hLocation;
   CProject();
   virtual ~CProject();
   BOOL CreateProject(LPCTSTR szpName,LPCTSTR szpPath,LPCTSTR szpWorkSpc = NULL);
   void AddFile(CString szpName,CString szpPath,CString szpFolder,
	                                          CTreeCtrl *pTreeCtrl);
   void AddFiles(CStringList* pNames,CString szpFolder);
   BOOL OpenProject(LPCTSTR szpPath,CTreeCtrl *pTreeCtrl,HTREEITEM hParent);
   CString getName(){return m_szpProjectName;}
   CString getPath(){return m_szpPath;}
   CProjectFileFolder* getFileFolder(CString szpName,CString szpExt);
   CProjectFileFolder* createFileFolder(CString szpName,CString szpExt,CTreeCtrl* pTreeCtrl);
   void SaveProject();
   CProjectFile* getFile(CString strFolder,CString szpFile);
   void NewFolder(CString szpName,CString szpExts);
   void OpenFile(CString strFolder,CString szpFile);

   void AcquireDataToRunJavac(CMapStringToString* lszpList,int& nConfig);
   void AcquireDataToRunJavaw(CMap<CString,CString&,int,int&>*lpCommands);

   CToolManager* GetToolMgr(){return m_pToolManager;}
};

class CJavaDeclManager;

struct CProjectFile
{
   CString           m_szpName;
   CString           m_szpPath;
   HTREEITEM         m_hLocation;
   CWorkSpcItem*     m_pItem;
   CString           m_szpStat;
   CRect             m_frmRect;
   BOOL              m_bInit;
   CJavaDeclManager* m_pDeclManager;
   CProjectFile(CString strPath);
   ~CProjectFile();
};

struct CProjectFileFolder
{
   CStringList m_Extensions;
   CString m_szpName;
   HTREEITEM m_hLocation;
   CList<CProjectFile*,CProjectFile*> m_Files;
   CWorkSpcItem* m_pItem;
   CProjectFileFolder()
   {


   }
   ~CProjectFileFolder()
   {
     for(POSITION nPos = m_Files.GetHeadPosition(); nPos != NULL;)
		 delete m_Files.GetNext(nPos);
	 delete m_pItem;
   }

   CProjectFile* getFile(CString szpFile)
   {
     for(POSITION nPos = m_Files.GetHeadPosition(); nPos != NULL;)
	 {
       CProjectFile* pFile = m_Files.GetNext(nPos);
	   if(pFile->m_szpName.Compare(szpFile) == 0)
		   return pFile;
	 }return NULL;
   }
   void concanateExts(CString& szpExts)
   {
     for(POSITION nPos = m_Extensions.GetHeadPosition(); nPos != NULL;)
       szpExts += m_Extensions.GetNext(nPos)+',';
	   
     szpExts.TrimRight(',');
   }
   void deconcanate(CString& szpExts)
   {
      int pos = szpExts.Find(',');
	  for(pos; pos != -1;pos = szpExts.Find(','))
	  {
         m_Extensions.AddTail(szpExts.Left(pos));
		 szpExts = szpExts.Right(szpExts.GetLength()-pos-1);
	  }
	  if(!szpExts.IsEmpty())m_Extensions.AddTail(szpExts);
   }
};
#endif // !defined(AFX_WORKSPACE_H__B3BF9DBF_1547_40D3_B81A_9387A7F91EAD__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -