1
/*******************************************************************************
2
* Copyright (c) 2008 Symbian Software Systems and others.
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* http://www.eclipse.org/legal/epl-v10.html
9
* Andrew Ferguson (Symbian) - Initial implementation
10
*******************************************************************************/
11
package org.eclipse.cdt.internal.ui.text.doctools;
13
import java.util.List;
15
import org.eclipse.core.resources.IResource;
16
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.jface.text.contentassist.ICompletionProposal;
18
import org.eclipse.jface.text.contentassist.IContextInformation;
19
import org.eclipse.ui.IEditorPart;
20
import org.eclipse.ui.IWorkbenchPage;
21
import org.eclipse.ui.IWorkbenchWindow;
22
import org.eclipse.ui.PlatformUI;
24
import org.eclipse.cdt.core.model.ITranslationUnit;
25
import org.eclipse.cdt.ui.CUIPlugin;
26
import org.eclipse.cdt.ui.IWorkingCopyManager;
27
import org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext;
28
import org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer;
29
import org.eclipse.cdt.ui.text.doctools.IDocCommentOwner;
30
import org.eclipse.cdt.ui.text.doctools.IDocCommentViewerConfiguration;
33
abstract class AbstractDocCommentProposalComputer implements ICompletionProposalComputer {
35
protected abstract IDocCommentViewerConfiguration getConfiguration(IDocCommentOwner owner);
37
protected final IDocCommentViewerConfiguration getConfiguration() {
38
IResource resource= getResource();
39
IDocCommentOwner owner= DocCommentOwnerManager.getInstance().getCommentOwner(resource);
40
return getConfiguration(owner);
43
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
44
return getConfiguration().createProposalComputer().computeCompletionProposals(context, monitor);
47
public List<IContextInformation> computeContextInformation(
48
ContentAssistInvocationContext context, IProgressMonitor monitor) {
49
return getConfiguration().createProposalComputer().computeContextInformation(context, monitor);
52
public String getErrorMessage() {
53
return getConfiguration().createProposalComputer().getErrorMessage();
56
public void sessionEnded() {
60
public void sessionStarted() {
65
private static IResource getResource() {
66
ITranslationUnit tu= getTranslationUnit();
67
return tu.getResource();
70
private static ITranslationUnit getTranslationUnit() {
71
IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
75
IWorkbenchPage page= window.getActivePage();
79
IEditorPart editor= page.getActiveEditor();
83
IWorkingCopyManager manager= CUIPlugin.getDefault().getWorkingCopyManager();
84
ITranslationUnit unit= manager.getWorkingCopy(editor.getEditorInput());