【问题标题】:Eclipse: Refactoring-renaming GWT uibinder java bean does not rename template ui.xml fileEclipse:重构-重命名 GWT uibinder java bean 不重命名模板 ui.xml 文件
【发布时间】:2011-10-03 00:10:04
【问题描述】:
在使用 Eclipse Google 插件时,当你创建一个 gwt uibinder 对时,你会得到一个 java bean 文件及其对应的 .ui.xml 模板文件。
我相信我曾经能够在 Eclipse Helios 中做到这一点:
右键单击 uibinder 集的 java bean,重构以重命名它,我可以配置重构对话框来重命名 .ui.xml 模板文件。
最近,我一直在使用 Eclipse 3.7.0 和最新的 GPE。我不再能够这样做了。可能是我忘了怎么做。有人请提醒我怎么做 - 谢谢。
例如重命名 uibinder 对
Hello.java, Hello.ui.xml
到
Bello.java, Bello.ui.xml
也许一开始就不可能,我记错了。
【问题讨论】:
标签:
java
eclipse
gwt
google-eclipse-plugin
【解决方案1】:
我没有注意到这个功能,我只是试了一下,重命名 java 或 ui.xml 会导致错误,直到重命名另一个文件。请注意,file.java 代码映射到 file.ui.xml 并不是给定的,因为设计可以使用 @UiTemplate 将 file.java 链接到 somethingelse.ui.xml。这可能是它不起作用的原因。像这样自动更改 ui.xml 文件名可能会导致大量更改。
但是有一些重构。
重构能够跟踪@UiField 名称的变化。如果我重命名(使用 Alt-R)file.java 文件中已使用 @UiField 注释的字段,则 ui.xml 文件中的 ui:field 也会更改。
现在有一个棘手的问题。假设我有 foo.java、foo.ui.xml 和 foo2.java,其中 foo2.java 使用 foo.ui.xml UI 模板(通过 @UiTemplate 注释)。 ui.xml 文件有一个 Button 调用 bar,所以 foo.java 和 foo2.java 都有 @UiField("bar") Button bar。一直关注我吗?
在 Eclipse 中,我打开 foo.java,然后使用 Alt-R 将 bar 更改为 baz。 ui.xml 文件的 ui:field="bar" 更改为 ui:field="baz",并且 foo.java 中引用 bar 的所有注释(例如 @UiField 和 @UiHandler)都更新为引用 baz。但是 foo2.java 中的代码 not 改变了,现在我需要修复一个错误。 foo2.java 仍然希望在 foo.ui.xml 中看到一个名为 bar 的按钮。
同样,如果我打开 foo2.java,并使用 Alt-R 将 bar 更改为 baz,则 foo.ui.xml 中的 ui:field="bar" not 更改了,而你现在有一个错误。
不确定这些是否记录在某处。也许你依稀记得这次重构。