改造easyexplore插件

改造easyexplore插件

easyexplore是一个eclipse的小插件,它能直接打开选中文件所在的目录,虽然只有几K的体积,却给我们带来了很大的方便。不过为了追求更高的易用性,我在dev2dev的一篇 文章的基础上(这篇文章似乎漏掉了一些改动,而且易用性还是不够高:),对它进行了一点小小的改进,改进后的功能(仅适用于windows)是:

1.如果选中的是目录,则在资源管理器中打开这个目录(而不是在它的上级选中该目录);2.如果选中的是文件,则资源管理器中打开所在的文件夹并选中这个文件;另外,顺便把新的xp风格图标给拿了过来。

easyexplore的cvs地址是[email protected]:/cvsroot/easystruts,下载源码之后发现easyexplore已经悄悄的更新了,多了“执行外部命令”等功能,图标也改成xp风格,不过多了一层子菜单,感觉不如原来方便,而且我只对explore这个功能感兴趣,所以只取回org/sf/easyexplore/EasyExplorePlugin.java,org/sf/easyexplore/actions/EasyExploreAction.java和org/sf/easyexplore/preferences/EasyExplorePreferencePage.java三个文件的1.1版本进行修改。代码是相当的简单:

在EasyExplorePlugin.java中改变defaultTagert的值:
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 /e, " ;
        }
        
else   if  ( osName.indexOf( " Mac " !=   - 1  ) {
            defaultTarget 
=   " open " ;            
        }
        
        store.setDefault(EasyExplorePreferencePage.P_TARGET, 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());
            } 
else   if  ( selected  instanceof  File ) {
                directory
=  (File) selected;
            } 

            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 [email protected]. Thanks ! " );
                
return ;
            }

            
if (directory.isFile() 
                
&&  System.getProperty( " os.name " ).indexOf( " Windows " !=   - 1  ) {
                target 
=  target.trim()  +   " /select, " ;
            }
            
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);
        }
    }
重新编译打包之后,替换掉org.sf.easyexplore_1.0.4.jar中的easyexplore.jar和图标,搞定收工。
放了一个自己修改过的jar上来,欢迎大家从 这里下载。

另外推荐一个好用的bookmark插件quickmarks,可以通过Ctrl,Alt和数字键非常快捷的创建和跳回书签,类似于JBuilder和IDEA的功能,比eclipse自带的bookmark强太多了。项目地址是 http://eclipse-tools.sourceforge.net/quickmarks

你可能感兴趣的:(改造easyexplore插件)