2013-03-25 28 views
0

我正在開發一個定義構建定義的插件。我有一個選項,您可以添加文件。該選項應該是項目特定的,因此數據不應該在項目之間持續存在。我正在使用fieldEditor來獲取輸入值。如何使用編輯器構建定義的輸入?

我遇到的問題是它會在不同項目之間保留選項值。

儘快解決問題。 這是我在plugin.xml中的選項

<option 
     browseType="file" 
     category="test.category.applications" 
     fieldEditor="com.test.FieldEditor" 
     command="${value}" 
     id="test.applicationFiles" 
     name="%option.app.files.name" 
     valueType="string"> 
</option> 

回答

0

正如你yusing場編輯我猜你也使用IPreferenceStore保存用戶的喜好。

如果是這樣,那麼您必須更改範圍內容。你可能會使用實例範圍內現在:

IScopeContext context = InstanceScope.INSTANCE; 

,你應該使用項目範圍的偏好,而不是範圍:

IProject handle = ... 
IScopeContext context = new ProjectScope(handle); 
+0

獲取上下文之後,如何設置它爲當前的實例? – Varun 2013-03-25 15:29:24

+0

對不起,不知道你在問什麼。您不希望它設置爲INSTANCE,因爲INSTANCE可用作平臺範圍。您需要的是項目範圍,由上述ProjectScope表示。獲取上下文後,只需創建一個首選項存儲並像往常一樣使用它:'ScopedPreferenceStore scopedPreferenceStore = new ScopedPreferenceStore(projectScope,Activator.getDefault() .getBundle()。getSymbolicName());' – dreo 2013-03-25 15:40:14

+0

我想添加一個選項使用FieldEditor。問題是,如果我爲一個項目添加參數,我可以在其他項目的設置中看到它。在init函數:\t公共布爾的init(-i選項的選項,字符串extraArgument, \t \t \t字符串preferenceName,最終的複合材料母體){ \t的init(preferenceName,option.getName()); \t \t this.currOption = option; \t createControl(parent); \t返回true; \t} curroption有包含來自其他項目的設置的文本。 – Varun 2013-03-25 16:25:35

相關問題