3

我有一个远程文件模型,其中包含远程目录的文件名、文件路径和连接 IP、连接端口等字段。我只想在文本中显示文件路径。我正在使用 JFace 数据绑定将模型绑定到 SWT 文本,但我只能将 1 个字段绑定到它。请帮我将 Complete 模型绑定到 Text 并仅显示一个字段。还告诉我是否可能或有其他方法。

4

1 回答 1

2

如果我理解正确,您想在一个 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 回答