YKLook説明書 クラス解説 YKLookTree 機能別   ABC
ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  

YKLookTree


ツリー表示用のGUIオブジェクトです。

このGUIオブジェクトは、階層構造を表現するときに使います。
階層構造を表現する個々の表示項目をノードと呼びます。
階層構造の頂点に位置する最上位のノードをルートノードと呼びます。
他のノードは、すべてこのルートノードの下位ノードになります。
ノードには、下記2種類のものがあります。
ルートノードは常に集合ノードです。
また、下位ノードを持たない(下位ノードの個数が0の)集合ノードを定義することもできます。
すべてのノードは名前を持ち、この名前がコンピュータ画面上に表示されます。

階層構造内の特定のノードを表現するときはノードパスで表現します。
具体的には、各ノードの名前を要素とする配列で表します。
['aaa','bbb','ccc']
この例では、 'ccc' のノードをノードパスで表現しています。
最上位のルートノードの直下に 'aaa' という集合ノードがあり、その下に 'bbb' という集合ノードがあり、その下に 'ccc' があることを表しています。

すべてのノードの最上位には例外なくルートノードがあり、これを記述するのは冗長なので、ノードパスを表現するときはルートノードの記述は省略し、次のノードから記述します。
ルートノード自体を表現するときは、空の配列で表します。

このクラスを使うときは、 swingtree をロードしてください。

require 'yklook/swing'
require 'yklook/swingtree'

注意: このクラスは追加機能です。当社ライセンスに付属します。




クラスメソッド:   new   yk_find_objects   yk_find_objects_frame   yk_look   yk_look_frame
インスタンスメソッド:   yk_add_node_select   yk_scroll   yk_select_none   yk_selected_node   yk_set_icon_closed   yk_set_icon_leaf   yk_set_icon_opened   yk_set_listener   yk_set_node_icon   yk_set_node_select   yk_set_node_tooltip   yk_set_root_visible   yk_set_select_mode   yk_set_show_root_handle
その他の項目: なし


 Object (Ruby 組み込みのクラス。すべてのオブジェクトのスーパークラス)
   ┃
   ┗ YKLookSwingBase (YKLook のすべてのGUIオブジェクトの共通クラス)
      ┃
      ┗ YKLookCompoent (YKLook のGUI表示部品の共通クラス)
         ┃
         ┗ YKLookTree (このクラス)


new( paths )  
new( paths , root )

インスタンスを生成します。
引数の paths は配列で、その要素は配列で表したノードパスです。
引数の root は文字列で、ルートノード(最上位ノード)の名前です。
以下の例をもとに詳細を説明します。

a = ['hhh','iii']
b = ['hhh','jjj']
c = ['hhh','kkk','lll']
d = ['mmm','nnn']
e = ['mmm','ooo']
f = ['ppp','qqq',nil]
tree = YKLookTree.new( [a,b,c,d,e,f], 'rrrr' )
tree.yk_set_preferred_size( 120, 200 )

末端の 'iii' 等だけでなく、ノードパスに含まれる集合ノードも自動的に生成します。
下位ノードの個数が0の集合ノードを指定するには、ノードパスの末尾に nil を入れてください。この例では 'qqq' がそうです。

ルートノードをツリーに表示したくないときは、ルートノードに名前をつける必要はありません。この場合、ルートノードの引数自体を省略してください。

生成した後は、表示する前に YKLookCompoent#yk_set_preferred_size() 等(このクラスのスーパークラスから継承しているメソッド)で表示領域のサイズを指定してください。




yk_find_objects()  
yk_find_objects( tagname )
yk_find_objects( tagname , tagno )

YKLookSwingBase.yk_find_objects の説明をご覧ください。




yk_find_objects_frame( frame )  
yk_find_objects_frame( frame , tagname )
yk_find_objects_frame( frame , tagname , tagno )

YKLookSwingBase.yk_find_objects_frame の説明をご覧ください。




yk_look( tagname )  
yk_look( tagname , tagno )

YKLookSwingBase.yk_look の説明をご覧ください。




yk_look_frame( frame , tagname )  
yk_look_frame( frame , tagname , tagno )

YKLookSwingBase.yk_look_frame の説明をご覧ください。



yk_add_node_select( nodepath )  

現在選択状態のノードに加えて、さらに選択状態のノードを増やします。
引数の nodepath は配列で表現したノードパスです。
ルートノードを指定するには、空の配列を指定してください。

このメソッドを呼び出した時点では、表示中のコンピュータ画面の状態は変わりません。
メインループに戻った時に画面の表示を更新しています。

yk_set_select_mode() の指定によっては、選択状態が制限されることもあります。

tree.yk_add_node_select( ['aaa','bbb','ccc'] )




yk_scroll( nodepath )  

指定されたノードが表示領域内に見えるようにスクロールします。
引数の nodepath は配列で表現したノードパスです。

tree.yk_scroll( ['aaa','bbb','ccc'] )




