diff options
author | bchilds | 2007-05-31 23:37:58 +0000 |
---|---|---|
committer | bchilds | 2007-05-31 23:37:58 +0000 |
commit | 29077fed7d1a2c74ba4028333302d63ca5deb766 (patch) | |
tree | 662ab25f2eac449f3f30d0287a88b31f55b328f1 /bundles/org.eclipse.wst.jsdt.web.ui/src/org | |
parent | d5b9b8248644d33ba37e2703134b9ced98bb32d6 (diff) | |
download | webtools.sourceediting-29077fed7d1a2c74ba4028333302d63ca5deb766.tar.gz webtools.sourceediting-29077fed7d1a2c74ba4028333302d63ca5deb766.tar.xz webtools.sourceediting-29077fed7d1a2c74ba4028333302d63ca5deb766.zip |
Some bug fixes for search in html .
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.web.ui/src/org')
-rw-r--r-- | bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java index e64a6bd5d6..31b9c25ea9 100644 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java +++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java @@ -88,18 +88,31 @@ public class JFaceNodeAdapterForJs extends JFaceNodeAdapterForHTML { return false; } - private Object[] getJSElementsFromNode(Node node) { + private synchronized Object[] getJSElementsFromNode(Node node) { + int startOffset = 0; - IJavaElement[] result = getJavaElementsInRange(node); - if (result == null) return null; - Object[] newResults = new Object[result.length]; - for (int i = 0; i < result.length; i++) { + int endOffset = 0; + int type = node.getNodeType(); + IJavaElement[] result = null; + JSPTranslation translation = null; + if (node.getNodeType() == Node.TEXT_NODE && (node instanceof NodeImpl)) { + startOffset = ((NodeImpl) node).getStartOffset(); + endOffset = ((NodeImpl) node).getEndOffset(); + translation = getTranslation(node); + result = translation.getAllElementsInJsRange(startOffset, endOffset); + } + + + + if (result == null) return null; + Object[] newResults = new Object[result.length]; + for (int i = 0; i < result.length; i++) { int htmllength = 0; int htmloffset = 0; Position position = null; try { htmllength = ((SourceRefElement) (result[i])).getSourceRange().getLength(); - htmloffset = getTranslation(node).getJspOffset(((SourceRefElement) (result[i])).getSourceRange().getOffset()); + htmloffset = translation.getJspOffset(((SourceRefElement) (result[i])).getSourceRange().getOffset()); position = new Position(htmloffset, htmllength); } catch (JavaModelException e) { e.printStackTrace(); @@ -138,18 +151,7 @@ public class JFaceNodeAdapterForJs extends JFaceNodeAdapterForHTML { return translationAdapter.getJSPTranslation(); } - private IJavaElement[] getJavaElementsInRange(Node node) { - int startOffset = 0; - int endOffset = 0; - int type = node.getNodeType(); - IJavaElement[] result = null; - if (node.getNodeType() == Node.TEXT_NODE && (node instanceof NodeImpl)) { - startOffset = ((NodeImpl) node).getStartOffset(); - endOffset = ((NodeImpl) node).getEndOffset(); - result = getTranslation(node).getAllElementsInJsRange(startOffset, endOffset); - } - return result; - } + private Object getJsNode(Node parent, IJavaElement root, Position position) { JsJfaceNode instance = new JsJfaceNode(parent, root, position); |