リモート ディレクトリのファイル名、ファイル パス、接続 IP、接続ポートなどのフィールドを持つリモート ファイル モデルがあります。ファイル パスのみをテキストで表示したいと考えています。モデルを SWT テキストにバインドするために JFace データ バインディングを使用していますが、1 つのフィールドしかバインドできません。完全なモデルをテキストにバインドし、1 つのフィールドのみを表示するのを手伝ってください。また、可能かどうか、または他の方法があるかどうかも教えてください。
質問する
368 次
1 に答える
2
私が正しく理解しているなら、1 つの SWT Text ウィジェットに複数のモデル フィールドを表示したいですか? 次の方法でそれを行うことができます。
class FileModel {
private String name;
private String filePath;
private String ip;
// other fields, getters and setters
public String getFileSummary() {
return name + " : " + filePath + " : " + ip;
}
public void setFileSummary(String summary) {
// ignore
}
}
次に、次のようにバインドできます。
FileModel model;
new DataBindingContext().bindValue(SWTObservables.observeText(text, SWT.Modify),
BeansObservables.observeValue(model, "fileSummary"), new UpdateValueStrategy(), new UpdateValueStrategy());
モデルでバインドする「fileSummary」フィールド名を指定している間、JFace はそのフィールドの getter と setter を探すので、実際にはフィールド自体は必要ありません。
getter では必要な情報を提供でき、setter でいくつかの特別な形式を解析して、次のように関連するフィールドに割り当てることもできます。
public void setFileSummary(String summary) {
// todo: implement in a smart way;)
String[] parts = summary.split(" : ");
name = parts[0];
filePath = parts[1];
ip = parts[2];
}
于 2014-07-10T13:25:33.533 に答える