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


106

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

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


1.) समस्या

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

संपादक फ़ोल्डर में देखें

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


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

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

परिप्रेक्ष्य एक्सटेंशन के साथ plugin.xml का एसएस

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


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

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

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

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

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

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


२.३) संभावित फिक्स नंबर ३: वर्कअराउंड्स याय!

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

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

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

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


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

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


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

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


मुझे लगता है कि यह बहुत संभावना नहीं है कि ऐसा तब किया जा सकता है जब 3.x संगतता कोड शामिल हो। आप e4 एपीआई का उपयोग करके संपादक क्षेत्र में एक दृश्य रखने में सक्षम हो सकते हैं, लेकिन मुझे उम्मीद है कि संगतता कोड को भ्रमित करने के लिए।
greg-449

1
यदि आप किसी भी संपादकों का उपयोग नहीं करते हैं, तो बस साझा क्षेत्र को कम से कम करें और लेआउट को डिज़ाइन करें जैसा आप चाहते हैं।
बेबो जूल

एक और हाल के संस्करण के लिए आगे बढ़ें जहां यह बॉक्स से बाहर काम करता है।
बेबो

@bebbo मैं संपादकों का उपयोग करता हूं, और मैं एक बार में पूरी चीज को e4 में स्थानांतरित नहीं कर सकता। उपक्रम सॉफ्टवेयर। :-)
GGrec

जवाबों:


1

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


पुजारी उत्तर के साथ किसी भी सुझाव को एक नए उत्तर के बजाय एक टिप्पणी के रूप में मिटा सकते हैं।
महालक्ष्मी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.