Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse插件首选项页面属性在启动时被默认值覆盖_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java Eclipse插件首选项页面属性在启动时被默认值覆盖

Java Eclipse插件首选项页面属性在启动时被默认值覆盖,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我似乎不知道是什么原因导致eclipse在启动时覆盖了我的插件首选项。 一切似乎都很正常,除了重新启动eclipse时,文件被默认值覆盖。 更新首选项时,我可以看到保存到正确文件中的值: pluginWorkspace.metadata.plugins\org.eclipse.core.runtime.settings\asdfplugin.prefs 另一个奇怪的事实是,当我右键单击plugin.xml文件并作为eclipse应用程序运行时,它似乎可以工作。eclipse实例似乎保留了它的值。

我似乎不知道是什么原因导致eclipse在启动时覆盖了我的插件首选项。 一切似乎都很正常,除了重新启动eclipse时,文件被默认值覆盖。 更新首选项时,我可以看到保存到正确文件中的值: pluginWorkspace.metadata.plugins\org.eclipse.core.runtime.settings\asdfplugin.prefs 另一个奇怪的事实是,当我右键单击plugin.xml文件并作为eclipse应用程序运行时,它似乎可以工作。eclipse实例似乎保留了它的值。 但是当我编译插件并使用它时,每次eclipse加载时,它都会不断替换.prefs文件。 我错过了什么?如何阻止eclipse覆盖prefs文件

谢谢

<extension point="org.eclipse.ui.preferencePages">
    <page 
        id="com.wfa.ASDF.ui.preferences.Page1"
        class="com.wfa.ASDF.ui.preferences.ASDFPreferencesPage"
        name="ASDF" >
    </page>

    <page 
        id="LoggingPreferencePage"
        name="Logging"
        class="com.wfa.ASDF.ui.preferences.ASDFLoggingPreferencesPage"
        category="ASDFPreferencesPage">
    </page>
</extension>

public类ASDFPreferencesPage扩展了ASDFPreferencesBase{
私有文本文本字段_工作区;
私有文本文本字段_ziplocation;
专用按钮复选框\u调试;
@凌驾
public void init(IWorkbench arg0){
试一试{
ASDFPlugin.getInstance().logProperties();
setPreferenceStore(ASDFPlugin.getInstance().getPreferenceStore());
}捕获(例外e){
e、 printStackTrace();
}
}
@凌驾
受保护的控件createContents(复合父级){

//composite_textField似乎默认存储适用于所有工作空间。 在扩展AbstractUIPlugin的类中,我重写了“getPreferenceStore”方法,以确保它正在检索实例范围存储

    public IPreferenceStore getPreferenceStore(){
        IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, ConstantsWFA.PLUGIN_ID+"_store");
        return store;
    }
public class ASDFPreferencesPage extends ASDFPreferencesBase{
private Text textField_workspace;
private Text textField_ziplocation;
private Button checkBox_debug;

@Override
public void init(IWorkbench arg0) {
    try{
        ASDFPlugin.getInstance().logProperties();
        setPreferenceStore(ASDFPlugin.getInstance().getPreferenceStore());
    }catch(Exception e){
        e.printStackTrace();
    }
}

@Override
protected Control createContents(Composite parent) {
    //composite_textField << parent
    Composite composite_textField = createComposite(parent, 2);
    Label label_textField = createLabel(composite_textField, "Workspace");   
    textField_workspace = createTextField(composite_textField);
    //pushButton_textField = createPushButton(composite_textField, MessageUtil.getString("Change"));
    createDirectoryDialogButton(textField_workspace);

    createLabel(composite_textField, "Zip File(s) Location");    
    textField_ziplocation = createTextField(composite_textField);
    createDirectoryDialogButton(textField_ziplocation);


    Composite composite_checkBox = createComposite(parent, 1);
    checkBox_debug = createCheckBox(composite_checkBox, "Debug");


    initializeValues();

    return new Composite(parent, SWT.NULL);
}

@Override
public void modifyText(ModifyEvent arg0) {
    //System.out.println("modify text");
    // TODO Auto-generated method stub
}

@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
    // TODO Auto-generated method stub
    //System.out.println("widgetDefaultSelected");
}

@Override
public void widgetSelected(SelectionEvent arg0) {
    // TODO Auto-generated method stub
    //System.out.println("widgetSelected");
}

/**
 * Initializes states of the controls from the preference store.
 */
private void initializeValues() {
    IPreferenceStore store = getPreferenceStore();
    PropertiesWFA properties = ASDFPlugin.getInstance().getPropertiesWFA();

    ConsoleUtil.getInstance().debug("InitalizeValues Load workspace as ("+store.getString(ConstantsWFA.STORE_WORKSPACE)+") ");
    ConsoleUtil.getInstance().debug("InitalizeValues Load zip location as ("+store.getString(ConstantsWFA.STORE_ZIP_LOCATION)+") ");
    ConsoleUtil.getInstance().debug("InitalizeValues Load debug as ("+store.getBoolean(ConstantsWFA.STORE_DEBUG)+") ");

    textField_workspace.setText(store.getString(ConstantsWFA.STORE_WORKSPACE));
    if(isFieldEmpty(textField_workspace)){
        textField_workspace.setText(properties.getWorkspace());
    }

    textField_ziplocation.setText(store.getString(ConstantsWFA.STORE_ZIP_LOCATION));
    if(isFieldEmpty(textField_ziplocation)){
        textField_ziplocation.setText(properties.getZipLocation());
    }

    checkBox_debug.setSelection(store.getBoolean(ConstantsWFA.STORE_DEBUG));
}

/* (non-Javadoc)
 * @see org.eclipse.jface.preference.PreferencePage#performOk()
 * You may override performApply if you have additional processing when the user selects Apply. The default implementation is to call performOk.
 */
public boolean performOk() {
    storeValues();
    ASDFPlugin.getInstance().savePluginPreferences();
    ASDFPlugin.getInstance().refreshProperties();
    return super.performOk();
}
private void storeValues() {
    //http://alvinalexander.com/java/jwarehouse/eclipse/org.eclipse.ui.examples.readmetool/Eclipse-UI-Examples-Readme-Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java.shtml
    ConsoleUtil.getInstance().debug("Save workspace as ("+textField_workspace.getText()+") ");
    ConsoleUtil.getInstance().debug("Save zip location as ("+textField_ziplocation.getText()+") ");
    ConsoleUtil.getInstance().debug("Save debug as ("+checkBox_debug.getSelection()+") ");

    updateStoreValue(ConstantsWFA.STORE_WORKSPACE, textField_workspace.getText());
    updateStoreValue(ConstantsWFA.STORE_ZIP_LOCATION, textField_ziplocation.getText());
    updateStoreValue(ConstantsWFA.STORE_DEBUG, checkBox_debug.getSelection());

    ASDFPlugin.getInstance().logProperties();
}    

private void updateStoreValue(String key, String value){
    IPreferenceStore store = getPreferenceStore();
    store.setValue(key, value);
    //store.setDefault(key, value);
}
private void updateStoreValue(String key, Boolean value){
    IPreferenceStore store = getPreferenceStore();
    store.setValue(key, value);
    store.setDefault(key, value);
}
}
    public IPreferenceStore getPreferenceStore(){
        IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, ConstantsWFA.PLUGIN_ID+"_store");
        return store;
    }