このソリューションはまだテストしていませんが、機能するはずです。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"));
}
この方法を使用すると、可能な限り多くの階層を再帰的にループできます。私は現在オフィスにいるので、このコード(メモ帳++のみ)をテストできませんでした。しかし、それを試してみてください。まだ行き詰まっている場合は、数時間で家に帰ったら、もっと詳細なことをすることができます。