Eclipse: рефакторинг-переименование Java-бина uWinder GWT не переименовывает файл шаблона ui.xml - PullRequest
0 голосов
/ 02 октября 2011

При использовании плагина Eclipse Google при создании пары uibinder gwt вы получаете файл Java-бина и соответствующий ему файл шаблона .ui.xml.

Я полагаю, что раньше я мог делать это в Eclipse Helios: Щелкните правой кнопкой мыши по компоненту Java набора uibinder, чтобы изменить его, чтобы изменить его, я мог бы настроить диалоговое окно, чтобы также переименовать файл шаблона .ui.xml.

Недавно я использовал Eclipse 3.7.0 и последнюю версию GPE. Я больше не могу этого делать. Может быть, я забыл, как это сделать. Кто-нибудь, пожалуйста, напомните мне, как - спасибо.

например. переименуйте пару uibinder

Hello.java, Hello.ui.xml

до

Bello.java, Bello.ui.xml

Возможно, это вообще никогда не было возможно, и я запомнил неправильно.

1 Ответ

0 голосов
/ 02 октября 2011

Я не заметил этой возможности, и я только что опробовал ее, и переименование java или ui.xml оставляет вас с ошибкой, пока вы не переименуете другой файл.Обратите внимание, что не обязательно, чтобы код file.java отображался в file.ui.xml, так как дизайн мог использовать @UiTemplate для связи file.java с чем-тоelse.ui.xml.Это может быть причиной того, что это не сработает.Такое автоматическое изменение имени файла ui.xml может привести к большому каскаду изменений.

Но существует некоторый рефакторинг.

На что способен рефакторинготслеживание изменений в именах @UiField.Если я переименую (используя Alt-R) поле в моем файле file.java, которое было аннотировано @UiField, поле ui: в файле ui.xml также изменится.

Теперь вот немного хитрости.Допустим, у меня есть foo.java, foo.ui.xml и foo2.java, а foo2.java использует шаблон пользовательского интерфейса foo.ui.xml (с помощью аннотации @UiTemplate).Файл ui.xml имеет панель вызовов Button, поэтому каждый из foo.java и foo2.java имеет панель кнопок @UiField ("bar").Следуйте за мной до сих пор?

В Eclipse я открываю foo.java, а с помощью Alt-R я меняю bar на baz.Файл ui.xml имеет свой ui: field = "bar", измененный на ui: field = "baz", и все аннотации внутри foo.java, на которые ссылается панель (например, @UiField и @UiHandler), обновляются до ссылочной базы.Но код в foo2.java не изменился, и теперь есть ошибка, которую мне нужно исправить.foo2.java по-прежнему ожидает увидеть кнопку с именем bar внутри foo.ui.xml.

Аналогично, если я открываю foo2.java и, используя Alt-R, я изменяю bar на baz, пользовательский интерфейс: field ="bar" в файле foo.ui.xml не изменен, и теперь у вас есть ошибка.

Не уверен, если что-то из этого где-то задокументировано.Может быть, вы смутно помните этот рефакторинг.

...