Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Jsf дерево+зависимая таблица 
V
    Опции темы
Vofka
Дата 18.12.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: 1
Всего: 1



Мне необходимо создать дерево с линками при нажатии на которые будет меняться содержание таблицы.Как создать дерево и таблицу я знаю но вот как их связать! smile 

вот дерево:

Код

  <af:tree value="#{bindings.findAllStdSoft1.treeModel}"
                         var="node" binding="#{backing_load_graf.tree1}"
                         id="tree1">
                  <f:facet name="nodeStamp">
                    <af:commandLink binding="#{backing_load_graf.outputText1}"
                                    id="outputText1" text="#{node}"
                                    action="#{backing_load_graf.outputText1_action2}"/>
                  </f:facet>
                </af:tree>


вот таблица


Код

<af:table value="#{bindings.findAllStdTest1.collectionModel}"
                      var="row" rows="#{bindings.findAllStdTest1.rangeSize}"
                      first="#{bindings.findAllStdTest1.rangeStart}"
                      emptyText="#{bindings.findAllStdTest1.viewable ? 'No rows yet.' : 'Access Denied.'}"
                      binding="#{backing_load_graf.table1}" id="table1">
              <af:column headerText="#{bindings.findAllStdTest1.labels.beginDate}"
                         sortProperty="beginDate" sortable="false"
                         binding="#{backing_load_graf.column1}" id="column1">
                <af:outputText value="#{row.beginDate}"
                               binding="#{backing_load_graf.outputText2}"
                               id="outputText2">
                  <f:convertDateTime pattern="#{bindings.findAllStdTest1.formats.beginDate}"/>
                </af:outputText>
              </af:column>
              <af:column headerText="#{bindings.findAllStdTest1.labels.comission}"
                         sortProperty="comission" sortable="false"
                         binding="#{backing_load_graf.column2}" id="column2">
                <af:outputText value="#{row.comission}"
                               binding="#{backing_load_graf.outputText3}"
                               id="outputText3"/>
              </af:column>
              <af:column headerText="#{bindings.findAllStdTest1.labels.endDate}"
                         sortProperty="endDate" sortable="false"
                         binding="#{backing_load_graf.column3}" id="column3">
                <af:outputText value="#{row.endDate}"
                               binding="#{backing_load_graf.outputText4}"
                               id="outputText4">
                  <f:convertDateTime pattern="#{bindings.findAllStdTest1.formats.endDate}"/>
                </af:outputText>
              </af:column>
                          <af:column headerText="#{bindings.findAllStdTest1.labels.results}"
                         sortProperty="results" sortable="false"
                         binding="#{backing_load_graf.column5}" id="column5">
                <af:outputText value="#{row.results}"
                               binding="#{backing_load_graf.outputText6}"
                               id="outputText6"/>
              </af:column>

            </af:table>

PM MAIL   Вверх
alexsmirnov
Дата 19.12.2006, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.8.2005

Репутация: 5
Всего: 7



Лучше всего в TreeModel для ноды сделать action метод ( например, в базовом классе прописать ), в котором будет выставляться нужная модель для таблицы :
Код

<af:commandLink binding="#{backing_load_graf.outputText1}"
                                    id="outputText1" text="#{node}"
                                    action="#{node.selectDetail}"/>

Естественно, бин дерева должен иметь доступ к бину таблицы.
Если с моделью не хочется, то тогда к commandLink добавить параметр с каким-либо ключом из ноды,

PM MAIL   Вверх
Vofka
Дата 25.12.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: 1
Всего: 1



Сделал через commandLink все работает.Пришлось добавить поле id в атрибуты.Теперь проблема в следующем если отображать через #node то верхний элемент дерева отображается  нормально а листья дерева отображают два атрибута id и то поле которое мне нужно.В туориале прочитал что надо использовать свитч чтобы в зависимости от ноды менять ее текст.
 Вот что-то типа этого:
Код

<af:switcher facetName="#{backingSRManage.treeLevel[node.hierType.viewDefName]}">
<f:facet name="StaffNode">
<af:commandLink text="#{node}"
action="#{backing_SRManage.staffLinkDrilldown}"
actionListener="#{bindings.setCurrentStaffRowWithKey.execute}"/>
</f:facet>
<f:facet name="ServiceRequestsNode">
<af:panelGroup>
<af:outputText value="[#{node.Status}] "/>
<af:commandLink text="#{node.ProblemDescription}"
action="#{backing_SRManage.problemLinkDrilldown}"
actionListener="#{bindings.setCurrentProblemAndAssigneeRows.execute}"/>
</af:panelGroup>
</f:facet>
</af:switcher> 

далее в туториале  написано что В faces-config страницы надо добавить

Код

<managed-bean>
<managed-bean-name>backing_SRManage</managed-bean-name>
...
<managed-property>
<property-name>treeLevel</property-name>
<map-entries>
<key-class>java.lang.String</key-class>
<value-class>java.lang.String</value-class>
<map-entry>
<key>oracle.srdemo.model.queries.StaffWithOpenRequests</key>
<value>StaffNode</value>
</map-entry>
<map-entry>
<key>oracle.srdemo.model.queries.OpenOrPendingServiceRequests</key>
<value>ServiceRequestsNode</value>
</map-entry>
</map-entries>
</managed-property>
</managed-bean>

Так вот когда я попытался сделать подобное в своем проекте у меня вылезла ошибка что невозможно установить значение для treeLevel.Что нужно исправить или добавить?

Добавлено @ 18:05 
node.hierType.viewDefName возвращает как раз viewDefName засчет которого было сформирована нода  а вот эта штука целиком несрабатывает
 
Код

backingSRManage.treeLevel[node.hierType.viewDefName]

PM MAIL   Вверх
Vofka
Дата 26.12.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: 1
Всего: 1



Сделал по другому.

Код

 <af:tree value="#{bindings.findAllStdSoft1.treeModel}"
                         var="node" binding="#{backing_nagruz.tree1}"
                         id="tree1">
                  <f:facet name="nodeStamp">
                    <h:panelGroup binding="#{backing_nagruz.panelGroup1}"
                                  id="panelGroup1">
                      <af:commandLink binding="#{backing_nagruz.outputText1}"
                                      id="outputText1" text="#{node.id}"
                                      rendered="#{node.id!=null}">
                        <af:setActionListener to="#{bindings.param_idBIND.inputValue}"
                                              from="#{node.id}"/>
                      </af:commandLink>
                      <af:commandLink text="#{node}"
                                      binding="#{backing_nagruz.commandLink1}"
                                      id="commandLink1"
                                      rendered="#{node.id==null}"/>
                    </h:panelGroup>
                  </f:facet>
                </af:tree>


 smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.