yk_select_none()  

すべてのノードの選択状態を解除します。

このメソッドを呼び出した時点では、表示中のコンピュータ画面の状態は変わりません。
メインループに戻った時に画面の表示を更新しています。




yk_selected_node()  

選択状態のノードを返します。
複数のノードを選択していることもあるので、このメソッドの戻り値は常に配列です。何も選択されていないときは、空の配列を返します。

配列の各要素はノードパスで、ノードパスは配列で表現しています。
つまり、選択状態のノードがあるときは、このメソッドの戻り値は常に二重の配列になっています。

ルートノードが選択されているときは、ノードパスとしては空の配列で表します。

このメソッドは、実際に表示しているコンピュータ画面上の状態を返します。
一度も画面を表示していないときは、有効な値を返しません。

wrk = []
sel = tree.yk_selected_node()
sel.each() do |nodepath|
    if nodepath.size() <= 0
        node = 'root node'
    else
        node = nodepath.join('/')
    end
    wrk << node
end
この例では、ルートノードのときは 'root node' という文字列を作り、それ以外のときはノードパスを '/' で区切った文字列を作っています。




yk_set_icon_closed( icon )  

集合ノードの閉じたとき用のデフォルトのアイコンを指定します。
引数の icon YKLookImage クラスのオブジェクトまたは nil です。
nil のときはアイコンを表示しません。




yk_set_icon_leaf( icon )  

要素ノード用のデフォルトのアイコンを指定します。
引数の icon YKLookImage クラスのオブジェクトまたは nil です。
nil のときはアイコンを表示しません。




yk_set_icon_opened( icon )  

集合ノードの開いたとき用のデフォルトのアイコンを指定します。
引数の icon YKLookImage クラスのオブジェクトまたは nil です。
nil のときはアイコンを表示しません。




yk_set_listener( method_name )  

コールバック用のメソッドを文字列またはシンボルで指定します。
nil を指定すると、コールバック用メソッドを未指定にします。
名前の先頭が 'yk' で始まるものは指定できません。

コールバック用のメソッドは、プログラム製作者が YKLookMain YKLookMainFrame のサブクラスに定義する必要があります。
コールバック用のメソッドには引数がひとつあり、 YKLookEventTreeClick クラスのオブジェクトです。

実際にコールバックするのはツリー内のノードがクリックされたときで、なおかつ、このときに選択状態になっているノードがひとつだけのときです。
また、続けて同じノードをクリックしてもコールバックしません。




yk_set_node_icon( nodepath , icon1 , icon2 )  

特定のノードに固有のアイコンを指定します。
引数の nodepath は配列で表現したノードパスです。
引数の icon1 icon2 YKLookImage クラスのオブジェクトまたは nil です。 nil のときはアイコンを表示しません。

ノードが集合ノードのとき、 icon1 は内部を開いて下位ノードを表示したとき用のアイコンで、 icon2 は閉じたとき用のアイコンになります。
ノードが要素ノードのとき、 icon1 のみ意味を持ちます。
要素ノードのときは、 icon2 の引数自体を省略しても問題ありません。

tree.yk_set_node_icon( ['aaa','bbb','ccc'], img1, img2 )




yk_set_node_select( nodepath )  

指定されたノードを選択状態にします。
他のノードの選択状態は解除されます。
引数の nodepath は配列で表現したノードパスです。
ルートノードを指定するには、空の配列を指定してください。

このメソッドを呼び出した時点では、表示中のコンピュータ画面の状態は変わりません。
メインループに戻った時に画面の表示を更新しています。

tree.yk_set_node_select( ['aaa','bbb','ccc'] )




yk_set_node_tooltip( nodepath , text )  

ノードにツールチップを付加します。
引数の nodepath は配列で表現したノードパスです。
引数の text はツールチップ文字列です。

tree.yk_set_node_tooltip( ['aaa','bbb','ccc'], 'text' )




yk_set_root_visible( bool )  

ルートノードを表示するかどうかを指定します。
引数の bool true のときは表示します。
引数の bool false のときは表示しません。
デフォルトは true で表示します。




yk_set_select_mode( mode )  

ノードの選択形式を指定します。
引数の mode は文字列で、以下のいずれかです。
指定 意味
'single' ひとつのノードのみ選択可能
'contiguous' 連続していれば複数選択可能
'discontiguous' 連続していなくても複数選択可能
英字の大文字小文字はどちらでも受け付けます。
YKLook 内部では英字の先頭1文字だけを見ています。
デフォルトは 'd' です。




yk_set_show_root_handle( bool )  

ルートノードのつまみ(下位ノードの表示 / 非表示を切り替えるもの)を表示するかどうかを指定します。
引数の bool true のときは表示します。
引数の bool false のときは表示しません。
デフォルトは false で表示しません。



なし



ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  
YKLook説明書 クラス解説 YKLookTree 機能別   ABC


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.