Curlで始めるリッチクライアント(2) Page 3/3
Curlによるオブジェクト指向開発と
強力な標準クラス
住商情報システム三野 凡希
2005/6/17
■強力なユーザー・インターフェイスを持つRecordGridクラス
{RecordGrid |
リスト6 RecordGridクラスのオプション設定 (RecordSet-and-RecordGrid.scurlの48行目からを抽出) |
ここでは高さ(height)と幅(width)の設定に続いて、「alternate-row-background」と「record-source」オプションを設定しています。「record-source」には、表示するデータのRecordSetクラスを指定します。基本的にRecordGridクラスは、「record-source」にRecordSetクラスを指定するだけで使用できます。
「alternate-row-background」は1行置きに行の色を変えて表示するためのオプションで、色を指定することで1行ずつ色が変わります(図5)。そのほかにもディスプレイの変更のためのさまざまなオプションが用意されています。詳しくはSurge Labドキュメントの「目次」タブ−「Surge Lab開発者ガイド」−「グラフィカル ユーザー インターフェイス」−「データ レコードとグリッド」および「APIリファレンス」の「RecordGrid」クラスを参照してください(Surge Lab IDE 60日体験版のダウンロードページ)。では、RecordGridクラスの主要な機能を中心に説明しましょう。
- ドラッグ&ドロップによる列の移動
移動する列の見出しをドラッグすることで列の位置を移動できます
- 列のサイズ変更
サイズを変更する列の右端の線上にカーソルを置くとカーソルが両方向矢印の形に変わります。ドラッグするとサイズを変更できます
- レコードのソート
列見出しをクリックすると、列の値を基準にしてソートできます。その際、昇順/降順を示す小さな矢印も現れます
- レコードの選択
レコード・セレクタ領域(左側の部分)をクリックすることで、レコード全体を選択できます。複数のレコードを選択する場合は[CTRL]もしくは[SHIFT]キーを押しながらクリックします
このほかにもスクロール・バーやナビゲーション・バーの設定、さらにグリッド・セルを右クリックするとメニューが表示され[昇順ソート]ないし[降順ソート]や[(セルの値)のフィルタ]などが選択できます(図5)。
図5 サンプル・アプリケーションの一覧表タブに実装された機能 右クリックからサブメニューを表示させた。「氏名」列に降順ソートを示す矢印も表示されている |
今回のアプリケーションでは参照用に使用していますが、もちろん入力用にも使用できます。また、Excelのようにより高度なユーザー・インターフェイスとして、例えばコピー&ペースト、行の挿入などの機能を持たせることもできます。詳しくはSurge Labドキュメントの「目次」タブ−「Surge Lab開発者ガイド」−「グラフィカル ユーザー インターフェイス」−「データ レコードとグリッド」、「目次」タブ−「Surge Lab開発者ガイド」−「データアクセス」および「APIリファレンス」の「RecordGrid」クラスを参照してください(Surge Lab IDE 60日体験版のダウンロードページ)。
■レイアウトコンテナとポータルにも使えるTabContainerクラス
Curlで画面遷移を実現する場合、HTMLのように新しいページにリンクして画面を変更するのではなく、グラフィカル・コンテナと呼ばれるオブジェクトにTextFieldなどのオブジェクトを配置したり、または入れ替えたりすることで実現します。
代表的なグラフィカル・コンテナとしてVBox、HBox、Frameがあります。VBoxは垂直方向にHBoxは水平方向にオブジェクトを配置でき、Frameは1つのオブジェクトを配置する機能を持っています。グラフィカル・コンテナはBoxクラスを継承しているため、それぞれaddメソッドおよびclearメソッドを使用してオブジェクトの追加および削除ができ、その機能を使用して画面を変更できます。詳しくはSurge Labドキュメントの「目次」タブ−「グラフィカル ユーザー インターフェイス」−「グラフィカルコンテナ」を参照してください(Surge Lab IDE 60日体験版のダウンロードページ)。
サンプル・アプリケーションでは、簡単に画面を切り替えられるTabContainerクラスを使用しています。これは複数のページを構成できるコントロールで、Excelのシート(タブ)のように使用できます。ページを切り替えてもサーバにアクセスする必要はありません。TabContainerクラスは複数のTabPaneで構成され、それぞれのTabPaneが1つのタブになります。サンプル・アプリケーションの例では、TabContainerの中でadd-paneメソッドを使用して複数のTabPaneを動的に追加していますが、静的にTabContainerクラスのパラメータにTabPaneを設定することもできます。
let tc:TabContainer={TabContainer |
リスト7 TabContainerクラスに動的にTabPaneを追加 (TabContainer.scurlの11行目からを抽出) |
このようにTabContainerは簡単でポータル画面の作成にも向いています。また、オプション、メソッドなども豊富で、tab-placementオプションを変更することによりタブの位置を変更することも可能です。詳しくはSurge Labドキュメントの「目次」タブ−「APIリファレンス」から「TabContainer」クラスを参照してください(Surge Lab IDE 60日体験版のダウンロードページ)。
■まとめ
サンプルアプリケーションは、Curlのシンタックスを理解してもらうためにすべてコーディングベースで説明しました。一方、より簡単に多くの画面を作成したい場合、コーディング量を減らして開発を効率化するツールとして「ビジュアル・レイアウト・エディタ」が提供されています。これは直感的かつコーディングレスの開発環境であり、効率的かつフレキシブルな開発を支援します。
◇
次回はビジュアル・レイアウト・エディタを中心とした開発環境と、効率的な開発手順を紹介します。どうぞお楽しみに!(次回に続く)
3/3 |
INDEX |
||
Curlで始めるリッチクライアント(2) Curlによるオブジェクト指向開発と強力な標準クラス |
||
Page1 前回のおさらいと今回の解説ポイント Curlのアプリケーション構成 TextFieldクラスを継承したサブクラス(共通部品)化 |
||
Page2 データモデルのRecordSetクラス |
||
Page3 強力なユーザー・インターフェイスを持つRecordGridクラス レイアウトコンテナとポータルにも使えるTabContainerクラス まとめ |
- 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データの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|