2010-05-04 25 views
7

我正尝试以编程方式在编辑的文件上以编程方式执行'OrganizeImports'。 我的代码如下所示:以编程方式调用组织导入

final ICommandService cmdService = (ICommandService)PlatformUI.getWorkbench().getService (ICommandService.class); 
    if (cmdService != null) { 
     final Command cmd = cmdService.getCommand(IJavaEditorActionDefinitionIds.ORGANIZE_IMPORTS); 
     final ExecutionEvent execEvt = new ExecutionEvent(cmd, Collections.EMPTY_MAP, compileationUnit, null); 

     PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
     ResourcesPlugin.getWorkspace(). 

     Display.getDefault().syncExec(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        //cmd.executeWithChecks(execEvt); 
        cmd.execute(execEvt); 
       } catch (Exception e) { 
        getLogger().severe("organize imports failed: " + e.getMessage()); 
       } 
      } 

我的问题是OrganizeImportsAction当前选中这是不一样的编译单元我编辑的执行。我想在编译单元上以编程方式设置选择,但我不知道该怎么做。或者也许有另一种方式来触发OrganizeImports。

感谢, 斯特凡

回答