`
lzchacker
  • 浏览: 15762 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

netbeans 插件开发 Hyperlink in a Plain Text File

    博客分类:
  • java
阅读更多

Hyperlink in a Plain Text File

Let's say you want to create a hyperlink in a plain text file, like this:

Here's how:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.text.StyledDocument;
import org.netbeans.api.editor.EditorRegistry;
import org.netbeans.lib.editor.hyperlink.spi.HyperlinkProvider;
import org.openide.util.Exceptions;

public class RoutesHyperlinkProvider implements HyperlinkProvider {

    private static String ROUTES_IDENTIFIER = "Application.index";
    private int startOffset;
    private int endOffset;

    @Override
    public boolean isHyperlinkPoint(Document doc, int offset) {
        Pattern p = Pattern.compile(ROUTES_IDENTIFIER);
        try {
            Matcher m = p.matcher(doc.getText(0, doc.getLength()));
            while (m.find() == true){
                startOffset = m.start();
                endOffset = m.end();
                return true;
            }
        } catch (BadLocationException ex) {
            Exceptions.printStackTrace(ex);
        }
        return false;
    }

    @Override
    public int[] getHyperlinkSpan(Document dcmnt, int i) {
        JTextComponent target = EditorRegistry.lastFocusedComponent();
        final StyledDocument styledDoc = (StyledDocument) target.getDocument();
        if (styledDoc == null) {
            return null;
        }
        // Return the position which was set in the isHyperlink method:
        return new int[]{startOffset, endOffset};
    }

    @Override
    public void performClickAction(Document dcmnt, int i) {
        //do something when the user clicks the hyperlink
    }
    
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics