📄 devtooljavacpage.cpp
字号:
// 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 + -