Как спроектировать несколько форм с почти одинаковым видом? - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть около 6 форм для разработки с UIBinder, которые выглядят почти одинаково, разница составляет два или три поля.Я думал о создании одной формы со всеми возможными полями и скрыть или показать поля в зависимости от случая.

Что вы думаете об этом методе?

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Это может хорошо работать.Вы можете определить класс BaseForm с UiBinder, который реализует HasWidgets, а затем определить SpecificForm1.ui.xml с чем-то вроде

<custom:BaseForm>
    <g:TextBox ui:field="componentSpecificToThisForm" />
    <g:Button>A button!</g:button>
</custom:BaseForm>

и SpecificForm2.ui.xml с чем-то вроде

<custom:BaseForm>
    <g:Label>Something totally different</g:Label>
    <g:Button>A button!</g:button>
</custom:BaseForm>

отлично работает!

1 голос
/ 13 сентября 2011

Я пробовал нечто подобное, и создание одной формы, где я скрывал / отображал соответствующие поля, было самым простым решением.Другой идеей было бы создать фабрику, которая затем строит вашу форму в соответствии с вашими потребностями.

Итак, вы в основном создаете компоненты, из которых состоит ваша форма, и фабрика связывает их вместе посредством внедрения зависимости конструктора.Для меня это очень хорошо сработало, а также дает дополнительное преимущество: очень просто расширять вашу форму.

(пример добавлю позже).

...