1 11 package org.eclipse.debug.internal.ui.actions.context; 12 13 import org.eclipse.debug.internal.ui.DebugUIPlugin; 14 import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; 15 import org.eclipse.debug.ui.DebugUITools; 16 import org.eclipse.jface.action.IAction; 17 import org.eclipse.jface.preference.IPreferenceStore; 18 import org.eclipse.jface.util.IPropertyChangeListener; 19 import org.eclipse.jface.util.PropertyChangeEvent; 20 import org.eclipse.ui.IViewActionDelegate; 21 import org.eclipse.ui.IViewPart; 22 23 26 public class ToggleStepFiltersActionDelegate extends AbstractDebugContextActionDelegate implements IPropertyChangeListener, IViewActionDelegate { 27 28 public ToggleStepFiltersActionDelegate() 29 { 30 setAction(new ToggleStepFiltersAction()); 31 } 32 33 36 public void init(IAction action) { 37 super.init(action); 38 getWindowAction().setChecked(isUseStepFilters()); 39 getPreferenceStore().addPropertyChangeListener(this); 40 } 41 42 private boolean isUseStepFilters() { 43 return DebugUIPlugin.getDefault().getStepFilterManager().isUseStepFilters(); 44 } 45 46 private IPreferenceStore getPreferenceStore() { 47 return DebugUIPlugin.getDefault().getPreferenceStore(); 48 } 49 50 53 public void propertyChange(PropertyChangeEvent event) { 54 if (event.getProperty().equals(IInternalDebugUIConstants.PREF_USE_STEP_FILTERS)) { 56 Object newValue= event.getNewValue(); 57 if (newValue instanceof Boolean ) { 58 getWindowAction().setChecked(((Boolean )(newValue)).booleanValue()); 59 } else if (newValue instanceof String ) { 60 getWindowAction().setChecked(Boolean.valueOf((String )newValue).booleanValue()); 61 } 62 } 63 } 64 65 68 public void dispose() { 69 getPreferenceStore().removePropertyChangeListener(this); 70 } 71 72 75 public void run(IAction action) { 76 DebugUITools.setUseStepFilters(action.isChecked()); 77 } 78 79 80 public void init(IViewPart view) { 81 init(view.getSite().getWorkbenchWindow()); 82 } 83 } 84 | Popular Tags |