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

📄 devtooljavacpage.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DevToolJavacPage.cpp : implementation file
//

#include "stdafx.h"
#include "VisualJava.h"
#include "DevToolJavacPage.h"
#include "ToolManager.h"
#include "WorkSpace.h"
#include "xmlsupport.h"
#include "JOptionsArgDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


#define CPropertyPage CSAPrefsSubDlg
/////////////////////////////////////////////////////////////////////////////
// CDevToolJavacPage property page

static BOOL m_bInit = TRUE;
#define PANEL_DIR_LIST_RECT         CRect(0,25,210,195)
#define PANEL_DIR_LISTHEADER_RECT   CRect(0,0,210,25)
#define DIR_PANEL_SIZE              CSize(220,220)

#define ID_HEADER_SRC   0x2
#define ID_HEADER_ARG   0x3



 LPCTSTR CDevToolJavacPage::m_pOptions[] =
 {
    _T("-classpath"),
    _T("-d"),
	_T("-deprecation"),
	_T("-encoding"),
	_T("-g"),
	_T("-g:none"),
	_T("-g:{keyword list}"),
	_T("-help"),
	_T("-nowarn"),
	_T("-source"),
	_T("-sourcepath"),
	_T("-verbose"),
	_T("-target"),
	_T("-bootclasspath"),
	_T("-extdirs"),
	_T("-Xstdout"),
	_T("-Xswitchcheck"),
	_T("-J"),
	NULL
 };

 

IMPLEMENT_DYNCREATE(CDevToolJavacPage, CPropertyPage)

CDevToolJavacPage::CDevToolJavacPage() : CPropertyPage(CDevToolJavacPage::IDD)
{
	//{{AFX_DATA_INIT(CDevToolJavacPage)
	//}}AFX_DATA_INIT
}

CDevToolJavacPage::~CDevToolJavacPage()
{

}

void CDevToolJavacPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDevToolJavacPage)
	DDX_Control(pDX, IDC_ENC_COMBO, m_wndComboSel);
	DDX_Control(pDX, IDC_COMBO_OPTIONS_OPTIONS, m_wndOptOpt);
	DDX_Control(pDX, IDC_ARGFILE_LIST, m_wndArgList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDevToolJavacPage, CPropertyPage)
	//{{AFX_MSG_MAP(CDevToolJavacPage)
	ON_CBN_SELCHANGE(IDC_COMBO_OPTIONS_OPTIONS, OnSelchangeComboOptionsOptions)
	ON_BN_CLICKED(IDC_CHECK_APPLY_TO_ALL, OnCheckApplyToAll)
	//}}AFX_MSG_MAP

	ON_CBN_SELCHANGE(IDC_SRC_LIST,OnSetCurSelSrcList)
	ON_LBN_SETCURSEL(IDC_SRC_LIST,OnSetCurSelSrcList)

	ON_HD_ITEMCLICKED(IDC_STATIC_SRCHEADER,OnSrcHeaderItemClicked)

	ON_BL_ITEMBROWSE(IDC_SRC_LIST,OnBrowseSrcList)
	ON_BL_ITEMBROWSE(IDC_ARGFILE_LIST,OnBrowseArgList)

    ON_LBN_ITEMADDED(IDC_SRC_LIST,OnAddItemSourceList)
	ON_LBN_ITEMDEL(IDC_SRC_LIST,OnDelItemSourceList)

    //relational listbox
	ON_RL_CHECKCHANGED(IDC_LIST_JAVAC_OPTIONS,OnOptionCheckChanged)
	ON_RL_PULLDOWN(IDC_LIST_JAVAC_OPTIONS,OnOptionPullDown)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDevToolJavacPage message handlers
//	DDX_Control(pDX, IDC_LIST_JAVAC_OPTIONS, m_wndOptions);



