2010-05-04 14 views
7

मैं प्रोग्राम्सिक रूप से उन फ़ाइलों पर प्रोग्रामेटिक रूप से 'व्यवस्थित आयात' निष्पादित करने का प्रयास कर रहा हूं। मेरे कोड इस तरह दिखता है:प्रोग्रामिंग को व्यवस्थित रूप से आयात करने के लिए कॉलिंग

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 को ट्रिगर करने का एक और तरीका है।

धन्यवाद, स्टीफन

उत्तर

1

हो सकता है this test ui.org.eclipse.jdt.ui.tests.quickfix.CleanUpTest वर्ग कुछ सुराग दे सकता है।
यह enable method in ui.org.eclipse.jdt.ui.tests.quickfix.CleanUpTestCase और org.eclipse.ltk.core.refactoring.PerformChangeOperation class पर आधारित है।

आप PerformChangeOperation कक्षा org.eclipse.ltk.ui.refactoring.RefactoringWizard कक्षा में स्याही डाल सकते हैं।

संबंधित मुद्दे