Проблема дерева Richfaces - не может быть приведена к javax.swing.tree.TreeNode - PullRequest
2 голосов
/ 08 августа 2011

Я использую Richfaces 3, Facelets (версия до JSF 2) и Tomcat. Я работаю над добавлением дерева Richfaces Tree на мою страницу, но получаю эту ошибку:

org.richfaces.model.TreeNodeImpl не может быть преобразован в javax.swing.tree.TreeNode

Вот код, который я использую для построения списка узлов:

 int i = 0;
 TreeNodeImpl<String> rootNode = new TreeNodeImpl<String>();
 for( Recommendation recommendation : m_recommendationsBean.getRecommendations() )
 {
    final TreeNodeImpl<String> childNode = new TreeNodeImpl<String>();
    childNode.setData( recommendation.getEventDescription() );
    rootNode.addChild( i, childNode );
    i++;
 }
 m_treeNodes.add( rootNode );

А потом:

   @NotNull
   public List<TreeNodeImpl<String>> getTreeNodes ()
   {
      return m_treeNodes;
   }

А у моей страницы просто так:

<rich:tree value="#{DmsRecommendationsPage.treeNodes}" var="recommendation">
   <rich:treeNode>
      #{recommendation}
   </rich:treeNode>
</rich:tree>

Есть идеи? Спасибо!

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Для других читателей:

javax.swing.tree.TreeNode используется в витрине Richfaces здесь: http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=tree&skin=blueSky

Кажется, возможны оба варианта. Документация гласит:

Модель данных должна быть либо org.richfaces.model.TreeNode интерфейс org.richfaces.model.TreeDataModel или Интерфейс javax.swing.tree.TreeNode.

package org.richfaces.demo.tree.model;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

import javax.swing.tree.TreeNode;

import com.google.common.collect.Iterators;

public class Country extends NamedNode implements TreeNode {
3 голосов
/ 08 августа 2011

Проверьте ваш импорт. Собственный интерфейс RichFaces org.richfaces.model.TreeNode должен использоваться в объявлении свойства. Скорее всего, вы выбрали первую опцию автопредставления IDE для импорта Swing вместо RichFaces при объявлении TreeNode.

.

Заменить

import javax.swing.tree.TreeNode;

от

import org.richfaces.model.TreeNode;
...