2012-09-27 11 views
10

मैं ग्रहण पैकेज एक्सप्लोरर के संदर्भ मेनू से किसी आइटम में उपमेनू प्रविष्टि जोड़ने का प्रयास कर रहा हूं।org.eclipse.ui.menus का उपयोग कर ग्रहण पैकेज एक्सप्लोरर संदर्भ मेनू आइटम में उपमेनू प्रविष्टि कैसे जोड़ें?

मेनू प्रविष्टि पहले से ही किसी अन्य प्लगइन में org.eclipse.ui.popupMenus के माध्यम से परिभाषित की गई है, जिस पर मैं काम कर रहा हूं। (वह प्लगइन मेरी प्लगइन की निर्भरता सूची में जोड़ा गया है)। इसके उपमेनू में भी आइटम जोड़े गए हैं, लेकिन org.eclipse.ui.popupMenus का उपयोग भी कर रहे हैं, और मैं org.eclipse.ui.menus के माध्यम से ऐसा करने की कोशिश कर रहा हूं।

के साथ शुरू करने के लिए, मैं निम्नलिखित किया:

  • मैं org.eclipse.ui.commands और org.eclipse.ui.menus एक्सटेंशन जोड़।
  • मैं एक आदेश में क्रमश: इस तरह एक menuContribution परिभाषित:

enter image description here

यह किसी भी संदर्भ मेनू में आइटम कहते हैं ... इसलिए मैं "org.eclipse.ui.popup को बदलने के लिए होता है .any? बाद = जोड़ों "submenu की आईडी के साथ locationurI से मैं अपने आइटम में दिखाना चाहता हूं।

मेरी समस्या है: सही स्थान कैसे निर्धारित करें? मैं मेनू जासूस (ALT + SHIFT + F2) का इस्तेमाल किया और सबमेनू मैं करने के लिए योगदान करना चाहते हैं का निरीक्षण किया, और मैं निम्नलिखित यूआरआइ प्राप्त किया:

मेनू: YYY के बाद = ZZZ, जहां:

YYY मेनू की आईडी है जिसे पहले से परिभाषित किया गया है और जिसके लिए मैं सबमेनू आइटम ज़ेडज़ेड जोड़ना चाहता हूं, सबमेनू से कार्रवाई की आईडी है, जिसे मैंने क्लिक किया है (जासूस का उपयोग करके)

मैंने निम्न कोशिश की, लेकिन उपमेनू आइटम प्रकट नहीं होता है:

  • मेनू: YYY
  • पॉपअप [के बाद = जोड़?] [? = परिवर्धन के बाद] YYY

कृपया मदद :)

+0

क्या आपने पॉपअप की कोशिश की है: YYYY? बाद = ZZZ? – mhussein

+0

हां, मैंने भी कोशिश की है, और इससे मदद नहीं मिली। लेकिन मैंने अभी इसे काम करने में कामयाब रहा है। मुझे एक नया मेनू योगदान और एक ही आईडी और लेबल वाला मेन्यू परिभाषित करना था जैसा मेनू पहले से परिभाषित किया गया है - YYY और YYY का लेबल, इस तरह: <मेनू कंट्रोल्यूशन locationURI = "popup: org.eclipse.ui.navigator.ProjectExplorer # PopupMenu = परिवर्धन के बाद "> <मेनू आईडी =" YYY " लेबल =" YYYs_label "> इस के साथ , और साथ locationURI की जगह:" पॉपअप: YYY = परिवर्धन के बाद " अब यह काम कर रहा है। मुझे नहीं पता कि यह करने का सही तरीका है, लेकिन यह काम करता है। – catalina

+0

... और आपकी रुचि के लिए बहुत कुछ धन्यवाद और मेरी मदद करने की कोशिश करने के लिए :) – catalina

उत्तर

10

मैं इसे एक नया मेनू योगदान को परिभाषित करते हुए काम करने में कामयाब रहे और मेनू में एक ही आईडी और लेबल वाला मेनू है जिसे पहले से परिभाषित किया गया है। अंतिम समाधान इस तरह दिखता है:

<extension point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions"> 
    <menu 
      id="YYY" 
      label="%YYYs_label"> 
    </menu> 
    </menuContribution> 
    <menuContribution 
     locationURI="popup:YYY?after=additions"> 
    <command 
      commandId="example.MyCommandHandlerID" 
      icon="icons/somePhoto.gif" 
      label="MyLabel" 
      style="push"> 
    </command> 
    </menuContribution> 
</extension> 
+2

यह एकमात्र कामकाज का सामना करना आसान बनाता है। 'org.eclipse.ui.menus' योगदान किसी भी विरासत कार्रवाई एक्सटेंशन से पहले लागू होते हैं, जैसे' org.eclipse.ui.actionSets' या 'org.eclipse.ui.popupMenus'। –

+0

** पैकेज ** के लिए यूआरआई ** एक्सप्लोरर का संदर्भ मेनू 'पॉपअप है: org.eclipse.jdt.ui.PackageExplorer? बाद = जोड़ों' –

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