このパッケージを使用して、ストアのカテゴリに CRUD 操作を実装しようとしています。このパッケージを使用した経験のある人がどこにいるかわからなかったので、ここで質問することにしました。
ユーザーがツリーを参照せずにカテゴリを検索でき、選択したパスとノードが JTree で展開されるクイック検索オプションを追加したいと考えました。
これまでのところ、次のことを行いました。
ArrayList<FpsInventoryCategory> path;
// recursive method to find the path to the root of a selected node
private void findTreePath(FpsInventoryCategory currentNode) throws StorageException{
Object parentId = currentNode.getParentId();
FpsInventoryCategory parentNode = (FpsInventoryCategory) store.getItem(parentId);
if (parentNode.isRoot()){
path.add(0, parentNode);
} else {
path.add(0, parentNode);
findTreePath(parentNode);
}
}
FpsInventoryCategory は HierarchialItem を実装します。path は FpsInventoryCategory の ArrayList です。これはうまく機能し、目的のパスを取得できます。
私が抱えている問題は、ノードや TreePath を展開する方法を特定するためにパッケージを理解することです。最初は TreePath を介して試してみましたが、JPersistentTree の全体的な考え方はデータを動的にロードすることであるため、JTree には子の最初の行を超えるデータがないことに気付きました。これは正しい仮定ですか?
もしそうなら、私は次のように試したパスに沿って子をロードする必要があると仮定しています:
private void viewTreeNodeAndPath(Long id2) throws StorageException {
// TODO Auto-generated method stub
gui.getTreeInventoryCategory().getModel().getRoot();
path = new ArrayList<FpsInventoryCategory>();
store = gui.getStore();
FpsInventoryCategory startNode = (FpsInventoryCategory) store.getItem(id);
path.add(startNode);
findTreePath(startNode);
DynamicTreeNode currentTreeNode;
Iterator it = path.iterator();
int i = 0;
FpsInventoryCategory temp;
while(it.hasNext()){
temp = (FpsInventoryCategory) it.next();
System.out.println("temp cat:" + temp.getName());
currentTreeNode = new DynamicTreeNode(store, temp);
currentTreeNode.loadChildren();
gui.getTreeInventoryCategory().expandRow(i);
i++;
}
// selectedTreePath = new TreePath(dynamicNodePath);
// System.out.println(selectedTreePath);
// gui.getTreeInventoryCategory().setSelectionPath(selectedTreePath);
//
// gui.getTreeInventoryCategory().expandPath(selectedTreePath);
}
^ 結果が得られなかったため、パスによる選択をコメントアウトしました。これも同様に機能していません。
ツリーを拡張する方法について何か考えはありますか? または、この問題に関する詳細情報はどこで入手できますか?
お気軽に私にアドバイスするか、これに対する解決策を見つけることができる場所を教えてください.
よろしくお願いします。