Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 123755
Collapse All | Expand All

(-)ui/org/eclipse/jdt/ui/actions/RefactorActionGroup.java (-7 / +33 lines)
Lines 49-61 Link Here
49
import org.eclipse.jdt.core.IJavaElement;
49
import org.eclipse.jdt.core.IJavaElement;
50
50
51
import org.eclipse.jdt.ui.IContextMenuConstants;
51
import org.eclipse.jdt.ui.IContextMenuConstants;
52
import org.eclipse.jdt.ui.JavaUI;
52
53
53
import org.eclipse.jdt.internal.ui.JavaPlugin;
54
import org.eclipse.jdt.internal.ui.actions.ActionMessages;
54
import org.eclipse.jdt.internal.ui.actions.ActionMessages;
55
import org.eclipse.jdt.internal.ui.actions.ActionUtil;
55
import org.eclipse.jdt.internal.ui.actions.ActionUtil;
56
import org.eclipse.jdt.internal.ui.actions.JDTQuickMenuAction;
56
import org.eclipse.jdt.internal.ui.actions.JDTQuickMenuAction;
57
import org.eclipse.jdt.internal.ui.actions.SelectionConverter;
57
import org.eclipse.jdt.internal.ui.actions.SelectionConverter;
58
import org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor;
58
import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
59
import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
60
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
59
import org.eclipse.jdt.internal.ui.javaeditor.JavaTextSelection;
61
import org.eclipse.jdt.internal.ui.javaeditor.JavaTextSelection;
60
import org.eclipse.jdt.internal.ui.refactoring.RefactoringMessages;
62
import org.eclipse.jdt.internal.ui.refactoring.RefactoringMessages;
61
63
Lines 113-119 Link Here
113
	public static final String GROUP_CODING2= "codingGroup2"; //$NON-NLS-1$
115
	public static final String GROUP_CODING2= "codingGroup2"; //$NON-NLS-1$
114
116
115
	private IWorkbenchSite fSite;
117
	private IWorkbenchSite fSite;
116
	private CompilationUnitEditor fEditor;
118
	private JavaEditor fEditor;
117
	private String fGroupName= IContextMenuConstants.GROUP_REORGANIZE;
119
	private String fGroupName= IContextMenuConstants.GROUP_REORGANIZE;
118
120
119
 	private SelectionDispatchAction fMoveAction;
121
 	private SelectionDispatchAction fMoveAction;
Lines 146-152 Link Here
146
	private static final String QUICK_MENU_ID= "org.eclipse.jdt.ui.edit.text.java.refactor.quickMenu"; //$NON-NLS-1$
148
	private static final String QUICK_MENU_ID= "org.eclipse.jdt.ui.edit.text.java.refactor.quickMenu"; //$NON-NLS-1$
147
	
149
	
