|
ScriptUIで質問です。
対象のフォルダ(以下Root)を指定して、 それ以下のファイルとフォルダをツリー構造でGUIに表示したいのですが、 Rootの第1階層を一括でツリーにした後、 第2階層以降を1つずつしか追加する方法しか解りません。 for文でループして追加しても良いのですが Root以下のファイル数が多いので処理時間が結構かかってしまいます。 複数アイテムを一括で追加する方法や、 複数階層を一括で追加する方法ってないでしょうか?
-----以下環境と例文です----- 環境:MacOSX 10.4.11 App:IndesignCS3 (5.0.4) 言語:javascript 例文: var dlg = new Window('dialog', 'TREEVIEWテスト',[0,0,500,500]); with(dlg){ //1階層目作成 var TreeObj=add('treeview',[10,10,200,300],["A","B","C"]); //2階層目追加 TreeObj.items[0].add('node',"AAA1"); TreeObj.items[0].add('node',"AAA2"); TreeObj.items[0].add('node',"AAA3"); //3階層目追加 TreeObj.items[0].items[1].add('node',"AAAA1"); } //階層を展開 TreeObj.items[0].expanded=true; TreeObj.items[0].items[1].expanded=true; dlg.center(); dlg.show();
|
No.3879 2009/11/25(Wed) 11:56:21
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
|
Re: TreeViewの一括追加したい / せうぞー |
|
|
|
ディレクトリ階層などのツリーを表現したい場合、 ファンクションなどに再帰処理させるのが定石だと思います。 「フォルダ 再帰」などと検索するといくつものやり方がヒットします。
>Root以下のファイル数が多いので処理時間が結構かかってしまいます。
これについては、ある程度仕方ないように思います。 またほんとうにルートから検索開始しようものなら、とんでもない再帰が発生します。ファイルが1000個以上見つかったらそこで処理を終了するなどの対策が必要かもしれません。 Mac OSならばFindコマンドなどと合わせて目的のファイルにフィルタを掛けることで時間の短縮もできるかもしれません。
|
No.3880 2009/11/25(Wed) 15:23:16
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; ja-jp) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
|
|
Re: TreeViewの一括追加したい / kamiseto |
|
|
|
Adobe Bridge CS3 SDKに入っているサンプルスクリプトの SnpCreateTreeView.jsxが参考になるかもしれません。
|
No.3881 2009/11/25(Wed) 17:14:14
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 GTB5
|
|
Re: TreeViewの一括追加したい / 紅陽 |
|
|
|
せうぞー様、kamiseto様 ご返信ありがとうございます
>ディレクトリ階層などのツリーを表現したい場合、 >ファンクションなどに再帰処理させるのが定石だと思います。
そうですね、再起処理で出来るだけ無駄な処理は省いてみます。
>Mac OSならばFindコマンドなどと合わせて目的のファイルにフィルタを掛けることで時間の短縮もできるかもしれません。
TreeView.find("text:string")とかの事でしょうか? そうであるなら試してみます。ツリー構造でどの様な動作するかも気になりますし。
>Adobe Bridge CS3 SDKに入っているサンプルスクリプトの >SnpCreateTreeView.jsxが参考になるかもしれません。
おおっ!そんなサンプルがBridgeにあるんですね。 ……確認してみました。 どうやら、サンプルファイルの中でも追加時には一つずつfor文で回してるようです。でもTreeView内でアイコンとか使えるんですね。参考になりました^^
アドバイスありがとうございました。 一括の追加は出来なさそうなので、 処理の方で早くなるように頑張ってみます。
|
No.3882 2009/11/25(Wed) 21:40:05
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
|
|