2016-08-04 7 views
-1

Eclipse(IDE)に環境設定ページがあり、プロパティから値を変更してOKをクリックするたびに、これらの値が環境設定ファイルに保存されます。私は新しい値を取得するためにリスナーを使用しています。しかし、私がする必要があるのは、この新しい値を取得することです>プロセス>とこの新しい値を保存し、環境設定ファイルに保存します。私が持っている実装はこれです:PropertyChangeEventから新しい値を変更する方法

public class PreferenceUtil extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { 

private StringFieldEditor stringUser; 

@Override 
public void init(IWorkbench arg0) { 
    setPreferenceStore(Activator.getDefault().getPreferenceStore()); 
} 

@Override 
protected void createFieldEditors() { 
stringUser = new StringFieldEditor("user", "&User:\t\t", getFieldEditorParent()); 

addField(stringUser); 

Activator.getDefault().getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() { 


@Override 
public void propertyChange(PropertyChangeEvent event) { 
      if (event.getProperty() == "user") { 
       user = event.getNewValue().toString();     
       //ConnectionValues.convert(user) is an algorithm that process a string 
       stringUser.setStringValue(ConnectionValues.convert(user));          
      } 
} 
} 
} 
+1

ヒント:私たちがあなたを助けるために時間を費やすことを望みます。したがって、コードを適切にフォーマットして作業を簡単にするために5分を費やしてください。とbtw:あなたの質問は何ですか?あなたのコードがあなたの要件から逸脱している場所を想像すると思いますか?私たちはあなたのために残りの仕事をすることができますか? – GhostCat

+0

)A)5日前に尋ねました。私はあなたの質問が低品質であることを10分後に教えました。驚き:あなたは他のフィードバックを受けていませんでした。提案はありません。答えはありません。そして今、あなたは、「これはこのような仕事はしません、あなたはそれについて何かをしなければなりません」と言った一人の人に不平を言うのですか? B)他の人に手伝ってもらいたいので、このコミュニティに来る。しかし、あなたはこのコミュニティのルールとポリシーについてあまり気にしていないようです。あなたの不足している入力についてあなたが話されると、あなたは失礼になります。私はこの会話で「赤ちゃん」であると確信していますか? – GhostCat

答えて

0

私は自分のアルゴリズムを使用して、この値を私がしなければならなかったものを、解決策を見つけたで、StringFieldEditorを作成し、新しい値を取得するために、リスナーにそれを使用し、プロセス暗号化の場合は、この値をStringFieldEditorに暗号化します。

public class PreferenceUtil extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { 

StringFieldEditor secretSFE; 

@Override 
public void init(IWorkbench arg0) { 
    setPreferenceStore(Activator.getDefault().getPreferenceStore()); 
} 


@Override 
protected void createFieldEditors() { 

     secretSFE = new StringFieldEditor("secret", "&Secret:\t\t",getFieldEditorParent()){ 

     @Override 
     protected void doFillIntoGrid(Composite parent, int numColumns) { 
      super.doFillIntoGrid(parent, numColumns); 

      getTextControl().setEchoChar('*'); 
     } 

    }; 
    addField(secretSFE); 

    Activator.getDefault().getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() { 

     @Override 
     public void propertyChange(PropertyChangeEvent event) { 
      if("secret".equalsIgnoreCase(event.getProperty())){ 
       String valueToEncrypt = (String)event.getNewValue(); 
       valueToEncrypt = ConnectionValues.convert(valueToEncrypt); 
       secretFFE.setStringValue(valueToEncrypt); 
      } 
     } 
    });  
    } 
} 
関連する問題