浏览 2525 次
锁定老帖子 主题:如何在console中加入文件连接
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-17
使用eclipse的人都知道,在console中打印的异常stack信息可以连接到源文件,最近做的工具中需要相同的功能,于是调研了一下,原理很简单,看下面代码: MessageConsole console = new MessageConsole("My Console", null); IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); IConsole[] existing = manager.getConsoles(); boolean exists = false; for (int i = 0; i < existing.length; i++) { if (console == existing[i]) exists = true; } if (!exists) { manager.addConsoles(new IConsole[] { console }); } manager.showConsoleView(console); MessageConsoleStream stream = console.newMessageStream(); System.setOut(new PrintStream(stream)); //下面的代码只是说明如何向console中加入连接,没有实际意义 IDocument document = console.getDocument(); document.set("Test file link"); IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("t"); IFile file = p.getFile("test.js"); FileLink fl = new FileLink(file, "kaitone.wisp.kul.editor.kulJs", -1, -1, 5); try { console.addHyperlink(fl, 0, 4); } catch (BadLocationException e) { // TODO Auto-generated catch block e.printStackTrace(); } 上面代码所作的就是添加一个自己的console,将console的内容设置成“Test file link”,并且对"test"增加文件连接,连接到project t下面的test.js的第5行。最关键的就创建一个FileLink对象,并且通过console.addHyperlink(...)方法注册这个文件连接。这只是个静态的演示,其实实际情况要复杂的多,大多都是根据上下文情况动态的生成文件连接信息输出到console,就像java 打印到console的exception stack一样。还没有具体看jdt是怎么实现的,继续调研...... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |