*/
private List collectProposals(ITextViewer viewer, int offset, IProgressMonitor monitor, CompletionProposalInvocationContext context) {
List proposals = new ArrayList();
List categories = getCategories();
for (Iterator it = categories.iterator(); it.hasNext();) {
CompletionProposalCategory cat = (CompletionProposalCategory) it.next();
//Add custom component in the list, such as jsp:usebean,t:actionlink
List computed = cat.computeCompletionProposals(context, this.fContentTypeID, this.fPartitionTypeID, new SubProgressMonitor(monitor, 1));
proposals.addAll(computed);
if (fErrorMessage == null) {
fErrorMessage= cat.getErrorMessage();
}
}
// if default page
// Deal with adding in proposals from processors added through the legacy extension