148
	private class RefactorQuickAccessAction extends JDTQuickMenuAction {
150
	private class RefactorQuickAccessAction extends JDTQuickMenuAction {
149
		public RefactorQuickAccessAction(CompilationUnitEditor editor) {
151
		public RefactorQuickAccessAction(JavaEditor editor) {
150
			super(editor, QUICK_MENU_ID); 
152
			super(editor, QUICK_MENU_ID); 
151
		}
153
		}
152
		protected void fillMenu(IMenuManager menu) {
154
		protected void fillMenu(IMenuManager menu) {
Lines 333-338 Link Here
333
		
335
		
334
		stats.endRun();
336
		stats.endRun();
335
	}
337
	}
338
	
339
	
340
	/**
341
	 * Note: This constructor is for internal use only. Clients should not call this constructor.
342
	 * @param editor the compilation unit editor
343
	 * @param groupName the group name to add the actions to
344
	 */
345
	public RefactorActionGroup(ClassFileEditor editor, String groupName) {
346
		
347
		fSite= editor.getEditorSite();
348
		fEditor= editor;
349
		fGroupName= groupName;
350
		ISelectionProvider provider= editor.getSelectionProvider();
351
		ISelection selection= provider.getSelection();
352
		fEditorActions= new ArrayList();
353
		
354
		fIntroduceIndirectionAction= new IntroduceIndirectionAction(editor);
355
		fIntroduceIndirectionAction.setActionDefinitionId(IJavaEditorActionDefinitionIds.INTRODUCE_INDIRECTION);
356
		initAction(fIntroduceIndirectionAction, provider, selection);
357
		editor.setAction("IntroduceIndirection", fIntroduceIndirectionAction); //$NON-NLS-1$
358
		fEditorActions.add(fIntroduceIndirectionAction);
359
		
360
		fQuickAccessAction= new RefactorQuickAccessAction(editor);
361
		fKeyBindingService= editor.getEditorSite().getKeyBindingService();
362
		fKeyBindingService.registerAction(fQuickAccessAction);
363
	}
336
364
337
	private RefactorActionGroup(IWorkbenchSite site, IKeyBindingService keyBindingService) {
365
	private RefactorActionGroup(IWorkbenchSite site, IKeyBindingService keyBindingService) {
338
366
Lines 595-607 Link Here
595
	}
623
	}
596
	
624
	
597
	private IJavaElement getEditorInput() {
625
	private IJavaElement getEditorInput() {
598
		return JavaPlugin.getDefault().getWorkingCopyManager().getWorkingCopy(
626
		return JavaUI.getEditorInputJavaElement(fEditor.getEditorInput());
599
			fEditor.getEditorInput());		
600
	}
627
	}
601
	
628
	
602
	private IDocument getDocument() {
629
	private IDocument getDocument() {
603
		return JavaPlugin.getDefault().getCompilationUnitDocumentProvider().
630
		return fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput());
604
			getDocument(fEditor.getEditorInput());
605
	}
631
	}
606
	
632
	
607
	private void fillQuickMenu(IMenuManager menu) {
633
	private void fillQuickMenu(IMenuManager menu) {
(-)ui/org/eclipse/jdt/internal/ui/javaeditor/JavaTextSelection.java (-1 / +2 lines)
Lines 13-18 Link Here
13
import org.eclipse.jface.text.IDocument;
13
import org.eclipse.jface.text.IDocument;
14
import org.eclipse.jface.text.TextSelection;
14
import org.eclipse.jface.text.TextSelection;
15
15
16
import org.eclipse.jdt.core.IClassFile;
16
import org.eclipse.jdt.core.ICompilationUnit;
17
import org.eclipse.jdt.core.ICompilationUnit;
17
import org.eclipse.jdt.core.IJavaElement;
18
import org.eclipse.jdt.core.IJavaElement;
18
import org.eclipse.jdt.core.JavaModelException;
19
import org.eclipse.jdt.core.JavaModelException;
Lines 95-101 Link Here
95
		if (fPartialASTRequested)
96
		if (fPartialASTRequested)
96
			return fPartialAST;
97
			return fPartialAST;
97
		fPartialASTRequested= true;
98
		fPartialASTRequested= true;
98
		if (! (fElement instanceof ICompilationUnit))
99
		if (!(fElement instanceof ICompilationUnit) && !(fElement instanceof IClassFile)) //TODO and has source?
99
			return null;
100
			return null;
100
		// long start= System.currentTimeMillis();
101
		// long start= System.currentTimeMillis();
101
		fPartialAST= JavaPlugin.getDefault().getASTProvider().getAST(fElement, ASTProvider.WAIT_YES, null);
102
		fPartialAST= JavaPlugin.getDefault().getASTProvider().getAST(fElement, ASTProvider.WAIT_YES, null);
(-)ui/org/eclipse/jdt/internal/ui/javaeditor/ClassFileEditor.java (+30 lines)
Lines 47-52 Link Here
47
import org.eclipse.swt.widgets.ScrollBar;
47
import org.eclipse.swt.widgets.ScrollBar;
48
import org.eclipse.swt.widgets.Shell;
48
import org.eclipse.swt.widgets.Shell;
49
49
50
import org.eclipse.jface.action.IMenuManager;
50
import org.eclipse.jface.operation.IRunnableWithProgress;
51
import org.eclipse.jface.operation.IRunnableWithProgress;
51
import org.eclipse.jface.preference.IPreferenceStore;
52
import org.eclipse.jface.preference.IPreferenceStore;
52
import org.eclipse.jface.resource.JFaceResources;
53
import org.eclipse.jface.resource.JFaceResources;
Lines 61-66 Link Here
61
import org.eclipse.ui.IFileEditorInput;
62
import org.eclipse.ui.IFileEditorInput;
62
import org.eclipse.ui.IMemento;
63
import org.eclipse.ui.IMemento;
63
import org.eclipse.ui.PlatformUI;
64
import org.eclipse.ui.PlatformUI;
65
import org.eclipse.ui.actions.ActionContext;
66
import org.eclipse.ui.actions.ActionGroup;
64
import org.eclipse.ui.texteditor.IDocumentProvider;
67
import org.eclipse.ui.texteditor.IDocumentProvider;
65
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
68
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
66
69
Lines 80-89 Link Here
80
import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
83
import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
81
import org.eclipse.jdt.internal.corext.util.Messages;
84
import org.eclipse.jdt.internal.corext.util.Messages;
82
85
86
import org.eclipse.jdt.ui.actions.RefactorActionGroup;
83
import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
87
import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
84
88
85
import org.eclipse.jdt.internal.ui.JavaPlugin;
89
import org.eclipse.jdt.internal.ui.JavaPlugin;
86
import org.eclipse.jdt.internal.ui.JavaUIStatus;
90
import org.eclipse.jdt.internal.ui.JavaUIStatus;
91
import org.eclipse.jdt.internal.ui.actions.CompositeActionGroup;
87
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
92
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
88
import org.eclipse.jdt.internal.ui.wizards.buildpaths.SourceAttachmentBlock;
93
import org.eclipse.jdt.internal.ui.wizards.buildpaths.SourceAttachmentBlock;
89
94
Lines 481-486 Link Here
481
	private Control fSourceAttachmentForm;
486
	private Control fSourceAttachmentForm;
482
487
483
	private InputUpdater fInputUpdater= new InputUpdater();
488
	private InputUpdater fInputUpdater= new InputUpdater();
489
	private CompositeActionGroup fContextMenuGroup;
484
490
485
	/**
491
	/**
486
	 * Default constructor.
492
	 * Default constructor.
Lines 502-507 Link Here
502
508
503
		setAction(ITextEditorActionConstants.SAVE, null);
509
		setAction(ITextEditorActionConstants.SAVE, null);
504
		setAction(ITextEditorActionConstants.REVERT_TO_SAVED, null);
510
		setAction(ITextEditorActionConstants.REVERT_TO_SAVED, null);
511
		
512
		ActionGroup rg= new RefactorActionGroup(this, ITextEditorActionConstants.GROUP_EDIT);
513
		fActionGroups.addGroup(rg);
514
515
		// We have to keep the context menu group separate to have better control over positioning
516
		fContextMenuGroup= new CompositeActionGroup(new ActionGroup[] { rg });
505
517
506
		/*
518
		/*
507
		 * 1GF82PL: ITPJUI:ALL - Need to be able to add bookmark to classfile
519
		 * 1GF82PL: ITPJUI:ALL - Need to be able to add bookmark to classfile
Lines 514-519 Link Here
514
		 *	setAction(ITextEditorActionConstants.RULER_MANAGE_TASKS, new ClassFileMarkerRulerAction("ManageTasks.", getVerticalRuler(), this, IMarker.TASK, true)); //$NON-NLS-1$
526
		 *	setAction(ITextEditorActionConstants.RULER_MANAGE_TASKS, new ClassFileMarkerRulerAction("ManageTasks.", getVerticalRuler(), this, IMarker.TASK, true)); //$NON-NLS-1$
515
		 */
527
		 */
516
	}
528
	}
529
	
530
	/*
531
	 * @see AbstractTextEditor#editorContextMenuAboutToShow(IMenuManager)
532
	 */
533
	public void editorContextMenuAboutToShow(IMenuManager menu) {
534
		super.editorContextMenuAboutToShow(menu);
535
536
		ActionContext context= new ActionContext(getSelectionProvider().getSelection());
537
		fContextMenuGroup.setContext(context);
538
		fContextMenuGroup.fillContextMenu(menu);
539
		fContextMenuGroup.setContext(null);
540
	}
517
541
518
	/*
542
	/*
519
	 * @see JavaEditor#getElementAt(int)
543
	 * @see JavaEditor#getElementAt(int)
Lines 756-761 Link Here
756
		IDocumentProvider documentProvider= getDocumentProvider();
780
		IDocumentProvider documentProvider= getDocumentProvider();
757
		if (documentProvider instanceof ClassFileDocumentProvider)
781
		if (documentProvider instanceof ClassFileDocumentProvider)
758
			((ClassFileDocumentProvider) documentProvider).removeInputChangeListener(this);
782
			((ClassFileDocumentProvider) documentProvider).removeInputChangeListener(this);
783
		
784
		if (fActionGroups != null) {
785
			fActionGroups.dispose();
786
			fActionGroups= null;
787
		}
788
		
759
		super.dispose();
789
		super.dispose();
760
	}
790
	}
761
791

Return to bug 123755