Действительно ли возможно снова использовать панели GWT UIBinder?

У меня есть расположение в Google Web Toolkit с помощью UIBinder, включающего a TabLayoutPanel. Это расположение имеет надмножество всех вкладок, которые будут использоваться моим приложением (думайте о нем как об администраторском представлении).

Я теперь должен создать новое расположение, с помощью подмножества этих вкладок (например, для обычных пользователей).

Действительно ли возможно импортировать панели из моего администраторского расположения в моем пользовательском расположении? Или, возможно, определите их всех в третьем файле и импорте от обеих разметок?

8
задан pkaeding 24 June 2010 в 03:26
поделиться

2 ответа

Определите содержимое каждой вкладки как отдельный шаблон UiBinder. Поскольку классы UiBinder являются композитами, вы можете добавлять их в любой контейнер, как и любой другой виджет.

Вы можете собрать TabLayoutPanel в коде, добавив каждый объект-шаблон UiBinder на вкладку в TabPanel или определив другой шаблон UiBinder с TabPanel и всеми определенными вкладками.

Если вы идете по маршруту UiBinder для создания шаблонов TabLayoutPanel, импортируйте содержимое панели вкладок (Композиты, которые вы определили ранее с помощью UiBinder) в UiBinder, определив новое «пространство имен», указывающее на пакет, в котором находятся все ваши композиты. Затем вы ссылаетесь на свои композиты как на пространство имен: ClassName в шаблоне UiBinder.

если com.project.package - это место, где вы храните все свои композиты, которые вы хотите встроить в отдельные вкладки, тогда определите новое пространство имен f как xmlns: f = 'com.project.package' вскоре после объявления xmlns: g.

Вы ссылаетесь на отдельные композиты в вашем UiBinder как

<f:Composite1 /> 
<f:Composite2 />
3
ответ дан 5 December 2019 в 20:13
поделиться

Вы определенно можете импортировать созданные вами представления, как шаблоны UIBinder, так и обычные виджеты , в другой шаблон UIBinder.

Из документов UIBinder :

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'
    xmlns:my='urn:import:com.my.app.widgets' >

  <g:HTMLPanel>
    <my:WeatherReport ui:field='weather'/>

    <my:Stocks ui:field='stocks'/>
    <my:CricketScores ui:field='scores' />
  </g:HTMLPanel>
</ui:UiBinder>

Обратите внимание, как виджеты Stocks и CricketScores импортируются из вашего собственного пакета.

Вам не обязательно делать это только для того, чтобы показывать / скрывать вкладки в зависимости от прав пользователя, вы можете просто показать / скрыть свои вкладки в своем коде GWT в зависимости от уровней доступа.

5
ответ дан 5 December 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: