|
いつも勉強させていただいております。 今回はツリービューについて質問です。
今回、InDesignCC2020、javascript でGUIウィンドウ内にツリービューを表示したとします(下記コーディング)。
//ここから------------------------------ var dlg = new Window('dialog', 'tree'); trv = dlg.add('treeview', [0,0,200,200], ['item1','item2']); trv.items[0].add('node', 'sub1'); targetItem=trv.items[0].items[0].add('item', 'sub2') var selectItem=targetItem while(targetItem.parent!= "[object TreeView]"){ targetItem.parent.expanded=true targetItem=targetItem.parent } selectItem.selected = true; dlg.show();
//ここまで------------------------------
selectItem.selected = true; で、選択状態にしているつもりなのですが、うまくいきません。 やり方が間違ってるのだと思うのですが、おわかりになる方、ご教示くださいますでしょうか。 宜しくお願い致します。
|
No.10429 2023/04/08(Sat) 15:43:10
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
|
Re: indesignGUI「treeview」の選択について / お〜まち  |
|
|
|
InDesignではなくExtendScriptの質問ですね。
コードを次のように追加して確認してみました。 var dlg = new Window('dialog', 'tree'); trv = dlg.add('treeview', [0,0,200,200], ['item1','item2']); trv.items[0].add('node', 'sub1'); targetItem=trv.items[0].items[0].add('item', 'sub2'); var selectItem=targetItem; while(targetItem.parent!= "[object TreeView]"){ targetItem.parent.expanded=true; targetItem=targetItem.parent; } selectItem.selected = true; //ここから追加 dlg.addEventListener("mouseup", function(){ alert("選択状態は"+selectItem.selected); selectItem.selected = !selectItem.selected; alert("選択状態を"+selectItem.selected+"に変更しました"); }, false); //追加ここまで dlg.show();
追加した部分を説明すると、ウィンドウをクリックするたびにselectItemの現在の状態をアラートで表示し、その後に選択を反転しています。ですからクリックするたびに選択された状態と選択が外れた状態になるわけなんですが、アラートを見る限りこのコードは正常に動いているようです。 しかし画面表示は変更されません。つまりスクリプトによる「選択状態の変更」と「画面表示」が連動していないと思われます。 ぶぶっちさんはおそらく「選択された状態」を「文字の背景色が変更された状態」と同一視しており、スクリプトで選択状態にしても文字の背景色が変更されないので「うまくいきません」と思われたのでしょう。ですがこのコード自体は間違っていないので、現在の挙動はESTKの仕様(バグ?)によるものと思います。
じゃあどうすればいいのかは残念ながら私にはわかりません。多分どこかに同じ経験をされた方がいると思うので、そういう方がでてくるのを待たなければなりません。 最初に書いたように、これはInDesignではなくExtendScriptの問題なので、InDesignを使わず、IllustratorやPhotoshopを使っている人でも経験している可能性があります。むしろInDesign使いよりもIllustrator使いのほうが、今回のようなスクリプトUIを使う機会が多いと思います。ですから他のところで聞かれた方がよいかもしれません。
|
No.10432 2023/04/08(Sat) 23:52:06
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
|
|
Re: indesignGUI「treeview」の選択について / ぶぶっち |
|
|
|
お〜まち様 いつもご教示ありがとうございます。
おっしゃる通り、selected=true とすれば、GUI的に反転選択状態になると思い、ならないことで悩みまくっていました。
ちなみに、 selectItem.selected = true; を trv.items[0].selected = true;(およびtrv.items[1].selected = true) とすると、第一階層のオブジェクトのみ反転選択された状態になります。
GUI表示している以上、ユーザーに反転選択された状態を表示させ、視覚的に判るようにしたいと思いましたが、うまくいかず苦慮しておりました。
TreeViewの仕様なのでしょうかね、、
ありがとうございました。
|
No.10433 2023/04/09(Sun) 10:28:53
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
|
|