Я еще не тестировал это решение, но я думаю, что оно должно работать. все примеры на витрине Primefaces жестко запрограммированы. Чтобы сделать его динамичным, вам придется работать с массивами.
Так, например, раздел жестко запрограммированного кода ниже:
TreeNode documents = new DefaultTreeNode(new Document("Documents", "-", "Folder"), root);
TreeNode pictures = new DefaultTreeNode(new Document("Pictures", "-", "Folder"), root);
TreeNode music = new DefaultTreeNode(new Document("Music", "-", "Folder"), root);
Можно заменить на:
Map<String, TreeNode> rootNodes = new HashMap<String, TreeNode>();
//Retrieve the list of root Nodes. eg Tables in the database.
for(Table table : databaseTables){
//table.getTableName() will be the name of the node, it could be something like "music" or "documents"
rootNodes.add(table.getTableName(), new DefaultTreeNode(table.getTableName(), new Document......, root);
}
Причина, по которой я добавляю их на карту, заключается в том, что если вы хотите сослаться на них, вы можете использовать ключ в качестве ссылки. теперь Если вы хотите добавить узлы к узлу изображений, например
//Create a new map
Map<String, TreeNode> pictureNodes = new HashMap<String, TreeNode>();
//now loop through your picture objects
for(picture : pictures){
pictureNode.add(new DefaultTreeNode(picture.getName(), ......., root.get("pictures"));
}
Используя этот метод, вы можете рекурсивно перебирать как можно больше иерархий. Я не смог протестировать этот код (только блокнот++), потому что сейчас нахожусь в офисе. но попробуйте, если вы все еще застряли, я могу сделать что-то более подробное, когда вернусь домой через несколько часов.
person
greenkode
schedule
04.09.2012