BOOL CDevToolJavacPage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	m_imglist.Create(IDB_HEADERCTRL,16,2,RGB(255,0,255));

    m_wndOptions.SubclassDlgItem(IDC_LIST_JAVAC_OPTIONS,this);

	CRect rt;
	GetClientRect(&rt);
    

	//add options and thier associated data windows
	m_wndOptions.AddRelationalString(m_pOptions[0]);	
	m_wndOptions.AddRelationalString(m_pOptions[1]);    
	m_wndOptions.AddString(m_pOptions[2]);
	m_wndOptions.AddRelationalString(m_pOptions[3]);
	m_wndOptions.AddString(m_pOptions[4]);
	m_wndOptions.AddString(m_pOptions[5]);
	m_wndOptions.AddRelationalString(m_pOptions[6]);
	m_wndOptions.AddString(m_pOptions[7]);
	m_wndOptions.AddString(m_pOptions[8]);
	m_wndOptions.AddRelationalString(m_pOptions[9]);
	m_wndOptions.AddRelationalString(m_pOptions[10]);
    m_wndOptions.AddString(m_pOptions[11]);
	m_wndOptions.AddRelationalString(m_pOptions[12]);
	m_wndOptions.AddRelationalString(m_pOptions[13]);
	m_wndOptions.AddRelationalString(m_pOptions[14]);
	m_wndOptions.AddRelationalString(m_pOptions[15]);
    m_wndOptions.AddString(m_pOptions[16]);
    m_wndOptions.AddString(m_pOptions[17]);
	
	/******************************for manual**********************************/
	{
       CRect rc(rt.left+8,rt.top+57,rt.left+290,rt.top+82);
       m_wndSrcHeader.SubclassDlgItem(IDC_STATIC_SRCHEADER,this);
	   m_wndSrcHeader.m_pMsgWnd = this;
	   m_wndSrcHeader.MoveWindow(&rc);
       

	   {
         m_wndSrcHeader.SetImgList(&m_imglist);

		 m_wndSrcHeader.AddItem(0,25,16,"New");
		 m_wndSrcHeader.AddItem(1,25,16,"Delete");
		 m_wndSrcHeader.AddItem(2,25,16,"Move up");
		 m_wndSrcHeader.AddItem(3,25,16,"Move down");
	   }
	}

	//source static
	{
	  CRect rc(rt.left+6,rt.top+50,rt.left+290,rt.bottom-10);
      rc.InflateRect(2,4,4,4);
      GetDlgItem(IDC_STATIC_SRC)->MoveWindow(&rc);
	}

	//source list
    {
	  m_wndSources.SubclassDlgItem(IDC_SRC_LIST,this);
	  CRect rc(rt.left+8,rt.top+83,rt.left+290,rt.bottom-10);
      m_wndSources.MoveWindow(&rc);
	  
	  //pacth
	  m_wndSources.SetItemData(0,0);
	}

	//options static
	{
	  CRect rc(rt.left+305,rt.top+50,rt.right-5,rt.bottom-10);
      rc.InflateRect(4,4,4,4);
      GetDlgItem(IDC_STATIC_OPTIONS)->MoveWindow(&rc);
	}

	//options list
	{
	  CRect rc(rt.left+305,rt.top+62,rt.right-5,rt.bottom-30);
      m_wndOptions.MoveWindow(&rc);	
	}
    //apply check
	{
	  CRect rc(rt.left+305,rt.bottom-25,rt.right-10,rt.bottom-10);
	  GetDlgItem(IDC_CHECK_APPLY_TO_ALL)->MoveWindow(&rc);
	}

	/***********************arg*************************************/
	{
       CRect rc(rt.left+8,rt.top+60,rt.right-5,rt.top+87);
	   m_wndArgHeader.SubclassDlgItem(IDC_STATIC_ARGHEADER,this);
	   m_wndArgHeader.MoveWindow(&rc);
	   
	   m_wndArgHeader.SetImgList(&m_imglist);
	   m_wndArgHeader.AddItem(0,25,16,"New");
	   m_wndArgHeader.AddItem(1,25,16,"Delete");
	   m_wndArgHeader.AddItem(2,25,16,"Move up");
	   m_wndArgHeader.AddItem(3,25,16,"Move down");
	}
    //argument list
	{
	  CRect rc(rt.left+8,rt.top+87,rt.right-5,rt.bottom-10);
       m_wndArgList.MoveWindow(&rc);
	   m_wndArgList.ShowWindow(SW_HIDE);
	}

	//arg static
	{
       CRect rc(rt.left+8,rt.top+50,rt.right-5,rt.bottom-10);
	   rc.InflateRect(4,0,4,4);
	   GetDlgItem(IDC_STATIC_ARG)->MoveWindow(&rc);
	}

	m_wndOptOpt.SetCurSel(0);

	//load settings
	if(CVisualJavaApp::m_pCurWorkSpace != NULL &&
		CVisualJavaApp::m_pCurWorkSpace->GetActiveProject() != NULL)
	{
       //CVisualJavaApp::m_pCurWorkSpace->LoadJavacsetting(this);
	   XMLSerialize(0);
	   if(m_wndSources.GetCount()==0)
	   {
	     for(int i=0; i<m_wndOptions.GetCount(); i++)
		     m_wndOptions.Enable(i,FALSE);
	   }
	}
	else
	{
       //disable lists
	   m_wndSources.EnableWindow(FALSE);
	   m_wndArgList.EnableWindow(FALSE);
	   m_wndArgHeader.EnableWindow(FALSE);
	   m_wndSrcHeader.EnableWindow(FALSE);
       GetDlgItem(IDC_CHECK_APPLY_TO_ALL)->EnableWindow(FALSE);

	   for(int i=0; i<m_wndOptions.GetCount(); i++)
		   m_wndOptions.Enable(i,FALSE);
	}
	return TRUE;
}


