final Object[] args= { null, gesture, null };
		public void configure(SourceViewerConfiguration configuration) {			super.configure(configuration);			fCorrectionAssistant= new JavaCorrectionAssistant(CompilationUnitEditor.this);			fCorrectionAssistant.install(this);						IContentAssistant contentAssistant= getContentAssistant();			if (contentAssistant instanceof ContentAssistant) {				int nSeparateCategories= 0;				List categories= CompletionProposalComputerRegistry.getDefault().getProposalCategories();				for (Iterator it= categories.iterator(); it.hasNext();) {					CompletionProposalCategory category= (CompletionProposalCategory) it.next();					if (category.isSeparateCommand() && category.hasComputers())						nSeparateCategories++;				}								if (nSeparateCategories > 0) {					ContentAssistant assistant= (ContentAssistant) contentAssistant;					String shortcut= getContentAssistKeyBinding();					String gesture= shortcut != null ? MessageFormat.format(JavaEditorMessages.CompilationUnitEditor_content_assist_toggle_affordance_press_gesture, new Object[] { shortcut }) : JavaEditorMessages.CompilationUnitEditor_content_assist_toggle_affordance_click_gesture;					final MessageFormat format= new MessageFormat(JavaEditorMessages.CompilationUnitEditor_content_assist_toggle_affordance_update_message);					final Object[] args= { null, gesture, null }; 					assistant.setMessage(""); //$NON-NLS-1$					assistant.addCompletionListener(new ICompletionListener() {						public void computingProposals(ContentAssistEvent event) {							JavaCompletionProcessor proc= (JavaCompletionProcessor) event.processor;							proc.setRepeatedInvocation(event.repetition);							String current= proc.getCurrentCategory();							String next= proc.getNextCategory();							args[0]= current;							args[2]= next;							String message= format.format(args);							event.assistant.setMessage(message);						}					});				}			}		}