1 11 package org.eclipse.debug.internal.ui.commands.actions; 12 13 import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; 14 import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; 15 import org.eclipse.debug.core.DebugPlugin; 16 import org.eclipse.debug.core.commands.IStepFiltersHandler; 17 import org.eclipse.debug.internal.core.StepFilterManager; 18 import org.eclipse.debug.internal.ui.DebugPluginImages; 19 import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; 20 import org.eclipse.debug.internal.ui.actions.ActionMessages; 21 import org.eclipse.debug.ui.DebugUITools; 22 import org.eclipse.debug.ui.contexts.DebugContextEvent; 23 import org.eclipse.jface.resource.ImageDescriptor; 24 import org.eclipse.jface.viewers.ISelection; 25 import org.eclipse.ui.IWorkbenchPart; 26 import org.eclipse.ui.IWorkbenchWindow; 27 28 31 public class ToggleStepFiltersAction extends DebugCommandAction implements IPropertyChangeListener { 32 33 private boolean fInitialized = !DebugUITools.isUseStepFilters(); 34 35 38 public ImageDescriptor getDisabledImageDescriptor() { 39 return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_TOGGLE_STEP_FILTERS); 40 } 41 42 45 public String getHelpContextId() { 46 return "org.eclipse.debug.ui.step_with_filters_action_context"; } 48 49 52 public ImageDescriptor getHoverImageDescriptor() { 53 return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_TOGGLE_STEP_FILTERS); 54 } 55 56 59 public String getId() { 60 return "org.eclipse.debug.ui.actions.ToggleStepFilters"; } 62 63 66 public ImageDescriptor getImageDescriptor() { 67 return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_TOGGLE_STEP_FILTERS); 68 } 69 70 73 public String getText() { 74 return ActionMessages.ToggleStepFiltersAction_1; 75 } 76 77 80 public String getToolTipText() { 81 return ActionMessages.ToggleStepFiltersAction_0; 82 } 83 84 87 protected boolean getInitialEnablement() { 88 return true; 89 } 90 91 94 protected Class getCommandType() { 95 return IStepFiltersHandler.class; 96 } 97 98 101 public void run() { 102 if (fInitialized) { 106 DebugUITools.setUseStepFilters(!DebugUITools.isUseStepFilters()); 107 } else { 108 fInitialized = true; 109 } 110 } 111 112 115 public int getStyle() { 116 return AS_CHECK_BOX; 117 } 118 119 122 public void debugContextChanged(DebugContextEvent event) { 123 ISelection context = event.getContext(); 124 if (context.isEmpty()) { 125 setEnabled(true); 126 } else { 127 super.debugContextChanged(event); 128 } 129 } 130 131 134 public void init(IWorkbenchPart part) { 135 super.init(part); 136 initState(); 137 } 138 139 142 public void init(IWorkbenchWindow window) { 143 super.init(window); 144 initState(); 145 } 146 147 150 protected void initState() { 151 DebugPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(this); 152 } 153 154 157 public void dispose() { 158 super.dispose(); 159 DebugPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(this); 160 } 161 162 165 public void propertyChange(PropertyChangeEvent event) { 166 if (event.getProperty().equals(StepFilterManager.PREF_USE_STEP_FILTERS)) { 167 boolean checked = DebugUITools.isUseStepFilters(); 168 setChecked(checked); 169 DebugCommandActionDelegate delegate = getDelegate(); 170 if (delegate != null) { 171 delegate.setChecked(checked); 172 } 173 } 174 } 175 176 177 } 178 | Popular Tags |