2013-03-25 30 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

相关问题