01: /*******************************************************************************
02: * Copyright (c) 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.ui.editor.text;
11:
12: import org.eclipse.jface.text.IRegion;
13: import org.eclipse.jface.text.ITextViewer;
14: import org.eclipse.jface.text.Region;
15: import org.eclipse.jface.text.information.IInformationProvider;
16: import org.eclipse.jface.text.information.IInformationProviderExtension;
17: import org.eclipse.pde.internal.ui.editor.PDESourcePage;
18:
19: /**
20: * PDESourceInfoProvider
21: *
22: */
23: public class PDESourceInfoProvider implements IInformationProvider,
24: IInformationProviderExtension {
25:
26: private PDESourcePage fSourcePage;
27:
28: /**
29: *
30: */
31: public PDESourceInfoProvider(PDESourcePage sourcePage) {
32: fSourcePage = sourcePage;
33: }
34:
35: /* (non-Javadoc)
36: * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
37: */
38: public String getInformation(ITextViewer textViewer, IRegion subject) {
39: // This method is deprecated. Call the non-deprecated method
40: return getInformation2(textViewer, subject).toString();
41: }
42:
43: /* (non-Javadoc)
44: * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer, int)
45: */
46: public IRegion getSubject(ITextViewer textViewer, int offset) {
47: // Subject used in getInformation2
48: if ((textViewer == null) || (fSourcePage == null)) {
49: return null;
50: }
51: // Get the selected region
52: IRegion region = PDEWordFinder.findWord(textViewer
53: .getDocument(), offset);
54: // Ensure the region is defined. Define an empty one if it is not.
55: if (region == null) {
56: return new Region(offset, 0);
57: }
58: return region;
59: }
60:
61: /* (non-Javadoc)
62: * @see org.eclipse.jface.text.information.IInformationProviderExtension#getInformation2(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
63: */
64: public Object getInformation2(ITextViewer textViewer,
65: IRegion subject) {
66: // Calls setInput on the quick outline popup dialog
67: if ((textViewer == null) || (fSourcePage == null)) {
68: return null;
69: }
70: // Get the current selection, if any
71: Object selection = fSourcePage.getSelection();
72: // If the input is null, then the dialog does not open
73: // Define an empty object for no selection instead of null
74: if (selection == null) {
75: selection = new Object();
76: }
77: return selection;
78: // TODO: MP: QO: LOW: Determine range on MANIFEST.MF to do initial
79: // dynamic selection. Use IRegion. Already implemented for plugin.xml file
80: // see XMLContentAssistProcessor.assignRange()
81: }
82:
83: }
|