以下の節では、Append()、Prepend()、Delete()、およびSib Append()を使用して、レポートのディスプレイボックスを追加したり削除したりする方法を説明します。
Appendメッセージを使うと、既存の表示の末尾にディスプレイボックスを追加できます。スクリプトで、空のボックスを1つ作成し、Appendを使って分析の各変数用にそのボックスを追加します。Appendメッセージを使用して、既存の表示に独自の情報や組織名を追加することもできます。
次のコード例では、変数effectsList内に有効な名前のリストがあり、その名前が行列varprop内の列に対応していることを前提としています。つまり、effectsList[1]はvarprop[0,1]のラベルに、effectsList[2]はvarprop[0,2]のラベルにというように順次対応します。
varprop = [0 1 2, 3 4 5, 6 7 8];
effectsList = {"いち", "に", "さん"};
win = New Window( "H List Boxの例",
Outline Box( "分散", hb = H List Box() )
);
For( i = 1, i <= N Items( effectsList ), i++,
Eval(
Substitute(
Expr(
hb << Append(
Number Col Box( effectslist[i], varprop[0, i] )
)
),
Expr( i ), i
)
)
);
Sib Append()は、Append()に似ていますが、ディスプレイボックスを最後の子ディスプレイボックスの兄弟として作成します。Append(左)とSib Append(右)に、Append()とSib Append()を比較する例があります。
PrependメッセージはAppendと同様に動作しますが、項目をディスプレイボックスの最後にではなく先頭に追加します。ディスプレイボックスが追加不可なタイプの場合、その子ディスプレイボックスのうち追加が可能なものに、Prependメッセージが送られます。このため、表示ツリーの先頭にコマンドを送っても問題ありません。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :Name("身長(インチ)") ), X( :Name("体重(ポンド)") ), Fit Line );
(biv << Report)(Outline Box( 1 )) << Prepend(
// biv レポートレイヤーの最初のアウトラインボックスに、
// Prepend メッセージを送る
Button Box( "2次曲線", biv << Fit Polynomial( 2 ) )
// 2次曲線をあてはめるButton Boxを追加
);
「2次曲線」ボタンをクリックすると、グラフに2次曲線が追加されます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :Name("身長(インチ)") ), X( :Name("体重(ポンド)") ), Fit Line );
biv << Report << Prepend( // レポートにprependメッセージを送る
Button Box( "2次曲線", biv << Fit Polynomial( 2 ) )
// Button Boxをレポートの先頭に追加
);
Deleteメッセージは、指定されたディスプレイボックスとその子をすべてレポートから削除します。完全に動的な表示を作成する場合、このメッセージとAppendおよびPrependメッセージを一緒に使うと便利です。次の例では、テキストボックスを別のテキストボックスに置き換えます。このケースではSet Textを使う方法もありますが、他の大半のディスプレイボックスは内容を変更できません。
win = New Window( "X",
list = V List Box(
t1 = Text Box( "t1" ),
t2 = Text Box( "t2" )
)
);
t1 << Delete;
list << Append( t1 = Text Box( "t1new" ) );
メモ: JMPのプラットフォームからは、ディスプレイボックスを削除しないようにしてください。Hide( 1 )メッセージまたはVisibility( "Hidden" )メッセージを、非表示にしたいディスプレイボックスに送ります。
Sib Appendメッセージを使うと、既存のディスプレイボックスのすぐ後ろにディスプレイボックスを追加できます。同じレベルにテキストボックスを追加は、2つのピクチャーボックスツリーを示します。PictureBox( 1 )には、二変量の関係の散布図が含まれています。Picture Box ( 2 )には、緑の線と「平均のあてはめ」というテキストボックスが含まれており、これらは「平均のあてはめ」メニューに対応しています。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate(
Y( :Name("体重(ポンド)") ),
X( :Name("身長(インチ)")),
Fit Mean( {Line Color( {57, 177, 67} )} )
);
Report( biv )[Picture Box( 1 )] << Sib Append( Text Box( "Hello There" ) );
/* Report関数はbivオブジェクトからレポートオブジェクトを戻す。
最初のPicture Boxのすぐ後ろにText Boxを追加する */
図11.22 同じレベルにテキストボックスを追加
メモ: 同じレベルにテキストボックスを追加では、追加された兄弟テキストボックスが「ツリー構造の表示」ウィンドウの最初のピクチャーボックスの下に表示されています。従来の「ツリー構造の表示」ウィンドウのディスプレイツリーでは、兄弟は並べて表示されます。詳細は、第 “ディスプレイツリーの表示”の節を参照してください。
Append(左)とSib Append(右)は、Append()とSib Append()の違いを示しています。Append()は、ディスプレイボックスを親ディスプレイボックスの子として作成します。Sib Append()は、ディスプレイボックスを最後のディスプレイボックスの兄弟として作成します。
図11.23 Append(左)とSib Append(右)