for (Iterator it= fCategories.iterator(); it.hasNext();) { CompletionProposalCategory cat= (CompletionProposalCategory) it.next(); cat.sessionEnded(); }
	public ContentAssistProcessor(ContentAssistant assistant, String partition) {		Assert.isNotNull(partition);		Assert.isNotNull(assistant);		fPartition= partition;		fCategories= CompletionProposalComputerRegistry.getDefault().getProposalCategories();		fAssistant= assistant;		fAssistant.addCompletionListener(new ICompletionListener() {						/*			 * @see org.eclipse.jface.text.contentassist.ICompletionListener#assistSessionStarted(org.eclipse.jface.text.contentassist.ContentAssistEvent)			 */			public void assistSessionStarted(ContentAssistEvent event) {				if (event.processor != ContentAssistProcessor.this)					return;								fCategoryIteration= getCategoryIteration();				fRepetition= 0;				fIterationGesture= getIterationGesture();				if (event.assistant instanceof IContentAssistantExtension2) {					IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant;					if (fCategoryIteration.size() == 1) {						extension.setRepeatedInvocationMode(false);						extension.setShowEmptyList(false);					} else {						extension.setRepeatedInvocationMode(true);						extension.setStatusLineVisible(true);						extension.setStatusMessage(createIterationMessage());						extension.setShowEmptyList(true);					}								}			}						/*			 * @see org.eclipse.jface.text.contentassist.ICompletionListener#assistSessionEnded(org.eclipse.jface.text.contentassist.ContentAssistEvent)			 */			public void assistSessionEnded(ContentAssistEvent event) {				if (event.processor != ContentAssistProcessor.this)					return;								fCategoryIteration= null;				fRepetition= -1;				fIterationGesture= null;				if (event.assistant instanceof IContentAssistantExtension2) {					IContentAssistantExtension2 extension= (IContentAssistantExtension2) event.assistant;					extension.setShowEmptyList(false);					extension.setRepeatedInvocationMode(false);					extension.setStatusLineVisible(false);				}			}			/*			 * @see org.eclipse.jface.text.contentassist.ICompletionListener#selectionChanged(org.eclipse.jface.text.contentassist.ICompletionProposal, boolean)			 */			public void selectionChanged(ICompletionProposal proposal, boolean smartToggle) {}					});	}