2009-02-25 5 views
17

मैं एक ग्रहण कमांड प्लगइन लिख रहा हूं और पैकेज एक्सप्लोरर व्यू में वर्तमान में चयनित नोड को पुनर्प्राप्त करना चाहता हूं। मैं पूर्ण फ़ाइलपैथ प्राप्त करने में सक्षम होना चाहता हूं, जहां चयनित नोड लौटा परिणाम से फाइल सिस्टम (यानी सी: \ eclipse \ test.html) पर रहता है।किसी ग्रहण प्लगइन से पैकेज एक्सप्लोरर में चयनित नोड कैसे प्राप्त करें

मैं यह कैसे कर सकता हूं?

उत्तर

15

कोड होना चाहते हैं:

IWorkbenchWindow window = 
    PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
ISelection selection = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer"); 

आप इस LuaFileWizardAction class की तरह एक कार्रवाई में एक उदाहरण देखें।

+1

संपादन के लिए धन्यवाद, हारून। मैंने गलत तरीके से उस कोड को निकाला था ... – VonC

+0

LuaFileWizardAction क्लास के लिए आपका लिंक टूटा हुआ प्रतीत होता है। यह http://www.blackducksoftware.com/ – David

+0

@ डेविड को धन्यवाद देता है। मैंने लिंक अपडेट किया है। – VonC

32

पहला कदम चयन सेवा प्राप्त करना है, उदा। किसी भी दृश्य या इस तरह संपादक से:

ISelectionService service = getSite().getWorkbenchWindow() 
      .getSelectionService(); 

या, as VonC wrote, आप इसे PlatformUI के माध्यम से मिल सकता है, यदि आप एक दृश्य या एक संपादक में न तो कर रहे हैं।

फिर, पैकेज एक्सप्लोरर के लिए चयन हो और एक IStructuredSelection करने के लिए इसे डाली:

IStructuredSelection structured = (IStructuredSelection) service 
      .getSelection("org.eclipse.jdt.ui.PackageExplorer"); 

कि से, आप अपने चयनित iFile प्राप्त कर सकते हैं:

IFile file = (IFile) structured.getFirstElement(); 

अब पूर्ण पथ प्राप्त करने के लिए , आपको IFile के लिए स्थान प्राप्त करना होगा:

IPath path = file.getLocation(); 

जो आप अंत में कर सकते हैं (अन्य बातों के अलावा) अपनी फ़ाइल को वास्तविक पूर्ण पथ प्राप्त करने के लिए उपयोग करें: Using the Selection Service:

System.out.println(path.toPortableString()); 

आप चयन सेवा यहां पर अधिक जानकारी प्राप्त कर सकते हैं।

+1

"9 बार देखा गया" ... कोई भी उन प्रश्नों को नहीं देखता;) वैसे भी, अच्छी तरह से विस्तृत उत्तर। +1 – VonC

+3

पैकेज एक्सप्लोरर से चयन प्राप्त करते समय, तत्व IFile यदि उदाहरण नहीं हैं। आपको जेडीटी-> संसाधन रूपांतरण करने की आवश्यकता है। – kberg

+0

@kberg कलाकारों ने वास्तव में एक अपवाद फेंकता है। लेकिन आपका मतलब क्या है जेडीटी-> संसाधन रूपांतरण – Fofole

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

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