aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java311
1 files changed, 0 insertions, 311 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java b/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java
deleted file mode 100644
index 64e7dd80d..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/launch/NdkDebuggerTab.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
- *
- * 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.
- */
-
-package com.android.ide.eclipse.ndk.internal.launch;
-
-import com.android.ide.eclipse.ndk.internal.NdkHelper;
-import com.android.ide.eclipse.ndk.internal.NdkManager;
-
-import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-public class NdkDebuggerTab extends AbstractLaunchConfigurationTab {
- private static String sLastGdbPath;
- private static String sLastSolibPath;
-
- private Text mGdbPathText;
- private Text mGdbInitPathText;
- private Text mGdbRemotePortText;
-
- private org.eclipse.swt.widgets.List mSoliblist;
- private Button mAddSolibButton;
- private Button mDeleteSolibButton;
-
- /**
- * @wbp.parser.entryPoint (Window Builder Entry Point)
- */
- @Override
- public void createControl(Composite parent) {
- Composite comp = new Composite(parent, SWT.NONE);
- setControl(comp);
- comp.setLayout(new GridLayout(1, false));
-
- Group grpGdb = new Group(comp, SWT.NONE);
- grpGdb.setText("Launch Options");
- grpGdb.setLayout(new GridLayout(3, false));
- grpGdb.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Label lblDebugger = new Label(grpGdb, SWT.NONE);
- lblDebugger.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblDebugger.setText("Debugger:");
-
- mGdbPathText = new Text(grpGdb, SWT.BORDER);
- mGdbPathText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-
- final Button btnBrowseGdb = new Button(grpGdb, SWT.NONE);
- btnBrowseGdb.setText("Browse...");
-
- Label lblNewLabel = new Label(grpGdb, SWT.NONE);
- lblNewLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblNewLabel.setText("GDB Command File:");
-
- mGdbInitPathText = new Text(grpGdb, SWT.BORDER);
- mGdbInitPathText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-
- final Button btnBrowseGdbInit = new Button(grpGdb, SWT.NONE);
- btnBrowseGdbInit.setText("Browse...");
-
- SelectionListener browseListener = new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- Shell shell = ((Control) e.getSource()).getShell();
- if (e.getSource() == btnBrowseGdb) {
- browseForGdb(shell);
- } else {
- browseForGdbInit(shell);
- }
- checkParameters();
- updateLaunchConfigurationDialog();
- }
- };
- btnBrowseGdb.addSelectionListener(browseListener);
- btnBrowseGdbInit.addSelectionListener(browseListener);
-
- Label lblPort = new Label(grpGdb, SWT.NONE);
- lblPort.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblPort.setText("Port:");
-
- mGdbRemotePortText = new Text(grpGdb, SWT.BORDER);
- GridData gd_text_2 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
- gd_text_2.widthHint = 100;
- mGdbRemotePortText.setLayoutData(gd_text_2);
-
- ModifyListener m = new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- checkParameters();
- updateLaunchConfigurationDialog();
- }
- };
- mGdbPathText.addModifyListener(m);
- mGdbInitPathText.addModifyListener(m);
- mGdbRemotePortText.addModifyListener(m);
-
- Group grpSharedLibraries = new Group(comp, SWT.NONE);
- grpSharedLibraries.setText("Shared Libraries");
- grpSharedLibraries.setLayout(new GridLayout(2, false));
- GridData gd_grpSharedLibraries = new GridData(GridData.FILL_BOTH);
- gd_grpSharedLibraries.verticalAlignment = SWT.TOP;
- gd_grpSharedLibraries.grabExcessVerticalSpace = true;
- grpSharedLibraries.setLayoutData(gd_grpSharedLibraries);
-
- mSoliblist = new org.eclipse.swt.widgets.List(grpSharedLibraries,
- SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE);
- GridData gd_list = new GridData(GridData.FILL_BOTH);
- gd_list.heightHint = 133;
- gd_list.grabExcessVerticalSpace = false;
- gd_list.verticalSpan = 1;
- mSoliblist.setLayoutData(gd_list);
-
- Composite composite = new Composite(grpSharedLibraries, SWT.NONE);
- composite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
- composite.setLayout(new RowLayout(SWT.VERTICAL));
-
- mAddSolibButton = new Button(composite, SWT.NONE);
- mAddSolibButton.setText("Add...");
-
- mDeleteSolibButton = new Button(composite, SWT.NONE);
- mDeleteSolibButton.setText("Remove");
- mDeleteSolibButton.setEnabled(false);
-
- SelectionListener l = new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- Control c = (Control) e.getSource();
- if (c == mSoliblist) {
- // enable delete only if there is a selection
- mDeleteSolibButton.setEnabled(mSoliblist.getSelectionCount() > 0);
- } else if (c == mAddSolibButton) {
- addSolib(c.getShell());
- } else {
- // delete current selection
- int index = mSoliblist.getSelectionIndex();
- if (index >= 0) {
- mSoliblist.remove(index);
- }
- }
- updateLaunchConfigurationDialog();
- }
- };
-
- mSoliblist.addSelectionListener(l);
- mAddSolibButton.addSelectionListener(l);
- mDeleteSolibButton.addSelectionListener(l);
- }
-
- private void addSolib(Shell shell) {
- DirectoryDialog dd = new DirectoryDialog(shell);
- if (sLastSolibPath != null) {
- dd.setFilterPath(sLastSolibPath);
- }
- String solibPath = dd.open();
-
- if (solibPath != null) {
- mSoliblist.add(solibPath);
- sLastSolibPath = new File(solibPath).getParent();
- }
- }
-
- private void browseForGdb(Shell shell) {
- if (sLastGdbPath == null) {
- sLastGdbPath = NdkManager.getNdkLocation();
- }
-
- FileDialog fd = new FileDialog(shell);
- fd.setFilterPath(sLastGdbPath);
-
- String gdbPath = fd.open();
- if (gdbPath != null) {
- mGdbPathText.setText(gdbPath);
- sLastGdbPath = new File(gdbPath).getParent();
- }
- }
-
- private void browseForGdbInit(Shell shell) {
- FileDialog fd = new FileDialog(shell);
- String gdbInit = fd.open();
- if (gdbInit != null) {
- mGdbInitPathText.setText(gdbInit);
- }
- }
-
- private void checkParameters() {
- // check gdb path
- String gdb = mGdbPathText.getText().trim();
- if (!gdb.equals(NdkLaunchConstants.DEFAULT_GDB)) {
- File f = new File(gdb);
- if (!f.exists() || !f.canExecute()) {
- setErrorMessage("Invalid gdb location.");
- return;
- }
- }
-
- // check gdb init path
- String gdbInit = mGdbInitPathText.getText().trim();
- if (!gdbInit.isEmpty()) {
- File f = new File(gdbInit);
- if (!f.exists() || !f.isFile()) {
- setErrorMessage("Invalid gdbinit location.");
- return;
- }
- }
-
- // port should be a valid integer
- String port = mGdbRemotePortText.getText().trim();
- try {
- Integer.parseInt(port, 10);
- } catch (NumberFormatException e) {
- setErrorMessage("Port should be a valid integer");
- return;
- }
-
- // no errors
- setErrorMessage(null);
- setMessage(null);
- }
-
- @Override
- public void setDefaults(ILaunchConfigurationWorkingCopy config) {
- NdkHelper.setLaunchConfigDefaults(config);
- }
-
- @Override
- public void initializeFrom(ILaunchConfiguration config) {
- mGdbPathText.setText(getAttribute(config, NdkLaunchConstants.ATTR_NDK_GDB,
- NdkLaunchConstants.DEFAULT_GDB));
- mGdbInitPathText.setText(getAttribute(config,
- IGDBLaunchConfigurationConstants.ATTR_GDB_INIT,
- NdkLaunchConstants.DEFAULT_GDBINIT));
- mGdbRemotePortText.setText(getAttribute(config, IGDBLaunchConfigurationConstants.ATTR_PORT,
- NdkLaunchConstants.DEFAULT_GDB_PORT));
-
- List<String> solibs = getAttribute(config, NdkLaunchConstants.ATTR_NDK_SOLIB,
- Collections.EMPTY_LIST);
- mSoliblist.removeAll();
- for (String s: solibs) {
- mSoliblist.add(s);
- }
- }
-
- private String getAttribute(ILaunchConfiguration config, String key, String defaultValue) {
- try {
- return config.getAttribute(key, defaultValue);
- } catch (CoreException e) {
- return defaultValue;
- }
- }
-
- private List<String> getAttribute(ILaunchConfiguration config, String key,
- List<String> defaultValue) {
- try {
- return config.getAttribute(key, defaultValue);
- } catch (CoreException e) {
- return defaultValue;
- }
- }
-
- @Override
- public void performApply(ILaunchConfigurationWorkingCopy config) {
- config.setAttribute(NdkLaunchConstants.ATTR_NDK_GDB, mGdbPathText.getText().trim());
- config.setAttribute(IGDBLaunchConfigurationConstants.ATTR_GDB_INIT,
- mGdbInitPathText.getText().trim());
- config.setAttribute(IGDBLaunchConfigurationConstants.ATTR_PORT,
- mGdbRemotePortText.getText().trim());
- config.setAttribute(NdkLaunchConstants.ATTR_NDK_SOLIB,
- Arrays.asList(mSoliblist.getItems()));
- }
-
- @Override
- public String getName() {
- return "Debugger";
- }
-}