this thread में उल्लेख किया है, org.eclipse.ui.views.navigator
पैकेज से, देर से ResourceNavigator
पर एक नज़र डालें।
("देर से" क्योंकि उस वर्ग का अब उपयोग नहीं किया गया है, Eclipse Wiki देखें)।
(eclipse Java Model के रूप में देखा)
यह एक TreeViewer
का उपयोग करता है, और विस्तारित तत्वों और चयनित तत्वों, अन्य राज्य के बीच बचत होती है।
मॉडल तत्व IResource
ऑब्जेक्ट्स हैं, जो IPersistableElement
/IElementFactory
तंत्र का उपयोग कर बने रहे हैं।
IPersistableElement
एडाप्टर IResource
के खिलाफ WorkbenchAdapter
में पंजीकृत है, लेकिन इसके बजाय इसे IPersistableElement
लागू करने वाले मॉडल तत्व द्वारा प्राप्त किया जा सकता है।
संबंधित IElementFactory
में org.eclipse.ui.ide
के plugin.xml
में घोषित किया गया है।
पुनर्स्थापित संसाधनों को पता है कि पेड़ के सामग्री प्रदाता के माध्यम से अपने बच्चों (और माता-पिता) को कैसे प्राप्त किया जाए, इसलिए पेड़ के सभी तत्वों को कायम रखने की आवश्यकता नहीं है।
दर्शक के इनपुट संसाधन को सहेजने के लिए एक समान दृष्टिकोण का उपयोग किया जा सकता है।
ResourceNavigator
के लिए, यहां FrameList
के वर्तमान फ्रेम के माध्यम से यहां एक संकेत का स्तर है, लेकिन यदि आप डीबगर में इसके माध्यम से कदम उठाते हैं, तो आप देखेंगे कि यह अनिवार्य रूप से वही काम कर रहा है।
छोटे निकालने (लेकिन कोड के बाकी चयन सहित भी कई अन्य चीजें, बचाने)
if (frameList.getCurrentIndex() > 0) {
//save frame, it's not the "home"/workspace frame
TreeFrame currentFrame = (TreeFrame) frameList.getCurrentFrame();
IMemento frameMemento = memento.createChild(TAG_CURRENT_FRAME);
currentFrame.saveState(frameMemento);
} else {
//save visible expanded elements
Object JavaDoc expandedElements[] = viewer.getVisibleExpandedElements();
if (expandedElements.length > 0) {
IMemento expandedMem = memento.createChild(TAG_EXPANDED);
for (int i = 0; i < expandedElements.length; i++) {
if (expandedElements[i] instanceof IResource) {
IMemento elementMem = expandedMem
.createChild(TAG_ELEMENT);
elementMem.putString(TAG_PATH,
((IResource) expandedElements[i]).getFullPath()
.toString());
}
}
}
[...]
}
धन्यवाद, यह बराबर और हैशसेट विधियों को लागू करने के बाद काम करता है .. – penguru