2010-05-04 11 views
7

Estoy intentando ejecutar 'OrganizeImports' programáticamente en archivos que estoy editando programáticamente. Mi código es el siguiente:Llamar a organizar importaciones mediante programación

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()); 
       } 
      } 

Mi problema es que OrganizeImportsAction se ejecuta en la selección actual, que no es la misma que la unidad de compilación Estoy edición. Me gustaría establecer la selección programáticamente en la unidad de compilación, pero no sé cómo hacer eso. O tal vez haya otra forma de activar OrganizeImports.

gracias, Stefan

Respuesta

Cuestiones relacionadas