06-09-2014, 04:36 PM,
|
|||||
|
|||||
複数のツリー表示について
こんにちは! 今回はツリーを扱いたくて色々調べていたのですが ツリーを2つ以上表示させている場合に(今回は同じツリーの内容ですが・・・) フォーカス?選択状態?がツリー毎に出てきています。。。 (例) tree1を選択してtree2を選択してもtree1の選択状態が消えない! どのようにすればtree1からtree2を選択したときに tree1の選択状態を消すことが出来るでしょうか? ご教示よろしくおねがいします。 Code: {let tree_model:TreeModel= |
|||||
06-10-2014, 12:39 PM,
|
|||||
|
|||||
RE: 複数のツリー表示について
フォーカスと選択状態は別のもので、画面に1つしか存在しないのはフォーカスの方ですね。
(破線で囲われているのがフォーカス、青くなっているのが選択と思って操作してみると 違いがわかるかも。) ツリーを2つ表示させた場合は、フォーカスが別のツリーへ移動しても選択状態は維持 されているので、ツリーの項目が選択された際に他のツリーの選択を解除するという 処理が必要になりそうです。 選択は"selection"をキーワードにアクセッサやメソッドを探すとそれらしいものが ありますが、selectionの変更イベントを受けてselectionを変更すると堂々巡りに なってしまうので、ここはPointerReleaseイベントをつかってこんな感じではどうでしょう Code: {let tree_model:TreeModel= |
|||||
06-11-2014, 01:20 PM,
(This post was last modified: 06-11-2014, 01:32 PM by umemura.)
|
|||||
|
|||||
RE: 複数のツリー表示について
PointerRelease だと、ツリーの操作をマウス以外で行った場合に対応できないので、
選択を外す際のイベントは、フォーカスイベントにしたほうがよいかもしれません。 また、要件次第だとは思いますが、選択状態を残したいのであれば、 フォーカス状態に応じて「選択色」を変更する、という方法もあります。 この方法なら、コントロール間の制御も必要ないですしね。 Code: ||フォーカスアウト時に、選択色を灰色に |
|||||
06-11-2014, 03:02 PM,
|
|||||
|
|||||
RE: 複数のツリー表示について
>dyoshida さん
フォーカスと選択について分かりやすい説明ありがとうございます! 破線と青状態を意識してみることが無かったですが 見てみると簡単にわかりました! >umemura さん 要件に合わせてFOCUS-IN/OUTを使って 想定していた動作が出来ました!ありがとうございます! しかしながらもう一つ質問事項が出来ました・・・ 要素のAction時に子が存在していて且つ、 展開されていない状態なら展開する 展開されていたら閉じる をやってみたいのですが .has-children?を使えば子があるかは判定できるのですが 展開されているか?という判定ができません! ご教示よろしくおねがいします! Code: {let tree_model:TreeModel= |
|||||
06-11-2014, 03:41 PM,
(This post was last modified: 06-11-2014, 03:42 PM by Yuhki.)
|
|||||
|
|||||
RE: 複数のツリー表示について
dyoshidaさん>
上記ソースだとタブ遷移してキーボード操作で選択したり クリックしたままマウスを移動すると選択状態が残ってしまう気が… |
|||||
06-11-2014, 06:25 PM,
|
|||||
|
|||||
RE: 複数のツリー表示について
「開いているかどうか」は、TreeItem で取得できるようですね。
Code: {value |
|||||
06-12-2014, 10:54 AM,
|
|||||
|
|||||
RE: 複数のツリー表示について
>umemura さん
ありがとうございます! 想定していた動作が出来ました! 回答をくださる皆様ありがとうございます! |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
6 Guest(s)
6 Guest(s)