diff -r cb6bcdf0c6ce xml.text/src/org/netbeans/modules/xml/text/completion/AttributeResultItem.java --- a/xml.text/src/org/netbeans/modules/xml/text/completion/AttributeResultItem.java Thu Jun 10 14:53:23 2010 +0200 +++ b/xml.text/src/org/netbeans/modules/xml/text/completion/AttributeResultItem.java Sun May 01 14:23:44 2011 +0200 @@ -48,6 +48,7 @@ import javax.swing.text.JTextComponent; import org.netbeans.modules.xml.api.model.*; +import org.netbeans.spi.editor.completion.CompletionTask; /** * It represents attribute name (or namespace prefix). @@ -59,9 +60,12 @@ // we are requested to avoid appending extra data private boolean inline = false; + + private final GrammarResult res; public AttributeResultItem(GrammarResult res, boolean inline){ super(res.getNodeName()); + this.res = res; selectionForeground = foreground = Color.green.darker().darker(); this.inline = inline; } @@ -78,4 +82,9 @@ } Color getPaintColor() { return Color.blue; } + + @Override + public CompletionTask createDocumentationTask() { + return doCreateDocumentationTask(res); + } } diff -r cb6bcdf0c6ce xml.text/src/org/netbeans/modules/xml/text/completion/ElementResultItem.java --- a/xml.text/src/org/netbeans/modules/xml/text/completion/ElementResultItem.java Thu Jun 10 14:53:23 2010 +0200 +++ b/xml.text/src/org/netbeans/modules/xml/text/completion/ElementResultItem.java Sun May 01 14:23:44 2011 +0200 @@ -116,50 +116,9 @@ @Override public CompletionTask createDocumentationTask() { - return new CompletionTask() { - public void query(CompletionResultSet resultSet) { - if (res != null && res.getDescription() != null) { - resultSet.setDocumentation(new Docum(res.getDescription())); - - } - resultSet.finish(); - } - public void refresh(CompletionResultSet resultSet) { - if (res != null && res.getDescription() != null) { - resultSet.setDocumentation(new Docum(res.getDescription())); - } - resultSet.finish(); - } - public void cancel() {} - }; + return doCreateDocumentationTask(res); } - private class Docum implements CompletionDocumentation { - private String doc; - - private Docum(String doc) { - this.doc = doc; - } - - public String getText() { - return doc; - } - - public URL getURL() { - return null; - } - - public CompletionDocumentation resolveLink(String link) { - return null; - } - - public Action getGotoSourceAction() { - return null; - } - - } - - /** * If called with SHIFT_MASK modified it createa a start tag and * end tag pair and place caret between them. diff -r cb6bcdf0c6ce xml.text/src/org/netbeans/modules/xml/text/completion/ValueResultItem.java --- a/xml.text/src/org/netbeans/modules/xml/text/completion/ValueResultItem.java Thu Jun 10 14:53:23 2010 +0200 +++ b/xml.text/src/org/netbeans/modules/xml/text/completion/ValueResultItem.java Sun May 01 14:23:44 2011 +0200 @@ -47,6 +47,7 @@ import java.beans.BeanInfo; import org.netbeans.modules.xml.api.model.*; +import org.netbeans.spi.editor.completion.CompletionTask; /** @@ -66,8 +67,11 @@ private final String replacementText; + private final GrammarResult res; + public ValueResultItem(GrammarResult res) { super(res.getDisplayName(), res.getDisplayName()); + this.res = res; foreground = Color.magenta; selectionForeground = Color.magenta.darker(); replacementText = res.getNodeValue(); @@ -82,4 +86,8 @@ @Override Color getPaintColor() { return Color.blue; } + @Override + public CompletionTask createDocumentationTask() { + return doCreateDocumentationTask(res); + } } diff -r cb6bcdf0c6ce xml.text/src/org/netbeans/modules/xml/text/completion/XMLResultItem.java --- a/xml.text/src/org/netbeans/modules/xml/text/completion/XMLResultItem.java Thu Jun 10 14:53:23 2010 +0200 +++ b/xml.text/src/org/netbeans/modules/xml/text/completion/XMLResultItem.java Sun May 01 14:23:44 2011 +0200 @@ -49,15 +49,20 @@ import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyEvent; +import java.net.URL; +import javax.swing.Action; import javax.swing.text.*; import javax.swing.Icon; import org.netbeans.editor.*; import javax.swing.JLabel; import org.netbeans.api.editor.completion.Completion; +import org.netbeans.modules.xml.api.model.GrammarResult; import org.netbeans.modules.xml.text.api.XMLDefaultTokenContext; import org.netbeans.modules.xml.text.syntax.XMLSyntaxSupport; +import org.netbeans.spi.editor.completion.CompletionDocumentation; import org.netbeans.spi.editor.completion.CompletionItem; +import org.netbeans.spi.editor.completion.CompletionResultSet; import org.netbeans.spi.editor.completion.CompletionTask; /** @@ -310,6 +315,58 @@ //return new AsyncCompletionTask(new DocQuery(this)); } + /** + * Helper method for result items providing documentation. + * @return + */ + protected CompletionTask doCreateDocumentationTask(final GrammarResult res) { + return new CompletionTask() { + public void query(CompletionResultSet resultSet) { + if (res != null && res.getDescription() != null) { + resultSet.setDocumentation(new Docum(res.getDescription())); + + } + resultSet.finish(); + } + public void refresh(CompletionResultSet resultSet) { + if (res != null && res.getDescription() != null) { + resultSet.setDocumentation(new Docum(res.getDescription())); + } + resultSet.finish(); + } + public void cancel() {} + }; + } + + private static class Docum implements CompletionDocumentation { + private String doc; + + private Docum(String doc) { + this.doc = doc; + } + + @Override + public String getText() { + return doc; + } + + @Override + public URL getURL() { + return null; + } + + @Override + public CompletionDocumentation resolveLink(String link) { + return null; + } + + @Override + public Action getGotoSourceAction() { + return null; + } + + } + public CompletionTask createToolTipTask() { return null; }