1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-05 07:15:39 +02:00

Allow to reuse GenerateActionGroup without adding a key binding handler

This commit is contained in:
Anton Leherbauer 2011-07-28 13:51:40 +02:00
parent acc49b9da2
commit 535cacca94

View file

@ -139,6 +139,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
private IHandlerActivation fQuickAccessHandlerActivation; private IHandlerActivation fQuickAccessHandlerActivation;
private IHandlerService fHandlerService; private IHandlerService fHandlerService;
private final ISelectionProvider fSelectionProvider;
/** /**
* Note: This constructor is for internal use only. Clients should not call this constructor. * Note: This constructor is for internal use only. Clients should not call this constructor.
@ -149,6 +150,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
*/ */
public GenerateActionGroup(CEditor editor, String groupName) { public GenerateActionGroup(CEditor editor, String groupName) {
fSite= editor.getSite(); fSite= editor.getSite();
fSelectionProvider= fSite.getSelectionProvider();
fEditor= editor; fEditor= editor;
fGroupName= groupName; fGroupName= groupName;
@ -224,7 +226,9 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
* @param page the page that owns this action group * @param page the page that owns this action group
*/ */
public GenerateActionGroup(Page page) { public GenerateActionGroup(Page page) {
this(page.getSite()); this(page.getSite(), null);
installQuickAccessAction();
} }
/** /**
@ -235,13 +239,26 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
* @param part the view part that owns this action group * @param part the view part that owns this action group
*/ */
public GenerateActionGroup(IViewPart part) { public GenerateActionGroup(IViewPart part) {
this(part.getSite()); this(part.getSite(), null);
installQuickAccessAction();
} }
private GenerateActionGroup(IWorkbenchSite site) { /**
* Creates a new <code>GenerateActionGroup</code>. The group requires
* that the selection provided by the given selection provider is of type
* {@link IStructuredSelection}.
*
* @param site the site that will own the action group.
* @param selectionProvider the selection provider used instead of the
* page selection provider.
*
* @since 5.4
*/
public GenerateActionGroup(IWorkbenchSite site, ISelectionProvider selectionProvider) {
fSite= site; fSite= site;
ISelectionProvider provider= fSite.getSelectionProvider(); fSelectionProvider= selectionProvider == null ? fSite.getSelectionProvider() : selectionProvider;
ISelection selection= provider.getSelection(); ISelection selection= fSelectionProvider.getSelection();
// fOverrideMethods= new OverrideMethodsAction(site); // fOverrideMethods= new OverrideMethodsAction(site);
// fOverrideMethods.setActionDefinitionId(ICEditorActionDefinitionIds.OVERRIDE_METHODS); // fOverrideMethods.setActionDefinitionId(ICEditorActionDefinitionIds.OVERRIDE_METHODS);
@ -314,25 +331,23 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
fAddTaskAction.setEnabled(false); fAddTaskAction.setEnabled(false);
} }
// registerSelectionListener(provider, fOverrideMethods); // registerSelectionListener(fSelectionProvider, fOverrideMethods);
// registerSelectionListener(provider, fAddDelegateMethods); // registerSelectionListener(fSelectionProvider, fAddDelegateMethods);
// registerSelectionListener(provider, fAddUnimplementedConstructors); // registerSelectionListener(fSelectionProvider, fAddUnimplementedConstructors);
// registerSelectionListener(provider, fGenerateConstructorUsingFields); // registerSelectionListener(fSelectionProvider, fGenerateConstructorUsingFields);
// registerSelectionListener(provider, fHashCodeEquals); // registerSelectionListener(fSelectionProvider, fHashCodeEquals);
// registerSelectionListener(provider, fAddCppDocStub); // registerSelectionListener(fSelectionProvider, fAddCppDocStub);
registerSelectionListener(provider, fAddBookmark); registerSelectionListener(fSelectionProvider, fAddBookmark);
// registerSelectionListener(provider, fExternalizeStrings); // registerSelectionListener(fSelectionProvider, fExternalizeStrings);
// registerSelectionListener(provider, fFindNLSProblems); // registerSelectionListener(fSelectionProvider, fFindNLSProblems);
// registerSelectionListener(provider, fOrganizeIncludes); // registerSelectionListener(fSelectionProvider, fOrganizeIncludes);
registerSelectionListener(provider, fFormatAll); registerSelectionListener(fSelectionProvider, fFormatAll);
// registerSelectionListener(provider, fSortMembers); // registerSelectionListener(fSelectionProvider, fSortMembers);
registerSelectionListener(provider, fAddTaskAction); registerSelectionListener(fSelectionProvider, fAddTaskAction);
// registerSelectionListener(provider, fCleanUp); // registerSelectionListener(fSelectionProvider, fCleanUp);
selectionChanged(new SelectionChangedEvent(provider, selection)); selectionChanged(new SelectionChangedEvent(fSelectionProvider, selection));
registerSelectionListener(provider, this); registerSelectionListener(fSelectionProvider, this);
installQuickAccessAction();
} }
private void installQuickAccessAction() { private void installQuickAccessAction() {
@ -466,7 +481,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
@Override @Override
public void dispose() { public void dispose() {
if (fRegisteredSelectionListeners != null) { if (fRegisteredSelectionListeners != null) {
ISelectionProvider provider= fSite.getSelectionProvider(); ISelectionProvider provider= fSelectionProvider;
for (Iterator<ISelectionChangedListener> iter= fRegisteredSelectionListeners.iterator(); iter.hasNext();) { for (Iterator<ISelectionChangedListener> iter= fRegisteredSelectionListeners.iterator(); iter.hasNext();) {
ISelectionChangedListener listener= iter.next(); ISelectionChangedListener listener= iter.next();
provider.removeSelectionChangedListener(listener); provider.removeSelectionChangedListener(listener);