2010-04-22 4 views
5

मेरे पास दो प्लगइन्स हैं, com.site.plugin.core और com.site.plugin.ui कहें।
मैं UI भाग से कोर भाग को अलग करना चाहता हूं, इसलिए प्लगइन com.site.plugin.ui पर मैंने प्राथमिकता पृष्ठ बनाया जहां मैंने कुछ प्राथमिकताओं को परिभाषित किया, जिसका उपयोग com.site.plugin.core द्वारा किया जाना चाहिए। मैं Eclipse site पर लेख की जांच करता हूं, लेकिन यह काफी पुराना है, और जुड़ा हुआ बग भी अधिक जानकारी प्रदान नहीं करता है।
तो मानक ग्रहण तंत्र का उपयोग करके ऐसा करना संभव है, या मुझे पैकेज org.eclipse.core.runtime.preferences के माध्यम से प्रत्यक्ष निम्न-स्तर API का उपयोग करने की आवश्यकता है?दो ग्रहण प्लगइन एक ही वरीयता स्टोर का उपयोग कैसे कर सकता है?

उत्तर

5

मुझे विश्वास है कि यूआई कोर पर निर्भर करता है और अन्यथा नहीं। इस तरह

IPreferenceStore store = CorePluginActivator.getDefault().getPreferenceStore(); 
setPreferenceStore(store); 

वरीयता पेज कोर प्लगइन में मान संग्रहीत होगा: इस मामले में, आप कोर की वरीयता स्टोर UI प्लगइन की वरीयता पेज में इस तरह इस्तेमाल कर सकते हैं,। कोर प्लगइन यूआई प्लगइन के आधार पर मूल्यों का उपयोग कर सकते हैं।

1

प्रति प्लग स्टोर प्रति प्लगइन पाए जाते हैं। प्लगइन जिसका एक्टिवेटर क्लास एक्टिवेटर ए है, के लिए प्रीफ़्स स्टोर प्राप्त करने का यह एक तरीका है।

IPreferenceStore store = ActivatorA.getDefault().getPreferenceStore(); 

यदि आप किसी अन्य प्लगइन एक ही दुकान का उल्लेख करना चाहते हैं, शायद आप ActivatorA पर कुछ एपीआई का पर्दाफाश यह वहाँ पाने के लिए सकेगा, उदा

public IPreferenceStore getSharedPrefs() { 
    return ActivatorA.getDefault().getPreferenceStore(); 
} 

दूसरी प्लगइन इस

IPreferenceStore sharedPrefs = ActivatorA.getSharedPrefs(); 

गुड लक करके साझा दुकान पाते हैं।

+0

हममम ... लेकिन इस मामले में मेरी कोर प्लगइन यूआई भाग के बारे में पता होना चाहिए। यह अच्छा नहीं है। –

+0

ठीक है। सामान्य शब्दों में, साझा प्लग का पता लगाने के लिए कोर प्लग-इन के लिए स्वीकार्य तरीका क्या होगा, अगर प्लगइन के माध्यम से ऐसा नहीं होता है। कैसे: एक फ़ाइलपथ ?, संवाद सेटिंग्स? एक यूआरएल? – bwinspur

2

तुम भी वरीयता सेवा का उपयोग अन्य प्लग-इन में प्राथमिकताओं तक पहुँच सकते हैं:

String pref = Platform.getPreferencesService().getString(
    "org.myplugin.preferences.page", "pref name", 
    "default value if pref not found", null); 
+0

ध्यान दें कि मेरे लिए 'org.myplugin.preferences.page' काम नहीं किया, मुझे 'org.myplugin.id' का उपयोग करना पड़ा। –

+0

मेरे लिए यह संकेत भी था, संकेत के लिए धन्यवाद। इस तरह, यह मेरे लिए एकदम सही समाधान है :) – Matthias

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