java - ग्रहण RCP-संपादक क्षेत्र में एक दृश्य खोलें(3.8/e4 संकर)



eclipse-plugin eclipse-rcp (1)

मेरा सुझाव है कि आप संभव फिक्स नंबर 3 के साथ जाएं, क्योंकि मुझे लगता है कि ऐसा करने के लिए एक तेज़ तरीका नहीं है।

मैं 3.8-e4 हाइब्रिड पर काम कर रहा हूं (यानी हमारे पास Luna निर्भरता है, लेकिन हम Application.e4xmi , अभी तक उपयोग नहीं करते हैं)। तो हम मूल रूप से कॉम्पैक्ट परत चला रहे हैं।

कहा जा रहा है कि, संपादक फ़ोल्डर पर इन गंदे विचारों को ढेर करने के लिए एक e4 प्रोग्रामेटिक तरीका खोजना अच्छा होगा।

1.) समस्या

मैं संपादक क्षेत्र में एक सामान्य दृश्य फ़ोल्डर रखना चाहता हूं, ताकि प्रत्येक दृश्य जो रनटाइम पर खोला गया है, वहां खोला जाएगा।

( इस सवाल से चुराई गई तस्वीर)

2.1) संभावित फिक्स नंबर 1: plugin.xml का उपयोग करना

एक संबंध विस्तार बनाएँ, और उस विस्तार के लिए प्रत्येक संभव दृश्य जोड़ें, रिश्तेदार org पर संबंध ढेर के साथ ।eclipse.ui.editorss । यह थोड़ा असुविधाजनक है यदि आपके पास बहुत से विचार हैं जिन्हें खोला जाना है, और यदि परियोजना जल्दी से शुरू होती है। मैंने यह भी देखा कि वाइल्डकार्ड व्यू आईडी यहां काम नहीं करती हैं।

यदि आप परिप्रेक्ष्य विस्तार के लिए प्रत्येक संभव दृश्य जोड़ने के लिए खुद को समय पाते हैं, तो यह काम करेगा। हालाँकि, यदि आप एक दृश्य खोलते हैं, जो यहां नहीं जोड़ा गया है (यानी: एक अलग फ़ोल्डर में खुलता है), तो प्रत्येक बाद में खोला गया दृश्य पिछले फ़ोल्डर में खोला जाएगा, और संपादक क्षेत्र में नहीं (यदि आप नहीं करते हैं तो आगे की व्याख्या करें) उसे ले लो)।

२.२) संभावित फिक्स नंबर २: परिप्रेक्ष्य कारखाने में कोड का उपयोग करना

IPerspectiveFactory , हमारे पास IPerspectiveFactory तक पहुंच IPageLayout , जो org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout (e4 stuff) होने के लिए होती है।

अब, यह ModeledPageLayout कार्यान्वयन उचित है, लेकिन यह भी कोई प्रलेखन और अजीब सार्वजनिक APIs नहीं है। यह किसी भी अन्य रिश्तेदार पर एक दृश्य ढेर करने की संभावना देता है

modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);

यह 2.1 का प्रोग्राम वर्जन होगा। साथ ही, यहां भी यही समस्या दिखाई देती है। यदि कोई दृश्य कहीं और खोला जाता है, तो ऊपर का कोड बेकार हो जाता है।

काफी दिलचस्प है, stackView एपीआई वाइल्डकार्ड्स का समर्थन नहीं करता है (जबकि अन्य जैसे कि addView करते हैं)।

२.३) संभव नं। ३: वर्कअर्स यस!

मेरे पास बहुत सारे दृष्टिकोण हैं, और हर एक में बहुत सारे अलग-अलग फ़ोल्डर हैं। सब कुछ ठीक-ठाक रखा है।

चूंकि ग्रहण सिस्टम के चारों ओर से सभी व्यू आईडी प्राप्त करने के लिए एपीआई की पेशकश करता है, मैं निम्नलिखित, प्रति दृष्टिकोण से करना चाहता हूं: प्रत्येक दृश्य आईडी जिसे एक विशिष्ट फ़ोल्डर में नहीं जोड़ा गया था, उसे संपादक क्षेत्र (यानी संपादक फ़ोल्डर) में जोड़ा जाएगा। , संपादक ढेर)

यह मेरा अंतिम उपाय होगा, जब तक कोई और अधिक सुविधाजनक और समय पर समाधान प्रदान नहीं करता है।

याद रखें, एक e4 प्रोग्रामेटिक विकल्प अधिक लचीला है!

3.) संबंधित प्रश्न

इन्हें ई 4 रिलीज के लिए पदावनत किया जाएगा।

4.) ग्रहण के बगज़िला पर संबंधित बग:

स्वयं द्वारा खोले गए इस हाल के बग का एक छोटे एसएससीसीई के साथ लगाव है। इसे पुन: पेश करने के चरण इस टिप्पणी में वर्णित हैं, इसलिए मैं उन्हें यहां कॉपी-पेस्ट नहीं करने जा रहा हूं।





e4