Eclipse插件之EasyExplorer

来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:13:55
http://dev2dev.bea.com.cn/bbsdoc/20060124184.html
时间:2006-01-24
作者:俞黎敏
浏览次数: 8447
本文关键字:Eclipse, EasyExplorer, 插件

本文介绍如何利用Eclipse插件EasyExplorer在Eclipse中的使用。
Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境。
问题提出:
如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它。
解决方法:
用EasyExplorer插件,有了这个插件就可以很方便地打开资源文件所在的文件夹了。
安装
JDK:1.5.0 从http://java.sun.com上去下载安装
Eclipse:3.1.1 从http://www.eclipse.org 上去下载解压
EasyExplorer 从http://sourceforge.net/projects/easystruts/
技巧
Eclipse使用技巧之插件管理
提示:新下载的插件PlugIn一定不要都放在原始的Eclipse目录下去,一大堆,累死你:(
前提是你已经安装好了Eclipse工具了,比如安装在E:\OpenSource\Eclipse\目录下,以下这个目录以%ECLIPSE_HOME%来进行表示; 此时默认的插件是在%ECLIPSE_HOME%\plugins目录中的; 在%ECLIPSE_HOME%下建立一个PlugInsNew的目录;
比如:E:\OpenSource\Eclipse\PlugInsNew 你下载了个新的插件,比如叫做:XYZ
那么就在%ECLIPSE_HOME%\PlugInsNew\目录下建立XYZ目录,目录里面是eclipse目录,eclipse目录包含有features与plugins两个子目录;结构如下图所示:

把下载的新插件的文件放在以下相应目录中
%ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
%ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\plugins
建立相关的.link的文件
然后在%ECLIPSE_HOME%\links目录里建立一个XYZ.link的文件
内容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。
这样,如果你下载了多个插件就可以如法炮制建立多个Link文件,想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%\links的目录中即可,使用与管理都很方便,建议千万不要放在默认的安装目录中;
如果你的%ECLIPSE_HOME%与此不同,请修改XYZ.link文件里的路径
删除,关闭Eclipse
删除%ECLIPSE_HOME%\links\XYZ.link文件即可
删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文件
重新启动Eclipse即可
使用
EasyExplorer插件安装方法采用上一节的《Eclipse使用技巧之插件管理》
重新启动Eclipse后,在Package Explorer、Outline、Naviagtor、Problems、文件编辑等等窗口中右键,可以看到多个一个带有文件夹图标Easy Explore…菜单。
在Package Explorer窗口中右键,如下图所示:

在Naviagtor窗口中右键中右键,如下图所示:

在Outline窗口中右键中右键,如下图所示:

在Problems窗口中右键中右键,如下图所示:

在文件编辑窗口中右键中右键,如下图所示:

利用EasyExplorer插件可以在Eclipse用Explorer打开资源文件所在的文件夹。其它配置是在这里Windows => Preferences => Easy Explore => Target => explorer.exe {0}
可以看到在Windows平台上是用explorer.exe {0}来打开的,{0}是用来传递参数的。

技巧:我习惯以资源管理器的方式来打开文件夹,方便进行拖动操作,即左边带文件树,那么在这里你可以设置成为explorer.exe /e,{0}即可,这样用EasyExplore打开文件夹时就是以这种方式来打开的,而且左边的文件树里,直接定位到文件夹上面,很是方便。
Explorer.exe的参数如下:大家可以根据自己的喜好进行设定:
命令格式Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]]
参数说明
/n表示以“我的电脑”方式打开一个新的窗口,通常打开的是Windows安装分区的根目录。
/e表示以“资源管理器”方式打开一个新的窗口,通常打开的也是Windows安装分区的根目录。
/root,[path]表示打开指定的文件夹,/root表示只显示指定文件夹下面的文件(夹),不显示其它磁盘分区和文件夹;[path]表示指定的路径。
如果不加/root参数,而只用[path]参数,则可以显示其它磁盘分区和文件夹中的内容。另外,[path]还可以指定网络共享文件夹。
/select,[path filename]表示打开指定的文件夹并且选中指定的文件,[path filename]表示指定的路径和文件名。
如果不加/select参数,则系统会用相应的关联程序打开该文件。如果[path filename]不跟文件名就会打开该文件夹的上级目录并选中该文件夹。
通过对以上explorer.exe的参数分析,我们可能会有个希望就是实现既显示左边的文件树,又同时右边也定位到的选定的文件或文件夹上面。
那应当是设置为:explorer.exe /e,/select,{0},不过这件EasyExplore帮你打开的只是定位在文件夹上面,而不是相应的文件上面。
你可以自己修改源代码来实现。
把EasyExploreAction.java文件中的
if(selected instanceof IFile)
directory = directory.getParentFile();
if(selected instanceof File)
directory = directory.getParentFile();
注释掉,重启编译打包进去就可以,在Windows上面使用没有问题!
打开这个插件包,我们可以看到easyexplore.jar里面只有三个文件,我们就用jad反编译过来看看,是怎么实现的。
一个配置文件EasyExplorePreferencePage.java
一个插件文件EasyExplorePlugin.java
一个执行文件EasyExploreAction.java
主要执行的相关代码是在执行文件EasyExploreAction.java中
不过,我们可以从EasyExplorePlugin.java里面代码知道,EasyExplore支持Windows和Mac两种操作系统,关键代码如下:
protected void initializeDefaultPreferences(IPreferenceStore store){String defaultTarget = "shell_open_command {0}";String osName = System.getProperty("os.name");if(osName.indexOf("Windows") != -1)defaultTarget = "explorer.exe {0}";elseif(osName.indexOf("Mac") != -1)defaultTarget = "open {0}";store.setDefault("org.sf.easyexplore.targetPreference", defaultTarget);}执行文件EasyExploreAction.java代码的关键分析:public void run(IAction action){try{if("unknown".equals(selected)){MessageDialog.openInformation(new Shell(), "Easy Explore", "Unable to explore " + selectedClass.getName());EasyExplorePlugin.log("Unable to explore " + selectedClass);return;}File directory = null;if(selected instanceof IResource)directory = new File(((IResource)selected).getLocation().toOSString());elseif(selected instanceof File)directory = (File)selected;if(selected instanceof IFile)directory = directory.getParentFile();if(selected instanceof File)directory = directory.getParentFile();String target = EasyExplorePlugin.getDefault().getTarget();if(!EasyExplorePlugin.getDefault().isSupported()){MessageDialog.openInformation(new Shell(), "Easy Explore", "This platform (" + System.getProperty("os.name") + ") is currently unsupported.\n" + "You can try to provide the correct command to execute in the Preference dialog.\n" + "If you succeed, please be kind to post your discovery on EasyExplore website http://sourceforge.net/projects/easystruts,\n" + "or by email farialima@users.sourceforge.net. Thanks !");return;}if(target.indexOf("{0}") == -1)target = target.trim() + " {0}";target = MessageFormat.format(target, new String[] {directory.toString()});try{EasyExplorePlugin.log("running: " + target);Runtime.getRuntime().exec(target);}catch(Throwable t){MessageDialog.openInformation(new Shell(), "Easy Explore", "Unable to execute " + target);EasyExplorePlugin.log(t);}}catch(Throwable e){EasyExplorePlugin.log(e);}}
使用Runtime.getRuntime().exec(target);执行资源文件所在的文件夹target参数,就可以打开文件夹了。
总结
此插件的功能很简单,但是很有用的小插件。如果你经常需要打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它。现在有了这个插件就很方便了呀。
从下载的网址我们可以知道,这个EasyExplore是由EasyStruts项目组开发的。在开发基本Struts应用程序时,相信很多人都曾经用过EasyStruts的,不过EasyStruts已经很久没有更新了,它的最新版本只支持到Eclipse 2.1。
不过,从网站上面可以得知,他们正在往3.0上面迁移,支持Eclipse3.x,相信到时又有新的EasyStruts可以用了:)