问题标签 [gwt-editors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
632 浏览

java - 如何使用子编辑器实现 GWT 编辑器

我正在尝试为一个 bean 对象创建一个 GWT 编辑器,它具有另一个对象类型的两个字段,因此我想要这些字段的子编辑器。问题是我对编辑器框架还很陌生,而且我并不真正了解所有这些编辑器接口。请告知最佳解决方案。我的想法如下:使用子编辑器的驱动程序将数据传递给主编辑器驱动程序;或使用某种 CompositeEditor (但我不知道如何处理被覆盖的方法......)。这是一个示例代码:

}

0 投票
2 回答
1401 浏览

java - GWT Editor Framework - 在自己的编辑器中使用 ValueListBox 显示 ENUM

我有一个枚举SupplierCode

我使用以下命令在编辑器中显示它ValueListBox

我必须在我的应用程序中编辑这种类型几次,所以我想为这个下拉列表创建一个编辑器,称为SupplierCodeEditor

但是,当我使用它时,虽然它可以使用选项呈现列表,但它不会从列表中选择实际值。我认为拥有 getValue() 和 setValue() 方法会起作用,但似乎不行。

有谁知道将其放入一个编辑器文件的方法?然后我不必重复渲染器的代码并在每个我想使用它的地方调用 setAcceptableValues() 。

0 投票
1 回答
286 浏览

gwt - 如何在编辑时更改 GWT 编辑器

在此处输入图像描述我有一个 GWT 表单,它会根据其中选择的内容更改某些字段。表单使用Editor、Driver GWT模块

故事是一个编辑她的个人资料的人,并说:“我是用户”或“我是卖家”(最终“我是别的东西”)所以取决于这个选择,它的形式是它自己,我想更改视图中的一些编辑器(一个人的名字,姓氏变成公司名称,税号,而许多其他字段保持不变,但改变了他们的位置)。我制作了两组 UiBinder 屏幕(每个配置文件一组)。我有一个主 UiBinder,其中包含处理这些子编辑器的复选框“我是一家公司”

到目前为止,我认为我可以做的是我有一个带有子编辑器的 ValueAwareEditor

两者都由司机填写,但只有一个是可见的。

问题是我不喜欢在许多编辑器中拥有相同属性的想法,这种方法也不能暗示性能

另一方面,CompanyBasicInfo 和 PersonBasicInfo 是常规的 Editor 实现。因此,将@Ignore 放在它们上是不可能的,因为我无法在需要时对它们调用 setValue()。

另外让他们实现 ValueAwareEditor 对我来说不是很清楚,因为包含常规的编辑器小部件,所以我仍然无法在他们的字段上调用 ​​setValue() :我只是将问题更进一步......

在视图中,我也无权访问驱动程序以再次调用 edit() 。我看了一下它是如何在列表中完成的,但是有太多新概念,我认为我不必学习所有代码就可以处理这个简单的案例

谢谢你的回答

0 投票
1 回答
227 浏览

gwt - GWT Editors:如何记录对字段和子编辑器的更改?(请求工厂?)

我有一个广泛使用编辑器框架的应用程序。现在我要添加一个新功能:如果用户编辑实体,我想记录所做的更改并将它们存储在单独的数据存储实体中。这需要知道字段是否已更改、字段名称以及更改为的值。

这就是我想要实现的:

  1. 应用调用edit(bean);
  2. 用户进行更改,调用 flush() 并将数据发送回服务器。
  3. 在服务器处理程序中,来自 bean 的更改被发送到processChanges(List<String> paths)该 bean,然后创建并存储“field foo”更改为“bar”的记录,依此类推。
  4. 实体被保存,覆盖现有实体。

我使用 GWTP,目前使用 RPC 命令模式。我已经阅读了一些关于 RequestFactory 的内容,据我所知,它的主要好处之一是它只将称为“deltas”的更改字段发送回服务器以最小化有效负载,所以我想知道使用 RequestFactory 是否会更适合我的应用程序?

道歉 - 我一直在阅读 GWT 文档和 Javadocs 以了解 Editor Framework 和 RequestFactory,但我仍然很困惑。RequestFactoryEditorDriver.getPaths()似乎它可能是我需要的,但非常感谢任何建议或指针。

我可能可以观察客户端的变化,但这似乎是个坏主意。

0 投票
0 回答
515 浏览

java - 用于多态类型的 GWT 编辑器框架

我遵循类层次结构。

现在我想要一个编辑器,它可以重用 A 的编辑器并且也可以很好地处理 B 和 C 的值。所以我继续进行以下操作:

然后我根据正在编辑的实际类型选择编辑器。驱动程序正确刷新对象。但是当我显示约束违规时,每个违规在发送到小部件之前都会被复制,例如

“标题不能为空” “标题不能为空”</p>

更糟糕的是,如果我在一种形式中包含多个这样的小部件(带有 @Path("") 注释),违规行为会不断增加。所以在下面的设置中,设置了 3 个违规。

解决方法是不要在 EditorB 中使用 EditorA,而是复制 EditorA 的所有小部件并粘贴到 EditorB.ui.xml 中,然后只设置单个违规(如预期的那样)。然而,这是很多代码重复,因为 EditorA 在现实中非常复杂。

