| 1 11 package org.eclipse.debug.internal.ui.launchConfigurations; 12 13 import org.eclipse.debug.internal.ui.DebugUIPlugin; 14 import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; 15 import org.eclipse.debug.internal.ui.SWTFactory; 16 import org.eclipse.jface.action.Action; 17 import org.eclipse.jface.action.ActionContributionItem; 18 import org.eclipse.jface.action.IAction; 19 import org.eclipse.jface.action.IMenuCreator; 20 import org.eclipse.jface.preference.IPreferenceStore; 21 import org.eclipse.swt.SWT; 22 import org.eclipse.swt.widgets.Control; 23 import org.eclipse.swt.widgets.Menu; 24 import org.eclipse.swt.widgets.MenuItem; 25 26 30 public class FilterDropDownMenuCreator implements IMenuCreator { 31 32 36 class FilterAction extends Action { 37 38 39 private IPreferenceStore fStore = null; 40 41 42 private String fKey = null; 43 44 50 public FilterAction(Menu menu, IPreferenceStore store, String name, String key) { 51 super(name, IAction.AS_CHECK_BOX); 52 fStore = store; 53 fKey = key; 54 setChecked(fStore.getBoolean(fKey)); 55 fillIntoMenu(menu, this); 56 } 57 58 64 public FilterAction(Menu menu, String name, IMenuCreator creator) { 65 super(name, IAction.AS_DROP_DOWN_MENU); 66 setMenuCreator(creator); 67 fillIntoMenu(menu, this); 68 } 69 70 75 private void fillIntoMenu(Menu menu, IAction action) { 76 ActionContributionItem item = new ActionContributionItem(action); 77 item.fill(menu, -1); 78 } 79 80 83 public void run() { 84 if(fStore != null) { 85 fStore.setValue(fKey, isChecked()); 86 } 87 } 88 } 89 90 93 private Menu fCreatedMenu = null; 94 95 99 private IPreferenceStore getDebugPrefStore() { 100 return DebugUIPlugin.getDefault().getPreferenceStore(); 101 } 102 103 106 public void dispose() { 107 fCreatedMenu = null; 108 } 109 110 113 public Menu getMenu(Control parent) { 114 if(fCreatedMenu != null) { 115 fCreatedMenu.dispose(); 116 } 117 fCreatedMenu = new Menu(parent); 119 new FilterAction(fCreatedMenu, getDebugPrefStore(), LaunchConfigurationsMessages.FilterDropDownMenuCreator_0, IInternalDebugUIConstants.PREF_FILTER_LAUNCH_CLOSED); 120 new FilterAction(fCreatedMenu, getDebugPrefStore(), LaunchConfigurationsMessages.FilterDropDownMenuCreator_1, IInternalDebugUIConstants.PREF_FILTER_LAUNCH_DELETED); 121 new FilterAction(fCreatedMenu, getDebugPrefStore(), LaunchConfigurationsMessages.FilterDropDownMenuCreator_2, IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES); 122 new FilterAction(fCreatedMenu, getDebugPrefStore(), LaunchConfigurationsMessages.FilterDropDownMenuCreator_4, IInternalDebugUIConstants.PREF_FILTER_WORKING_SETS); 123 124 new MenuItem(fCreatedMenu, SWT.SEPARATOR); 126 127 IAction action = new Action(LaunchConfigurationsMessages.FilterDropDownMenuCreator_3) { 129 public void run() { 130 SWTFactory.showPreferencePage("org.eclipse.debug.ui.LaunchConfigurations"); } 132 }; 133 new ActionContributionItem(action).fill(fCreatedMenu, -1); 134 return fCreatedMenu; 135 } 136 137 140 public Menu getMenu(Menu parent) { 141 return fCreatedMenu; 142 } 143 } 144 | Popular Tags |