1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 18:26:01 +02:00

Cosmetics

Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
This commit is contained in:
Marc Khouzam 2016-02-22 20:43:55 -05:00
parent 3d65c3474a
commit e3f7a7dd7f

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2010, 2015 Ericsson and others. * Copyright (c) 2010, 2016 Ericsson and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -59,16 +59,16 @@ import org.osgi.framework.Bundle;
* @since 7.0 * @since 7.0
*/ */
public class ReverseToggleCommandHandler extends DebugCommandHandler implements IDebugContextListener, IElementUpdater { public class ReverseToggleCommandHandler extends DebugCommandHandler implements IDebugContextListener, IElementUpdater {
private ReverseTraceMethod fTraceMethod;
private ReverseTraceMethod fLastTraceMethod;
private ImageDescriptor fTracemethodOnImages[];
private ImageDescriptor fTracemethodOffImages[];
private ImageDescriptor fTracemethodDefaultImage;
ReverseTraceMethod traceMethod = null;
ReverseTraceMethod lastTraceMethod = null;
ImageDescriptor tracemethodOnImages[];
ImageDescriptor tracemethodOffImages[];
ImageDescriptor tracemethodDefaultImage = null;
@Override @Override
protected Class<?> getCommandType() { protected Class<?> getCommandType() {
return IReverseToggleHandler.class; return IReverseToggleHandler.class;
} }
// //
// The below logic allows us to keep the checked state of the toggle button // The below logic allows us to keep the checked state of the toggle button
@ -89,11 +89,11 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
private ImageDescriptor getImageDescriptor (String path) { private ImageDescriptor getImageDescriptor (String path) {
Bundle bundle = Platform.getBundle("org.eclipse.cdt.debug.ui"); //$NON-NLS-1$ Bundle bundle = Platform.getBundle("org.eclipse.cdt.debug.ui"); //$NON-NLS-1$
URL url = null; URL url = null;
if (bundle != null){ if (bundle != null) {
url = FileLocator.find(bundle, new Path(path), null); url = FileLocator.find(bundle, new Path(path), null);
if(url != null) { if (url != null) {
return ImageDescriptor.createFromURL(url); return ImageDescriptor.createFromURL(url);
} }
} }
return null; return null;
} }
@ -109,16 +109,16 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
// This can happen if we activate the action set after the launch. // This can happen if we activate the action set after the launch.
refresh(fContextService.getActiveContext()); refresh(fContextService.getActiveContext());
tracemethodOnImages = new ImageDescriptor[2]; fTracemethodOnImages = new ImageDescriptor[2];
tracemethodOffImages = new ImageDescriptor[2]; fTracemethodOffImages = new ImageDescriptor[2];
tracemethodDefaultImage = getImageDescriptor("icons/obj16/reverse_toggle.gif"); //$NON-NLS-1$ fTracemethodDefaultImage = getImageDescriptor("icons/obj16/reverse_toggle.gif"); //$NON-NLS-1$
tracemethodOnImages[0] = getImageDescriptor("icons/obj16/full_trace_on.gif"); //$NON-NLS-1$ fTracemethodOnImages[0] = getImageDescriptor("icons/obj16/full_trace_on.gif"); //$NON-NLS-1$
tracemethodOnImages[1] = getImageDescriptor("icons/obj16/branch_trace_on.gif"); //$NON-NLS-1$ fTracemethodOnImages[1] = getImageDescriptor("icons/obj16/branch_trace_on.gif"); //$NON-NLS-1$
tracemethodOffImages[0] = getImageDescriptor("icons/obj16/full_trace_off.gif"); //$NON-NLS-1$ fTracemethodOffImages[0] = getImageDescriptor("icons/obj16/full_trace_off.gif"); //$NON-NLS-1$
tracemethodOffImages[1] = getImageDescriptor("icons/obj16/branch_trace_off.gif"); //$NON-NLS-1$ fTracemethodOffImages[1] = getImageDescriptor("icons/obj16/branch_trace_off.gif"); //$NON-NLS-1$
traceMethod = ReverseTraceMethod.STOP_TRACE; fTraceMethod = ReverseTraceMethod.STOP_TRACE;
lastTraceMethod = ReverseTraceMethod.STOP_TRACE; fLastTraceMethod = ReverseTraceMethod.STOP_TRACE;
} }
} }
} }
@ -137,7 +137,7 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
} }
@Override @Override
public void debugContextChanged(DebugContextEvent event) { public void debugContextChanged(DebugContextEvent event) {
refresh(event.getContext()); refresh(event.getContext());
} }
@ -160,79 +160,72 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
} }
} }
private IChangeReverseMethodHandler getAdapter(IAdaptable adaptable) { private IReverseToggleHandler getAdapter(IAdaptable adaptable) {
IReverseToggleHandler adapter = adaptable.getAdapter(IReverseToggleHandler.class); IReverseToggleHandler adapter = adaptable.getAdapter(IReverseToggleHandler.class);
if (adapter == null) { if (adapter == null) {
IAdapterManager adapterManager = Platform.getAdapterManager(); IAdapterManager adapterManager = Platform.getAdapterManager();
if (adapterManager.hasAdapter(adaptable, getCommandType().getName())) { if (adapterManager.hasAdapter(adaptable, getCommandType().getName())) {
adapter = (IReverseToggleHandler)adapterManager.loadAdapter(adaptable, IReverseToggleHandler.class.getName()); adapter = (IReverseToggleHandler)adapterManager.loadAdapter(adaptable, IReverseToggleHandler.class.getName());
} }
} }
if (adapter instanceof IChangeReverseMethodHandler) if (adapter instanceof IChangeReverseMethodHandler) {
return (IChangeReverseMethodHandler)adapter; return adapter;
else } else {
return null; return null;
}
} }
/* (non-Javadoc)
* @see org.eclipse.debug.ui.actions.DebugCommandHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override @Override
public Object execute(ExecutionEvent event) throws ExecutionException { public Object execute(ExecutionEvent event) throws ExecutionException {
ReverseTraceMethod traceMethod; ReverseTraceMethod traceMethod;
try { try {
if (HandlerUtil.matchesRadioState(event)) {
return null;
}
if(HandlerUtil.matchesRadioState(event)) { String radioState = event.getParameter(RadioState.PARAMETER_ID);
return null;
}
String radioState = event.getParameter(RadioState.PARAMETER_ID); if (radioState.equals("UseSoftTrace")) { //$NON-NLS-1$
traceMethod = ReverseTraceMethod.FULL_TRACE;
} else if (radioState.equals("UseHardTrace")) { //$NON-NLS-1$
traceMethod = ReverseTraceMethod.HARDWARE_TRACE;
} else {
// undefined trace method
throw new ExecutionException("Undefined trace method for Reverse Debugging."); //$NON-NLS-1$
}
if (radioState.equals("UseSoftTrace")) { //$NON-NLS-1$ // store the parameter in the gdb command handler class
traceMethod = ReverseTraceMethod.FULL_TRACE; if (fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler) {
} ((IChangeReverseMethodHandler)fTargetAdapter).setTraceMethod(traceMethod);
else if (radioState.equals("UseHardTrace")) { //$NON-NLS-1$ }
traceMethod = ReverseTraceMethod.HARDWARE_TRACE;
}
else {
// undefined trace method
throw new ExecutionException("Undefined trace method for Reverse Debugging."); //$NON-NLS-1$
}
// store the parameter in the gdb command handler class // execute the event
if (fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler) { super.execute(event);
((IChangeReverseMethodHandler)fTargetAdapter).setTraceMethod(traceMethod);
}
// execute the event // and finally update the radio current state
super.execute(event); HandlerUtil.updateRadioState(event.getCommand(), radioState);
// and finally update the radio current state return null;
HandlerUtil.updateRadioState(event.getCommand(), radioState); } catch (NullPointerException | ExecutionException e) {
// Disable tracing
return null; if (fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler) {
} if (fTargetAdapter.toggleNeedsUpdating()) {
catch ( NullPointerException | ExecutionException e) { ReverseTraceMethod currMethod = ((IChangeReverseMethodHandler)fTargetAdapter).getTraceMethod(fActiveContext);
// Disable tracing if (currMethod == ReverseTraceMethod.STOP_TRACE) {
if (fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler) { if (fLastTraceMethod != ReverseTraceMethod.STOP_TRACE && fLastTraceMethod != ReverseTraceMethod.FULL_TRACE) {
if (fTargetAdapter.toggleNeedsUpdating()){ traceMethod = ReverseTraceMethod.HARDWARE_TRACE;
ReverseTraceMethod currMethod = ((IChangeReverseMethodHandler)fTargetAdapter).getTraceMethod(fActiveContext); } else {
if(currMethod == ReverseTraceMethod.STOP_TRACE) { traceMethod = ReverseTraceMethod.FULL_TRACE;
if( lastTraceMethod != ReverseTraceMethod.STOP_TRACE && lastTraceMethod != ReverseTraceMethod.FULL_TRACE) { }
traceMethod = ReverseTraceMethod.HARDWARE_TRACE; } else {
} traceMethod = ReverseTraceMethod.STOP_TRACE;
else }
traceMethod = ReverseTraceMethod.FULL_TRACE; ((IChangeReverseMethodHandler)fTargetAdapter).setTraceMethod(traceMethod);
}
} }
else super.execute(event);
traceMethod = ReverseTraceMethod.STOP_TRACE; return null;
((IChangeReverseMethodHandler)fTargetAdapter).setTraceMethod(traceMethod); }
}
}
super.execute(event);
return null;
}
} }
/* /*
@ -248,21 +241,21 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
@Override @Override
public IStatus runInUIThread(IProgressMonitor monitor) { public IStatus runInUIThread(IProgressMonitor monitor) {
boolean prop = CDebugUIPlugin.getDefault().getPreferenceStore().getBoolean(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE); boolean prop = CDebugUIPlugin.getDefault().getPreferenceStore().getBoolean(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE);
if(prop && request.getStatus() != null && request.getStatus().getCode() != 0 ) { if (prop && request.getStatus() != null && request.getStatus().getCode() != 0) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
Shell activeShell = null; Shell activeShell = null;
if(window != null) if (window != null) {
activeShell = window.getShell(); activeShell = window.getShell();
else } else {
activeShell = new Shell(PlatformUI.getWorkbench().getDisplay()); activeShell = new Shell(PlatformUI.getWorkbench().getDisplay());
}
MessageDialogWithToggle dialogbox = new MessageDialogWithToggle(activeShell, "Error", //$NON-NLS-1$ MessageDialogWithToggle dialogbox = new MessageDialogWithToggle(activeShell, "Error", //$NON-NLS-1$
null, "Hardware Tracing Method not available, Reverse debugging is switched Off, please select another method", MessageDialog.QUESTION, //$NON-NLS-1$ null, "Hardware Tracing Method not available, Reverse debugging is switched Off, please select another method", MessageDialog.QUESTION, //$NON-NLS-1$
new String[] {IDialogConstants.OK_LABEL}, 0, new String[] {IDialogConstants.OK_LABEL}, 0,
"Don't show this message again", false); //$NON-NLS-1$ "Don't show this message again", false); //$NON-NLS-1$
dialogbox.setPrefStore(CDebugUIPlugin.getDefault().getPreferenceStore()); dialogbox.setPrefStore(CDebugUIPlugin.getDefault().getPreferenceStore());
dialogbox.setPrefKey(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE); dialogbox.setPrefKey(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE);
if(dialogbox.open() == 0){ if (dialogbox.open() == 0) {
boolean toggled = dialogbox.getToggleState(); boolean toggled = dialogbox.getToggleState();
CDebugUIPlugin.getDefault().getPreferenceStore().setValue(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE, !toggled); CDebugUIPlugin.getDefault().getPreferenceStore().setValue(ICDebugPreferenceConstants.PREF_SHOW_ERROR_REVERSE_TRACE_METHOD_NOT_AVAILABLE, !toggled);
} }
@ -288,36 +281,32 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements
@Override @Override
public void updateElement(UIElement element, public void updateElement(UIElement element,
@SuppressWarnings("rawtypes") Map parameters) { @SuppressWarnings("rawtypes") Map parameters) {
if(fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler){ if (fTargetAdapter != null && fTargetAdapter instanceof IChangeReverseMethodHandler) {
ReverseTraceMethod reverseMethod = ((IChangeReverseMethodHandler)fTargetAdapter).getTraceMethod(fActiveContext); ReverseTraceMethod reverseMethod = ((IChangeReverseMethodHandler)fTargetAdapter).getTraceMethod(fActiveContext);
ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class); ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class);
if(reverseMethod != traceMethod){ if (reverseMethod != fTraceMethod) {
lastTraceMethod = traceMethod; fLastTraceMethod = fTraceMethod;
traceMethod = reverseMethod; fTraceMethod = reverseMethod;
} }
try{ try{
if (traceMethod != ReverseTraceMethod.STOP_TRACE && traceMethod != ReverseTraceMethod.FULL_TRACE) { if (fTraceMethod != ReverseTraceMethod.STOP_TRACE && fTraceMethod != ReverseTraceMethod.FULL_TRACE) {
HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseHardTrace"); //$NON-NLS-1$ HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseHardTrace"); //$NON-NLS-1$
element.setTooltip("Toggle Hardware Trace"); //$NON-NLS-1$ element.setTooltip("Toggle Hardware Trace"); //$NON-NLS-1$
element.setIcon(tracemethodOnImages[1]); element.setIcon(fTracemethodOnImages[1]);
} } else if (fTraceMethod == ReverseTraceMethod.FULL_TRACE) {
else if (traceMethod == ReverseTraceMethod.FULL_TRACE) {
HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseSoftTrace"); //$NON-NLS-1$ HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseSoftTrace"); //$NON-NLS-1$
element.setTooltip("Toggle Software Trace"); //$NON-NLS-1$ element.setTooltip("Toggle Software Trace"); //$NON-NLS-1$
element.setIcon(tracemethodOnImages[0]); element.setIcon(fTracemethodOnImages[0]);
} } else {
else {
element.setTooltip("Toggle Reverse Debugging"); //$NON-NLS-1$ element.setTooltip("Toggle Reverse Debugging"); //$NON-NLS-1$
if (lastTraceMethod != ReverseTraceMethod.STOP_TRACE && lastTraceMethod != ReverseTraceMethod.FULL_TRACE) { if (fLastTraceMethod != ReverseTraceMethod.STOP_TRACE && fLastTraceMethod != ReverseTraceMethod.FULL_TRACE) {
HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseHardTrace"); //$NON-NLS-1$ HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseHardTrace"); //$NON-NLS-1$
element.setIcon(tracemethodOffImages[1]); element.setIcon(fTracemethodOffImages[1]);
} } else if (fLastTraceMethod == ReverseTraceMethod.FULL_TRACE) {
else if (lastTraceMethod == ReverseTraceMethod.FULL_TRACE) {
HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseSoftTrace"); //$NON-NLS-1$ HandlerUtil.updateRadioState(commandService.getCommand(REVERSE_TOGGLE_COMMAND_ID), "UseSoftTrace"); //$NON-NLS-1$
element.setIcon(tracemethodOffImages[0]); element.setIcon(fTracemethodOffImages[0]);
} } else {
else { element.setIcon(fTracemethodDefaultImage);
element.setIcon(tracemethodDefaultImage);
} }
} }
} }