2017-01-19 2 views
1

私はGoJSの助けが必要です。私はthis pageのサンプルとSubGraphExpanderButtonsセクションで作業しています。たとえば、SubGraphExpanderButtonをクリックして、グループ内のすべてのTextBlockの色を赤に設定したいとします。私はボタンが横パネルにあるためGoJSのパネルのTextBlockを取得する

button.panel.panel.elt(1) 

のように、すべてのTextBlock何かを取得しようとする試料の構造によるとclickイベントハンドラ

... 
$("SubGraphExpanderButton", { 
    margin: new go.Margin(0, 3, 5, 0), 
    click: function(e, button) { 
     ... 
    } 
}), 
... 

を追加し、水平方向のパネルは垂直ですPanelと垂直パネルには、すべてのTextBlockを含むプレースホルダがあります。しかしそれは間違っている。私はこのセレクタが私にプレースホルダを正確に渡すことさえ確信していません、そして、それはそうです、私はオブジェクトからネストされた要素を得ることができません。私はGoJSのコンセプトを誤解しているように見えます。

私の質問は、どのようにTextBlocksグループをすべて取得できるのですか?

答えて

1

メンバーのノードとリンクは、グループを含むグループのビジュアルツリーにはありません。すべてのパート(ノードとリンクとグループを含む)は、GraphObject.panelがnullの最上位オブジェクトです。したがって、PanelsおよびGraphObjectsの階層であるビジュアルツリーをナビゲートして、任意のメンバーNodeに到達することはできません。また、メンバーノードから.panelまでの間で、そのグループに移動することもできません。

代わりに、あるグループから、Group.memberPartsを使用して、メンバーとリンク(存在する場合)を取得することができます。ノードまたはリンクから、Part.containingGroupを参照すると、そのグループを含むグループに移動することができます(存在する場合)。

button.part.memberParts.each(function(member) { if (member instanceof go.Node) { . . . } })

もっと議論がhttps://forum.nwoods.com/t/getting-textblocks-of-panel-in-gojs/8009です。

関連する問題