这种编辑器设置有什么问题?我基本上遵循这里提到的指导方针:http: //www.gwtproject.org/doc/latest/DevGuideUiEditors.html#Very_large_objects

======更新=======

我进一步调试它(还没有成功)在 SimpleViolation.java 中,以下代码能够为 1 个属性找到 3 个匹配的委托:

上面的 delegateList 有 2 或 3 个编辑器,具体取决于我的配置。可能的原因是因为 subType 可以访问所有 superType 属性,因此可以将 subType 编辑器驱动程序视为该属性的委托。SuperType 的编辑器本身就是一个代表。由于每个人都实施 Editor,因此每个人都有责任设置违规行为。对于涉及的每个编辑器,它将违规推送到多次显示违规的同一个文本框。

这是预期的吗?如果是,如何正确使用多态类型的编辑器框架并仅显示一次 ConstraintViolation?

0 投票
1 回答
64 浏览

gwt - 仅当值非空时,是否有更好的模式来显示 OptionalFieldEditor?

我创建了一个由许多子编辑器组成的大型编辑器。其中一些需要处理可选的子结构,我将它们包装在一个OptionalFieldEditor.

现在的问题是,如果有这样的结构,我只想显示那些子结构,如果没有,我想显示一个创建按钮。

到目前为止,没问题:如果我开始时没有该结构,我将简单地隐藏编辑器面板,并使其可见,只要用户单击创建按钮。

如果编辑器从一开始就已经填充了结构,则会出现问题。OptionalFieldEditor 不允许我收到通知或读取值以将显示显示为初始状态。因此,尽管有值,编辑器仍保持不可见,或者编辑器可见,但未设置任何值。

为了解决这个问题,我实现了一个派生编辑器,如果它的方法被调用OptionalField,它将通知回调。setValue()

但我想,这应该是 的经典用例,那OptionalFieldEditor我为什么要发明这个呢?也许我只是愚蠢地理解正确的方法,所以我在这里问。这是一个有效的模式,还是在编辑器框架中有一个工具可以让这变得简单?

这是代码:

谢谢,

托马斯

0 投票
1 回答
166 浏览

java - 使用编辑器和请求工厂进行 Gwt 客户端验证

我遇到了与 RequestFactory 和 Editors 一起使用的 GWT 客户端验证的问题。

编辑代码是:

保存代码是:

我的问题是本地验证总是在加载的版本上验证,而不是用户版本的编辑。我们如何才能获得保存在请求中的刷新对象?

谢谢

0 投票
1 回答
58 浏览

google-maps - 编辑多个属性的 Gwt 编辑器

是否可以创建一个编辑多个属性的代理编辑器?

这是一个说明我想要做什么的例子:

假设我有一个名为 Marker 的实体(如谷歌地图),它有两个属性 'LATITUDE' 和 'LONGITUDE',所以我首先要做的是创建一个由两个子编辑器组成的 CompositeEditor(来自 GWTBootstap 的 DoubleBox 编辑双打).. ..

但现在我想做一个更好的前端应用程序。所以我使用谷歌地图,使您能够在地图上放置一个标记,并使用它的纬度和经度属性在代理上设置它。

我怎么能做到这一点???1 个 MAP 编辑器,可编辑 2 个属性(纬度和经度)。

对不起我的英语不好。

0 投票
0 回答
291 浏览

java - Gwt 编辑器不仅具有 getter/setter bean 类

假设我在 GWT 中构建了表单,这是一个 UI-Binder,它实现了具有两个日期字段(日期从和到)的编辑器接口 (com.google.gwt.editor.client.Editor)。Bean 类应该有成员:

好吧,虽然将 bean 类定义为已编写,但没有问题,但就在我添加如下内容之后:

我收到编译错误(例如 fromDate):

临时文件(qualifiedBeanClass_fromDate_Context.java)中生成的代码似乎有:

parent 是我的 bean 类。这是非常错误的,因为 getToDate() 返回 Date(或 null)实例,所以编译错误绝对没有错。问题是,为什么 GWT 关心这些方法(hasToDate/hasFromDate),或者是否必须只有 getter/setter 方法?

0 投票
0 回答
172 浏览

gwt - GWT:编辑器框架要求 Has/Setter 方法

我创建了一个编辑器,其中包含一些编辑嵌套字段的子编辑器,但 gwt 抱怨它需要一个 has/setter 方法。

这是我的编辑器代码。CompInfo 类有一个 UIInfo。在 UIInfo 类中,displayName 只是一个字符串。我已经有它的 setter 方法,但它仍然在抱怨。

以下是错误:

这是它生成的代码:

更新:

我的 UIInfo 类有 setDisplayName、getDisplayName 和 hasDisplayName 方法。这似乎是一个错误,因为当我删除 hasDisplayName 方法时,它可以正常工作。(有人发现这个报告给谷歌了吗?)但 UIInfo 实际上是一个遗留类,我无法删除 hasDisplayName。有什么建议么?或者我应该停止使用编辑器框架?