451945
InD-BOARD
他人を誹謗中傷する発言や個人売買・違法コピーに関する書き込みは禁止です。
トラブルに関する質問は、OSやアプリケーションのバージョン、周辺機器等の情報も記入して下さい。
質問へのレスには必ずお礼のコメントを付けましょう。

- HOME - 記事検索 - 投稿回数 - 携帯用URL - フィード - ヘルプ - 管理人用 -
新規投稿フォーム(返信は各スレッドの返信ボタンからお願いします。)
※「投稿キー」を入力しないと投稿できませんので注意して下さい。
indesignGUI「treeview」の選択について / ぶぶっち
いつも勉強させていただいております。
今回はツリービューについて質問です。

今回、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」の選択について / お〜まち URL
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
以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
50/50件 [ ページ : << 1 2 3 4 5 6 7 8 | 過去ログ | 画像リスト ]