aboutsummaryrefslogtreecommitdiff
path: root/find_java2/src/FindJava2Dlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'find_java2/src/FindJava2Dlg.cpp')
-rwxr-xr-xfind_java2/src/FindJava2Dlg.cpp268
1 files changed, 0 insertions, 268 deletions
diff --git a/find_java2/src/FindJava2Dlg.cpp b/find_java2/src/FindJava2Dlg.cpp
deleted file mode 100755
index fbdd899e0..000000000
--- a/find_java2/src/FindJava2Dlg.cpp
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
-* Copyright (C) 2014 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-
-#include "stdafx.h"
-#include "utils.h"
-#include "FindJava2Dlg.h"
-#include "afxdialogex.h"
-#include <atlpath.h> // ATL CPath
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#endif
-
-#define COL_PATH 1
-
-
-CFindJava2Dlg::CFindJava2Dlg(CWnd* pParent /*=NULL*/)
- : CDialog(CFindJava2Dlg::IDD, pParent), mSelectedIndex(-1) {
- m_hIcon = AfxGetApp()->LoadIcon(IDI_ANDROID_ICON);
-}
-
-void CFindJava2Dlg::DoDataExchange(CDataExchange* pDX) {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_PATH_LIST, mPathsListCtrl);
- DDX_Control(pDX, IDOK, mOkButton);
-}
-
-BEGIN_MESSAGE_MAP(CFindJava2Dlg, CDialog)
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- ON_BN_CLICKED(IDC_BUTTON_ADD, &CFindJava2Dlg::OnBnClickedButtonAdd)
- ON_NOTIFY(NM_CLICK, IDC_PATH_LIST, &CFindJava2Dlg::OnNMClickPathList)
- ON_NOTIFY(LVN_ITEMCHANGED, IDC_PATH_LIST, &CFindJava2Dlg::OnLvnItemchangedPathList)
-END_MESSAGE_MAP()
-
-
-// -----
-// CFindJava2Dlg message handlers
-
-BOOL CFindJava2Dlg::OnInitDialog() {
- CDialog::OnInitDialog();
-
- SetWindowText(getAppName());
-
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
-
- // Initialize list controls
- mPathsListCtrl.SetExtendedStyle(
- mPathsListCtrl.GetExtendedStyle() |
- LVS_EX_CHECKBOXES |
- LVS_EX_FULLROWSELECT |
- LVS_EX_GRIDLINES);
-
- // We want 2 columns: Java version and path
- mPathsListCtrl.InsertColumn(0, _T("Version"), LVCFMT_RIGHT, 60, 0);
- mPathsListCtrl.InsertColumn(1, _T("Path"), LVCFMT_LEFT, 386, 0);
-
- mJavaFinder->findJavaPaths(&mPaths);
- fillPathsList();
- adjustButtons();
-
- return TRUE; // return TRUE unless you set the focus to a control
-}
-
-// If you add a minimize button to your dialog, you will need the code below
-// to draw the icon. For MFC applications using the document/view model,
-// this is automatically done for you by the framework.
-// [Note: MFC boilerplate, keep as-is]
-void CFindJava2Dlg::OnPaint() {
- if (IsIconic()) {
- CPaintDC dc(this); // device context for painting
-
- SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
-
- // Center icon in client rectangle
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- // Draw the icon
- dc.DrawIcon(x, y, m_hIcon);
- } else {
- CDialog::OnPaint();
- }
-}
-
-// The system calls this function to obtain the cursor to display while the user drags
-// the minimized window. [Note: MFC boilerplate, keep as-is]
-HCURSOR CFindJava2Dlg::OnQueryDragIcon() {
- return static_cast<HCURSOR>(m_hIcon);
-}
-
-// Button add has been pressed; use file dialog and add path if it's a valid java.exe
-void CFindJava2Dlg::OnBnClickedButtonAdd() {
- CFileDialog fileDlg(
- TRUE, // true=open dialog, false=save-as dialog
- _T("exe"), // lpszDefExt
- _T("java.exe"), // lpszFileName
- OFN_FILEMUSTEXIST || OFN_PATHMUSTEXIST,
- NULL, // lpszFilter
- this); // pParentWnd
-
- if (fileDlg.DoModal() == IDOK) {
- CString path = fileDlg.GetPathName();
-
- CJavaPath javaPath;
- if (!mJavaFinder->checkJavaPath(path, &javaPath)) {
- CString msg;
- if (javaPath.mVersion > 0) {
- msg.Format(_T("Insufficient Java Version found: expected %s, got %s"),
- CJavaPath(mJavaFinder->getMinVersion(), CPath()).getVersion(),
- javaPath.getVersion());
- } else {
- msg.Format(_T("No valid Java Version found for %s"), path);
- }
- AfxMessageBox(msg, MB_OK);
-
- } else {
- if (mPaths.find(javaPath) == mPaths.end()) {
- // Path isn't known yet so add it and refresh the list.
- mPaths.insert(javaPath);
- fillPathsList();
- }
-
- // Select item in list and set mSelectedIndex
- selectPath(-1 /*index*/, &javaPath);
- }
- }
-}
-
-// An item in the list has been selected, select checkmark and set mSelectedIndex.
-void CFindJava2Dlg::OnNMClickPathList(NMHDR *pNMHDR, LRESULT *pResult) {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- int index = pNMItemActivate->iItem;
- selectPath(index, nullptr);
- *pResult = TRUE;
-}
-
-// An item in the list has changed, toggle checkmark as needed.
-void CFindJava2Dlg::OnLvnItemchangedPathList(NMHDR *pNMHDR, LRESULT *pResult) {
- *pResult = FALSE;
- LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
-
- if ((pNMLV->uChanged & LVIF_STATE) != 0) {
- // Item's state has changed. Check the selection to see if it needs to be adjusted.
- int index = pNMLV->iItem;
-
- UINT oldState = pNMLV->uOldState;
- UINT newState = pNMLV->uNewState;
-
- if ((oldState & LVIS_STATEIMAGEMASK) != 0 || (newState & LVIS_STATEIMAGEMASK) != 0) {
- // Checkbox uses the STATEIMAGE: 1 for unchecked, 2 for checked.
- // Checkbox is checked when (old/new-state & state-image-mask) == INDEXTOSTATEIMAGEMASK(2).
-
- bool oldChecked = (oldState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK(2);
- bool newChecked = (newState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK(2);
-
- if (oldChecked && !newChecked && index == mSelectedIndex) {
- mSelectedIndex = -1;
- adjustButtons();
- } else if (!oldChecked && newChecked && index != mSelectedIndex) {
- // Uncheck any checked rows if any
- for (int n = mPathsListCtrl.GetItemCount() - 1; n >= 0; --n) {
- if (n != index && mPathsListCtrl.GetCheck(n)) {
- mPathsListCtrl.SetCheck(n, FALSE);
- }
- }
-
- mSelectedIndex = index;
- adjustButtons();
- }
- // We handled this case, don't dispatch it further
- *pResult = TRUE;
- }
- }
-}
-
-// -----
-
-const CJavaPath& CFindJava2Dlg::getSelectedPath() {
- int i = 0;
- for (const CJavaPath &p : mPaths) {
- if (i == mSelectedIndex) {
- return p;
- }
- ++i;
- }
-
- return CJavaPath::sEmpty;
-}
-
-
-void CFindJava2Dlg::fillPathsList() {
- mPathsListCtrl.DeleteAllItems();
- int index = 0;
-
- for (const CJavaPath& pv : mPaths) {
- mPathsListCtrl.InsertItem(index, pv.getVersion()); // column 0 = version
- mPathsListCtrl.SetItemText(index, COL_PATH, pv.mPath); // column 1 = path
- mPathsListCtrl.SetCheck(index, mSelectedIndex == index);
- ++index;
- }
-}
-
-// Checks the given index if valid. Unchecks all other items.
-//
-// If index >= 0, it is used to select that item from the ListControl.
-// Otherwise if path != nullptr, it is used to find the item and select it.
-//
-// Side effect: in both cases, mSelectedIndex is set to the matching index or -1.
-//
-// If index is invalid and path isn't in the mPaths list, all items are unselected
-// so calling this with (0, nullptr) will clear the current selection.
-void CFindJava2Dlg::selectPath(int index, const CJavaPath *path) {
-
- const CJavaPath *foundPath;
- // If index is not defined, find the given path in the internal list.
- // If path is not defined, find its index in the internal list.
- int i = 0;
- int n = mPathsListCtrl.GetItemCount();
- for (const CJavaPath &p : mPaths) {
- if (index < 0 && path != nullptr && p == *path) {
- index = i;
- foundPath = path;
- } else if (index == i) {
- foundPath = &p;
- }
-
- // uncheck any marked path
- if (i != index && i < n && mPathsListCtrl.GetCheck(i)) {
- mPathsListCtrl.SetCheck(i, FALSE);
- }
-
- ++i;
- }
-
- mSelectedIndex = index;
- if (index >= 0 && index <= n) {
- mPathsListCtrl.SetCheck(index, TRUE);
- }
-
- adjustButtons();
-}
-
-void CFindJava2Dlg::adjustButtons() {
- int n = mPathsListCtrl.GetItemCount();
- mOkButton.EnableWindow(mSelectedIndex >= 0 && mSelectedIndex < n);
-}