WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index 目次

> ## ツリーリスト

> ### メソッドによるリストのデータ表示制御

> ツリーリスト(WSCtreeList)または、WSClist のリスト種別をツリーリストに 設定したものに項目表示データを追加するには、リストの場合と全く同じよう に addItem メソッドを用います。addItem により、追加する文字列、追加す る位置を指定します。追加位置を省略すると、リストの末尾に追加されます。 また、リスト項目のネスト階層は、setItemValue メソッドで設定することが できます。引数には、設定したい項目の位置、値種別に WS_INDENT_LEVEL、 そして階層を指定します。何も設定しない場合は第0階層となり、最上位の状 態になります。

>       setItemValue(pos,mpfc.WS_INDENT_LEVEL,level);
>       pos = 0,1,2,...,-1(最後尾)
>       level = 0(top),1,2,3...

> ［ツリーリスト］
> 図の様にツリーリストに項目を追加するサンプルです。

>     #----------------------------------------------------------
>     #Function for the event procedure
>     #----------------------------------------------------------
>     import mpfc
>     import newwin000

>     def btnep1(object):
>       # リストの項目を全て削除。
>       newwin000.newlist_001.delAll();

>       # リストの末尾に項目を追加。
>       newwin000.newlist_001.addItem("item1");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,0);
>       newwin000.newlist_001.addItem("item2");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,1);
>       newwin000.newlist_001.addItem("item3");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,2);
>       newwin000.newlist_001.addItem("item4");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,3);
>       newwin000.newlist_001.addItem("item5");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,0);
>       newwin000.newlist_001.addItem("item6");
>       newwin000.newlist_001.setItemValue(-1,mpfc.WS_INDENT_LEVEL,1);

>       # リストを変更した場合、最後に一度、更新。
>       newwin000.newlist_001.updateList();
>       return
>     mpfc.WSGFfunctionRegister("btnep1",btnep1)

> ツリーリストにおいて、注意すべき点は、項目間には親子関係のような特別な 関係が全く無く、単なるリスト表示に対して、各項目がインデントを指定され た状態で表示されると言うことです。したがって、最上位の項目を削除したか らといって、それ以降の階層の項目が無くなるといったことはありません。ま た、前項目とのインデントの差は、+1 までです。+1 以上差がある場合は、自 動的に +1 となるように補正されますのでご注意ください。

> ### プロパティからのツリーリストデータの設定

> 比較的項目数が少ない場合、プロパティから、一括して項目を設定することが できます。この場合、まず、"dataSource" プロパティを WS_DATA_SOURCE_NONE に指定します。次に、"data" プロパティに下記に 示すような書式で設定します。
> データ書式：(プロパティ "useIcon" が True の場合)

>     icon_filename,indent_level,1=open/0=close,項目文字列\n...

> データ書式：(プロパティ "useIcon" が False の場合)

>     indent_level,1=open/0=close,項目文字列\n...

> アイコン指定において、アイコンを省略した場合、プロパティ "iconPixmap" で指定したアイコンが用いられます。

>     #----------------------------------------------------------
>     #Function for the event procedure
>     #----------------------------------------------------------
>     import mpfc
>     import newwin000

>     def btnep1(object):
>       # リストの項目を全て削除。
>       newwin000.newlist_001.delAll();

>       # リストにプロパティ経由でデータを設定
>       newwin000.newlist_001.setProperty("dataSource",mpfc.WS_DATA_SOURCE_NONE);
>       newwin000.newlist_001.setProperty("data",",0,1,item1\n,1,1,item2\n,2,1,item3");
>       return
>     mpfc.WSGFfunctionRegister("btnep1",btnep1)

> ### ファイルからのツリーリストデータの設定

> ファイル名を指定して、ファイルから一括して項目を設定することができます。 この場合、まず、"dataSource" プロパティを WS_DATA_SOURCE_FILE に指 定します。次に、"dataSourceName" プロパティにファイル名を指定します。 ビルダーからのプロパティ設定、プログラムからの設定で動作します。下記は プログラムでの設定の例です。

>     #----------------------------------------------------------
>     #Function for the event procedure
>     #----------------------------------------------------------
>     import mpfc
>     import newin000

>     def btnep1(object):
>       # リストの項目を全て削除。
>       newwin000.newlist_001.delAll();

>       # リストにファイル経由でデータを設定
>       newwin000.newlist_001.setProperty("dataSource",mpfc.WS_DATA_SOURCE_FILE);
>       newwin000.newlist_001.setProperty("dataSourceName","data.txt");
>       return
>     mpfc.WSGFfunctionRegister("btnep1",btnep1)

>     #data.txt の内容
>     $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item1
>     1,1,item2
>     2,1,item3
>     3,1,item4
>     $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item5
>     1,1,item6
>     2,1,item7
>     3,1,item8

> ### インスタンスからのツリーリストのデータ表示

> インスタンス名を指定して、インスタンスから一括して項目を設定することが できます。この場合、まず、"dataSource" プロパティを WS_DATA_SOURCE_INSTANCE に指定します。次に、"dataSourceName" プロ パティにインスタンス名を指定します。下記の例では、WSCtextField のイン スタンス newtext_000 を指定しています。データの形式は、ファイル指定の 場合と変わりません。newtext_000 に入力されている文字列がリストに表示 されます。ビルダーからのプロパティ設定、プログラムからの設定で動作しま す。下記はプログラムでの設定の例です。この場合、入力フィールドのインス タンス newtext_000 に入力されている文字列がツリーリストの項目として表 示されます。

>     #----------------------------------------------------------
>     #Function for the event procedure
>     #----------------------------------------------------------
>     import mpfc
>     import newwin000

>     def btnep1(object):
>       # リストの項目を全て削除。
>       newwin000.newlist_001.delAll();

>       # リストにファイル経由でデータを設定
>       newwin000.newlist_001.setProperty("dataSource",mpfc.WS_DATA_SOURCE_INSTANCE);
>       newwin000.newlist_001.setProperty("dataSourceName","newtext_000");
>       return
>     mpfc.WSGFfunctionRegister("btnep1",btnep1)

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | 目次

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004