void CDevToolJavacPage::OnSelchangeComboOptionsOptions() 
{
   CString szpSel;
   m_wndOptOpt.GetLBText(m_wndOptOpt.GetCurSel(),szpSel);
   CRect rt;
   GetClientRect(&rt);

   if(szpSel.Compare("Use Options from file") == 0)
   {
	  GetDlgItem(IDC_LIST_JAVAC_OPTIONS)->ShowWindow(SW_HIDE);
	  GetDlgItem(IDC_STATIC_OPTIONS)->ShowWindow(SW_HIDE);
	  m_wndSources.ShowWindow(SW_HIDE);
	  m_wndSrcHeader.ShowWindow(SW_HIDE);
	  GetDlgItem(IDC_CHECK_APPLY_TO_ALL)->ShowWindow(SW_HIDE);
      GetDlgItem(IDC_STATIC_SRC)->ShowWindow(SW_HIDE);


	  m_wndArgList.ShowWindow(SW_SHOW);
      GetDlgItem(IDC_STATIC_ARG)->ShowWindow(SW_SHOW);
	  m_wndArgHeader.ShowWindow(SW_SHOW);
   }
   else
   {
	  m_wndArgList.ShowWindow(SW_HIDE);
      GetDlgItem(IDC_STATIC_ARG)->ShowWindow(SW_HIDE);
	  m_wndArgHeader.ShowWindow(SW_HIDE);


	  GetDlgItem(IDC_LIST_JAVAC_OPTIONS)->ShowWindow(SW_SHOW);
	  GetDlgItem(IDC_STATIC_OPTIONS)->ShowWindow(SW_SHOW);
	  m_wndSources.ShowWindow(SW_SHOW);
	  m_wndSrcHeader.ShowWindow(SW_SHOW);
	  GetDlgItem(IDC_CHECK_APPLY_TO_ALL)->ShowWindow(SW_SHOW);
      GetDlgItem(IDC_STATIC_SRC)->ShowWindow(SW_SHOW);
   }
}
#define ACTION_ADDITEM   0
#define ACTION_DELETE    1
#define ACTION_MOVEUP    2
#define ACTION_MOVEDOWN  3

void CDevToolJavacPage::OnArgHeaderItemClicked()
{
  switch(m_wndArgHeader.GetClicked())
  {
	 case ACTION_ADDITEM:
		 {
          m_wndArgList.EditNew();
          break;
		 }
	 case ACTION_DELETE:
		 {
          m_wndArgList.DeleteSelected();
          break;
		 }
	 case ACTION_MOVEUP:
		 {
		  if(m_wndArgList.GetCurSel() != LB_ERR)
          m_wndArgList.MoveItemUp(m_wndArgList.GetCurSel());
		  break;
		 }
	 case ACTION_MOVEDOWN:
		 {
		   if(m_wndArgList.GetCurSel() != LB_ERR)
           m_wndArgList.MoveItemDown(m_wndArgList.GetCurSel());
           break;
		 }
  }
}

void CDevToolJavacPage::OnSrcHeaderItemClicked()
{
  
  switch(m_wndSrcHeader.GetClicked())
  {
	 case ACTION_ADDITEM:
		 {
          m_wndSources.EditNew();
          break;
		 }
	 case ACTION_DELETE:
		 {
          m_wndSources.DeleteSelected();
          break;
		 }
	 case ACTION_MOVEUP:
		 {
		  if(m_wndSources.GetCurSel() != LB_ERR)
          m_wndSources.MoveItemUp(m_wndSources.GetCurSel());
		  break;
		 }
	 case ACTION_MOVEDOWN:
		 {
		   if(m_wndSources.GetCurSel() != LB_ERR)
           m_wndSources.MoveItemDown(m_wndSources.GetCurSel());
           break;
		 }
  }  
}



void CDevToolJavacPage::OnBrowseSrcList()
{
   int iItem = m_wndSources.GetSelected();
   static char BASED_CODE szFilter[]="Java Source Files (*.java)|*.java|";
   DWORD flags = OFN_CREATEPROMPT|OFN_ALLOWMULTISELECT;
   CFileDialog dlg(TRUE,NULL,NULL,flags,szFilter);

   if(dlg.DoModal() == IDOK)
   {
	  POSITION nPos = dlg.GetStartPosition();	 

	  m_wndSources.EndEditing(TRUE);

      for(nPos; nPos != NULL;)
	  {
         CString szpPathName = dlg.GetNextPathName(nPos);
		   
		   //extract name
		 int nDot = szpPathName.Find('.');

⌨️ 快捷键说明

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