कहें कि मैंने अपना खुद का TextEditorX extends TextEditor
परिभाषित किया है। ठेठ ग्रहण-आरसीपी परिदृश्य में (मानक प्लगइन्स, परियोजना एक्सप्लोरर/नेविगेटर के साथ कार्यक्षेत्र) व्यवहार करते हैं जब कोई है कि कुछ संपादक खोल दिया है एक फ़ाइल (परियोजना एक्सप्लोरर या नेविगेटर के माध्यम से) का नाम बदलने की कोशिश करता है:एक गंदे संपादकपार्ट ग्रहण को अपने संसाधन का नाम बदलने से कैसे रोकता है?
हैं संपादक
dirty
नहीं है, नामकरण की अनुमति है। बाद मेंeditor.setInput()
को नए फ़ाइल नाम के साथ तर्क के रूप में बुलाया जाएगा।यदि यह
dirty
है, एक त्रुटि फेंक दिया जाता है ("संसाधन का नाम बदलकर": doc.txt न सहेजा गया है ":" मिले समस्याओं "एक गंभीर त्रुटि जबकि रिफैक्टरिंग प्रदर्शन हुआ")।
मेरे सवालों का:
जो स्तर पर इस व्यवहार परिभाषित किया गया है? मुझे लगता है कि पैकेज
org.eclipse.ltk.ui.refactoring.resource
शामिल है ... लेकिन, उदाहरण के लिए मान लीजिए कि जब भी संपादक गंदा नहीं होता है तब भी मैं नाम को अस्वीकार करना चाहता हूं: क्या यह व्यवहार संपादक (या दस्तावेज़ प्रदाता) में कुछ विधि द्वारा निर्धारित किया जा सकता है, या क्या मुझे कुछRenameParticipant
कोड/विस्तार करना चाहिए?पुनर्विक्रेता कैसे जानता है कि संसाधन
doc.txt
उस संपादक उदाहरण द्वारा खोला गया है? क्या यह सिर्फ सभी खुले संपादकों की जांच करता है और प्रत्येक को अपनेeditorInput
के लिए पूछता है, याdocumentProviders
शामिल हैं? विशेष रूप से, मान लीजिए कि मेरे पास एक विशेष संपादक है कि, "मुख्य" फ़ाइल के अलावा, अन्य संसाधनों (एक बहु-फ़ाइल इनपुट) पर निर्भर करता है, और यह चाहता है कि नामांकनकर्ता किसी भी इनपुट को नाम बदलने से पहले उससे पूछे। आप इस परिदृश्य से कैसे संपर्क करेंगे?
यहां स्रोत कोड नहीं मिला है, इसलिए यह देखना मुश्किल है कि कक्षाएं कहां शामिल हैं, लेकिन आपके पहले प्रश्न के लिए, क्या आपने अपने संपादक में 'सत्य' वापस करने के लिए 'isDirty() 'को ओवरराइड करने पर विचार किया है? यदि आप वास्तव में बदल गए हैं या नहीं, तो आप 'super.isDirty() 'का उपयोग कर सकते हैं ... –
इसका दुष्प्रभाव नहीं होगा कि संपादक भाग के टैब पर छोटी" यह चीज़ गंदा है "तारांकन कभी दुर नही जाना? यह उपयोगकर्ताओं को अपने सिर खरोंच कर सकता है। – stracka