GWT 编辑器使用 IsEditor>填充长字段

发布于 2024-12-25 20:23:18 字数 447 浏览 2 评论 0 原文

我刚刚掌握了使用编辑器框架的窍门,并正在移植我的所有表单来使用它。我的 Event 表单遇到了一些麻烦。我有 5 个不同的时间字段 - 对于每个字段,我使用 DateBox 来允许用户选择时间。

在我的旧Activity中,我将这些字段的值转换为Long时间,填充我的代理对象并保留它。

我想使用编辑器框架做同样的事情。无论如何,我可以使用带有 DateBoxEditor 来填充我的域对象中的 Long 字段。我确信一定有办法做到这一点,我只是很难弄清楚。

如果情况并非如此,而我现在无法做到这一点,有人知道如何做到这一点的好解决方案吗?

I just got the hang of using the Editor framework and am porting over all my forms to use it. I'm running into some trouble on my Event form. I have 5 different time fields - for each field I use a DateBox to allow the user to select the time.

In my old Activity i converted the values of these fields to Long times, populated my proxy object and persisted it.

I want to do the same thing using the Editor framework. Is there anyway I can use an Editor with a DateBox to populate a Long field in my domain object. I'm sure there's got to be a way to do this I'm just having trouble figuring it out.

If this is not the case and I just can't do this for now, does anybody know a good solution for how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野稚 2025-01-01 20:23:18

您必须将 DateBox 包装在 Editor 中。像这样的东西:

@Editor.Ignore
@UiField
DateBox dateField;

LeafValueEditor<Long> longField = new LeafValueEditor<Long>() {
    @Override
    public Long getValue() {
        Date date = dateField.getValue();
        return date == null ? null : date.getTime();
    }
    @Override
    public void setValue(Long value) {
        Date date = value == null ? null : new Date(value.longValue());
        dateField.setValue(date);
    }
}

You have to wrap the DateBox in an Editor<Long>. Something like:

@Editor.Ignore
@UiField
DateBox dateField;

LeafValueEditor<Long> longField = new LeafValueEditor<Long>() {
    @Override
    public Long getValue() {
        Date date = dateField.getValue();
        return date == null ? null : date.getTime();
    }
    @Override
    public void setValue(Long value) {
        Date date = value == null ? null : new Date(value.longValue());
        dateField.setValue(date);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文