Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 26205c82976b09e44e62e2723f73b26a63067f70 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*
* Copyright (c) 2002 IBM Corporation and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
* 
* Contributors:
*   IBM - Initial API and implementation
*   Jens Lukowski/Innoopract - initial renaming/restructuring
* 
*/
package org.eclipse.wst.sse.ui.internal.taginfo;



import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextHover;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.ITypedRegion;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.wst.sse.core.IModelManager;
import org.eclipse.wst.sse.core.IModelManagerPlugin;

/**
 * Provides debug hover help
 * 
 * @author amywu
 * @see org.eclipse.jface.text.ITextHover
 */
public class DebugInfoHoverProcessor implements ITextHover {
	public static final String TRACEFILTER = "debuginfohover"; // $NON-NLS-1$ //$NON-NLS-1$
	private static final String EDITOR_PLUGIN_ID = "org.eclipse.wst.sse.ui"; // $NON-NLS-1$ //$NON-NLS-1$
	protected IPreferenceStore fPreferenceStore = null;

	public DebugInfoHoverProcessor() {
	}

	/* (non-Javadoc)
	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
	 */
	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
		if ((hoverRegion == null) || (viewer == null) || (viewer.getDocument() == null))
			return null;

		String displayText = null;
		int offset = hoverRegion.getOffset();

		ITypedRegion region = viewer.getDocument().getDocumentPartitioner().getPartition(offset);
		if (region != null) {
			displayText = region.getType();
		}

		return displayText;
	}

	/**
	 * @deprecated if enabled flag is false, dont call getHoverInfo in the first place if true, use getHoverInfo(ITextViewer, int)
	 */
	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion, boolean enabled) {
		if (enabled)
			return getHoverInfo(viewer, hoverRegion);
		else
			return null;
	}

	/**
	 * Returns the region to hover the text over based on the offset.
	 * @param textViewer
	 * @param offset
	 * 
	 * @return IRegion region to hover over if offset is
	 * not over invalid whitespace.  otherwise, returns <code>null</code>
	 * 
	 * @see ITextHover#getHoverRegion(ITextViewer, int)
	 */
	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
		if ((textViewer == null) || (textViewer.getDocument() == null))
			return null;

		ITypedRegion region = textViewer.getDocument().getDocumentPartitioner().getPartition(offset);
		return region;
	}

	/**
	 * @deprecated if enabled flag is false, dont call getHoverRegion in the first place if true, use getHoverRegion(ITextViewer, int)
	 */
	public IRegion getHoverRegion(ITextViewer textViewer, int offset, boolean enabled) {
		if (enabled)
			return getHoverRegion(textViewer, offset);
		else
			return null;
	}

	/**
	 * @deprecated hover processor no longer preference store-dependent
	 */
	protected IPreferenceStore getPreferenceStore() {
		if (fPreferenceStore == null) {
			fPreferenceStore = ((AbstractUIPlugin) Platform.getPlugin(EDITOR_PLUGIN_ID)).getPreferenceStore();
		}
		return fPreferenceStore;
	}

	/**
	 * @deprecated this method will not longer be used once other deprecated methods are removed
	 */
	private IModelManager getModelManager() {

		IModelManagerPlugin plugin = (IModelManagerPlugin) Platform.getPlugin(IModelManagerPlugin.ID);
		return plugin.getModelManager();
	}

	/**
	 * @deprecated hover processor should not be preference store-dependent
	 */
	protected boolean isHoverHelpEnabled(ITextViewer viewer) {
		// returning false because this method is deprecated
		return false;
	}
}

Back to the top