diff options
Diffstat (limited to 'debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java')
-rw-r--r-- | debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java | 248 |
1 files changed, 124 insertions, 124 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java index f5b11815764..3fed228efb2 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/CLICommandAction.java @@ -1,124 +1,124 @@ -/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alena Laskavaia (QNX)- Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.debug.ui.breakpointactions;
-
-import java.text.MessageFormat;
-
-import org.eclipse.cdt.debug.core.CDIDebugModel;
-import org.eclipse.cdt.debug.core.breakpointactions.AbstractBreakpointAction;
-import org.eclipse.cdt.debug.core.breakpointactions.ICLIDebugActionEnabler;
-import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants;
-import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
-import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * This breakpoint action allows to pass arbitrary command line command to debugger backend.
- * For example in case of gdb it would be something like
- * p myGlobal
- * cont
- * @since 8.0
- */
-public class CLICommandAction extends AbstractBreakpointAction {
- private static final String COMMAND_ATT = "command"; //$NON-NLS-1$
- private String command = ""; //$NON-NLS-1$
-
- @Override
- public IStatus execute(IBreakpoint breakpoint, IAdaptable context, IProgressMonitor monitor) {
- ICLIDebugActionEnabler enabler = context.getAdapter(ICLIDebugActionEnabler.class);
- if (enabler != null) {
- try {
- enabler.execute(getCommand());
- } catch (Exception e) {
- return errorStatus(e);
- }
- } else
- return new Status(IStatus.ERROR, CDebugUIPlugin.getUniqueIdentifier(),
- IInternalCDebugUIConstants.INTERNAL_ERROR,
- Messages.getString("CLICommandAction.NoSupport"), null); //$NON-NLS-1$
- return monitor.isCanceled() ? Status.CANCEL_STATUS : Status.OK_STATUS;
- }
-
- private IStatus errorStatus(Exception ex) {
- String errorMsg = MessageFormat.format(Messages.getString("CLICommandAction.error.0"), //$NON-NLS-1$
- new Object[] { getSummary() });
- return new Status(IStatus.ERROR, CDIDebugModel.getPluginIdentifier(),
- ICDebugInternalConstants.STATUS_CODE_ERROR, errorMsg, ex);
- }
-
- @Override
- public String getDefaultName() {
- return Messages.getString("CLICommandAction.UntitledName"); //$NON-NLS-1$
- }
-
- @Override
- public String getIdentifier() {
- return "org.eclipse.cdt.debug.ui.breakpointactions.CLICommandAction"; //$NON-NLS-1$
- }
-
- @Override
- public String getMemento() {
- try {
- Document doc = DebugPlugin.newDocument();
- Element rootElement = doc.createElement(COMMAND_ATT);
- rootElement.setAttribute(COMMAND_ATT, command);
- doc.appendChild(rootElement);
- return DebugPlugin.serializeDocument(doc);
- } catch (DOMException | CoreException e) {
- CDebugUIPlugin.log(e);
-
- }
- return ""; //$NON-NLS-1$
- }
-
- public String getCommand() {
- return command;
- }
-
- public void setCommand(String command) {
- this.command = command;
- }
-
- @Override
- public String getSummary() {
- String summary = getCommand();
- if (summary.length() > 32)
- summary = summary.substring(0, 32);
- return summary;
- }
-
- @Override
- public String getTypeName() {
- return Messages.getString("CLICommandAction.TypeName"); //$NON-NLS-1$
- }
-
- @Override
- public void initializeFromMemento(String data) {
- try {
- Element root = DebugPlugin.parseDocument(data);
- String value = root.getAttribute(COMMAND_ATT);
- if (value == null)
- value = ""; //$NON-NLS-1$
- command = value;
- } catch (Exception e) {
- CDebugUIPlugin.log(e);
- }
- }
-}
+/******************************************************************************* + * Copyright (c) 2016 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alena Laskavaia (QNX)- Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.debug.ui.breakpointactions; + +import java.text.MessageFormat; + +import org.eclipse.cdt.debug.core.CDIDebugModel; +import org.eclipse.cdt.debug.core.breakpointactions.AbstractBreakpointAction; +import org.eclipse.cdt.debug.core.breakpointactions.ICLIDebugActionEnabler; +import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants; +import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants; +import org.eclipse.cdt.debug.ui.CDebugUIPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.model.IBreakpoint; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * This breakpoint action allows to pass arbitrary command line command to debugger backend. + * For example in case of gdb it would be something like + * p myGlobal + * cont + * @since 8.0 + */ +public class CLICommandAction extends AbstractBreakpointAction { + private static final String COMMAND_ATT = "command"; //$NON-NLS-1$ + private String command = ""; //$NON-NLS-1$ + + @Override + public IStatus execute(IBreakpoint breakpoint, IAdaptable context, IProgressMonitor monitor) { + ICLIDebugActionEnabler enabler = context.getAdapter(ICLIDebugActionEnabler.class); + if (enabler != null) { + try { + enabler.execute(getCommand()); + } catch (Exception e) { + return errorStatus(e); + } + } else + return new Status(IStatus.ERROR, CDebugUIPlugin.getUniqueIdentifier(), + IInternalCDebugUIConstants.INTERNAL_ERROR, + Messages.getString("CLICommandAction.NoSupport"), null); //$NON-NLS-1$ + return monitor.isCanceled() ? Status.CANCEL_STATUS : Status.OK_STATUS; + } + + private IStatus errorStatus(Exception ex) { + String errorMsg = MessageFormat.format(Messages.getString("CLICommandAction.error.0"), //$NON-NLS-1$ + new Object[] { getSummary() }); + return new Status(IStatus.ERROR, CDIDebugModel.getPluginIdentifier(), + ICDebugInternalConstants.STATUS_CODE_ERROR, errorMsg, ex); + } + + @Override + public String getDefaultName() { + return Messages.getString("CLICommandAction.UntitledName"); //$NON-NLS-1$ + } + + @Override + public String getIdentifier() { + return "org.eclipse.cdt.debug.ui.breakpointactions.CLICommandAction"; //$NON-NLS-1$ + } + + @Override + public String getMemento() { + try { + Document doc = DebugPlugin.newDocument(); + Element rootElement = doc.createElement(COMMAND_ATT); + rootElement.setAttribute(COMMAND_ATT, command); + doc.appendChild(rootElement); + return DebugPlugin.serializeDocument(doc); + } catch (DOMException | CoreException e) { + CDebugUIPlugin.log(e); + + } + return ""; //$NON-NLS-1$ + } + + public String getCommand() { + return command; + } + + public void setCommand(String command) { + this.command = command; + } + + @Override + public String getSummary() { + String summary = getCommand(); + if (summary.length() > 32) + summary = summary.substring(0, 32); + return summary; + } + + @Override + public String getTypeName() { + return Messages.getString("CLICommandAction.TypeName"); //$NON-NLS-1$ + } + + @Override + public void initializeFromMemento(String data) { + try { + Element root = DebugPlugin.parseDocument(data); + String value = root.getAttribute(COMMAND_ATT); + if (value == null) + value = ""; //$NON-NLS-1$ + command = value; + } catch (Exception e) { + CDebugUIPlugin.log(e); + } + } +} |