OpenLaszloアドバンスド・テクニック(3) Page 3/4
リアルタイム株価チャートの基盤フレームを作る
ネットエイト小野 圭二
2006/6/7
■ビューへのコンポーネント配置
(1)コンボボックス・コンポーネントの配置
まず「銘柄選択」のコンボボックスを配置してみます。銘柄は「(株)ABC社」と「(株)XYZ社」の2社から選択するものとします。銘柄リストは<dataset>にありますので、これを<combobox>にバインドします。リスト5のコードを「stocklist」ビューに配置します。
<text x="50" y="20" fontsize="14">銘柄:</text> |
リスト5 「銘柄選択」のコンボボックスを配置 |
<combobox>タグにバインドされたデータをプルダウンメニューから選択すると「onselect」イベントが発生しますのでgetSelectionメソッドを使って「obj」オブジェクトとして取得します。このオブジェクトからgetValueメソッドを使って<textlistitem>タグのvalue属性が取得できます。これはcompanyデータのid属性がバインドされています。デバッグウィンドウに取得したデータを表示するようにしていますので確認してください。
なお、本プログラムでは銘柄リストをLZXコードに直接書いていますが、実際にはパーソナライズされた銘柄リストをデータベースにアクセスして取得することがほとんどでしょう。そんなときには、第2回「Webアプリと連携するためのコーディング基礎」で解説したように、<dataset>タグのsrc属性にサーバサイドプログラムを指定すればデータをサーバから取得できます。さらに、このLZXアプリケーション起動時に自動的に銘柄データをサーバから取得したいなら、同じく<dataset>タグのrequest属性をtrueにします。
<dataset name="meigara" |
これでサーバからデータを取得する場合も、本プログラムと同じ動作が実現できます。
(2)チェックボックス・コンポーネントの配置
次に、表示するチャートを選択するチェックボックスを配置します。表示はデフォルトで「ローソク足・出来高チャート」を表示し、そのほかはここで配置するチェックボックスが選択されたら表示することにします。リスト6のコードをchartselectビューに配置します。
<checkbox name="cs1" x="10" y="10" fontsize="14">ローソク足・出来高チャート |
リスト6 チェックボックス・コンポーネントの配置 |
各チェックボックスがチェックされると「onclick」イベントが発生しますので、同様にデバッグウィンドウで確認してください。
(3)コンポーネント/ビュー間の連動設定
さて、(1)と(2)でコンポーネントをそれぞれ配置しましたが、操作シナリオのa〜bを実現するためにひと工夫必要です。まず、操作シナリオのaを実現するためにチェックボックス・コンポーネントをデフォルトで非表示にします。3つのチェックボックスを<view>タグでくくってそのビュー全体を非表示にするのは簡単ですが、せっかく<class>タグを覚えたので、ここでは属性を「visible=false」にした<checkbox>を継承したクラスを作成してみましょう(リスト7)。
<class name="chkb" extends="checkbox" fontsize="14" visible="false"/> |
リスト7 <checkbox>を継承した「chkb」クラスの作成 |
そして「銘柄選択」がされたときに、このチェックボックスが表示されるようにしますので、cboxコンボボックスのメソッドに機能を追加します(リスト8)。
<method event="onselect"> |
リスト8 cboxコンボボックスのメソッドに機能追加 |
この追加されたコードでは、「cs1」チェックボックスが表示されているかどうか判断して、表示されていない場合は以下のループ内を実行し、各subviews(チェックボックス)を表示するようにsetVisibleメソッドに「true」を設定して実行します。
この追加されたコードは「with(){}」でくくられていますが、これは「with()」のカッコ内で宣言されたものが「{}」内に適用されることを表しています。つまり、「cs1.visible」は「canvas.cont.chartselect.cs1.visible」と等価であり、「subviews.length」は同じく「canvas.cont.chartselect.subviews.length」と等価です。「subviews」は<view>タグの属性であり、「そのviewに属する子ビューの配列」です。
さらに、初めて表示されたときに「ローソク足・出来高チャート」だけはチェックされた状態になっていてほしいので(操作シナリオのb)、cs1チェックボックスだけにチェックを入れておきます。これは<checkbox>タグのsetValueメソッドに「true」を設定すると実現されます。
そうそう、メソッドの初めと終わりに「<![CDATA[ 〜 ]]>」が追加されていますが、これはコード内の文字をエスケープするためのものです。ループ処理で「i<subviews.length」とあり、この部分の「<」がタグと解釈されるので、これをエスケープするために全体をCDATAセクション(/aig/01xml/cdata.html)でくくっています。「<」だけを「<」で置き換えても同じです。
3/4 |
INDEX |
||
OpenLaszloアドバンスド・テクニック(3) リアルタイム株価チャートの基盤フレームを作る |
||
Page1 はじめに アプリケーションの設計条件 株価チャートのおさらい アプリケーションの画面設計 |
||
Page2 画面モデルビューの作成 |
||
Page3 ビューへのコンポーネント配置 |
||
Page4 最後の仕上げとWebブラウザでの動作確認 |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|