基本仕様 第 1 章 はじめに 次の章

1. コントロール (項目)

VB や C# では、フォーム (画面) 上に貼り付けるテキストフィールドやボタンなどを総称して“コントロール”または“オブジェクト”と呼びます。 本書では、これらを“データ項目”と呼ぶことがあります。 また、他の言葉と連なる場合には、単に“項目”と呼ぶこともあります。

Java (swing) では、フォーム (画面) 上に貼り付けるテキストフィールドやボタンなどを総称して“コントロール”“コンポーネント”または“オブジェクト”と呼びます。 本書では、これらを統一的に“コントロール” と称しています。あるいは“データ項目”と呼ぶことがあります。 また、他の言葉と連なる場合には、単に“項目”と呼ぶこともあります。

この章には、コントロールの分類、およびその名前について、以下の順に記述してあります。

1.1 コントロールの分類

1.2 コントロールの名前

1.3 MANDALA コントロールの分類


1.1 コントロールの分類

MANDALA.net を使用する場合は、 コントロールを次の 2 種類に分類して捉えてください。

MANDALA.net を使用しない場合には、それぞれのコントロールに関するイベントハンドラとなるプログラムコードを手作りすることが必要です。 コントロールは、いわば手作りのイベントハンドラによって制御されることになります。

MANDALA.net を用いた開発においては、コントロールの制御を MANDALA.net に任せることで、プログラミングの量を大幅に削減することができます。 MANDALA.net の実動フレームワークや MANDALA.net コード合成ツールが機械生成するプログラムコードがイベント処理の大部分を代行するからです。

これらをまとめると、MANDALA コントロールとは、MANDALA.net のイベントハンドラが制御するコントロールであり、一般コントロールとは、手作りのイベントハンドラが制御するコントロールだということができます。

大抵の業務プログラムは、すべての GUI イベントの制御を MANDALA.net に任せることで、 つまり一般コントロールではなく MANDALA コントロールにすることで、 アプリケーション開発の生産性を大幅に高めることができると同時に、 アプリケーションの操作方法を標準化することができます。

しかし、アプリケーションの種類によっては、 ある種のコントロールに関するイベントハンドラを通常のプログラム開発の際と同様に、 手作りのコードで制御したい場合もあり得ます。 そこで、この種のアプリケーションプログラム開発に対しても可能な限り高い生産性を達成できるように、 MANDALA コントロール一般コントロールとを混在させることができるようにしてあります。 しかも、この混在形態は同じフォームの中にこれらを配置することができるという極めて自由度の高いものです。


1.2 コントロールの名前

MANDALA コントロールと一般コントロールの混在を可能にするには、 どれが MANDALA コントロールでどれが一般コントロールなのかを区別できなければなりません。 このために MANDALA コントロールには、 それだと一目で分かる名前を付ける規約になっています。

たとえば、以下は MANDALA コントロールに付けた名前です。


このように MANDALA コントロールには、アンダースコア "_" を含む名前を付けることになっています。 詳しくいうと、MANDALA コントロールの名前は、次の命名規則 1 または命名規則 2 に従います。

命名規則 1:
1 文字目と 2 文字目が半角の英数字で、3 文字目がアンダースコアである
(例: Hd_CdBangou)
命名規則 2:
1 文字目が全角の日本語文字で、2 文字目がアンダースコアである
(例: 前_CdBangou)

このように、MANDALA ソフトウェア資産に付ける名前は、上記のいずれかの命名規則に従います。

MANDALA コントロール以外の一般コントロールには、これらの命名規則に合致しない名前を付けてください。 たとえば、以下の名前のコントロールは、一般コントロールだとみなされます。

ここでご注意ですが、アプリ固有のソフトウェア資産に命名規則 1 あるいは命名規則 2 に合致する名前を付けないようにお願いします。 これに違反すると MANDALA.net が使用する名前と重複してしまうかもしれません。 なぜなら、MANDALA.net のレベルアップ版 (またはバージョンアップ版) を用いるときに、 新たに MANDALA.net が使用し始める名前と重複する恐れがあるからです。

詳細な説明になりますが、MANDALA ソフトウェア資産の名前の先頭からアンダースコアまでの部分をプレフィックス (接頭語) と呼んでいます。 たとえば、Bd_SyohinCd のプレフィックスは、Bd_ です。

◇ 予約されたプレフィックス (予約された名前)

命名規則 1 あるいは命名規則 2 に合致する名標は、 MANDALA.net によって予約されていますので、MANDALA.net と関わる部分以外には、使用しないようにしてください。 なぜなら、将来 MANDALA.net がレベルアップ (またはバージョンアップ) した場合に、名前が重なったり、特別の意味をもつようになるかもしれないからです。


1.3 MANDALA コントロールの分類

MANDALA コントロールは、その役割に応じて、 文字入出力コントロール指示コントロールに分類されます。

文字入出力コントロールは、テキストボックスコンボボックスなどのように、 アプリ操作者が何らかの情報をインプットしたり、 何らかの情報を見たりするときに使うコントロールです。 つまり、文字入出力コントロールの役割は、アプリ操作者から文字情報を受け取ったり、 文字情報を表示することです。

指示コントロールは、メニューボタンのように、 アプリ操作者がアプリに対して何らかの指示を与えるときに使うコントロールです。 つまり、指示コントロールの役割は、アプリ操作者の指示の受付役になることです。 なお、ファンクションキーは、VB や C# ではコントロールとみなされませんが、 アプリ操作者が何らかの指示を与えるときに使うものなので、 広い意味の指示コントロールだとみなしてください。

特別な場合は、一つのコントロールが二つの役割を果たすこともあります。 それは、たとえばあるテキストボックスへの情報のインプットの完結を、 何らかの指示だとみなすような場合です。 このような場合、そのテキストボックスは二つの役割 (文字入出力と指示) を果たすことになります。 なお、本書ではその主要な役割に従って (たとえばテキストボックスは文字入出力コントロールに) 分類してあります。