JP5537330B2 - 表示画面構成装置 - Google Patents
表示画面構成装置 Download PDFInfo
- Publication number
- JP5537330B2 JP5537330B2 JP2010180089A JP2010180089A JP5537330B2 JP 5537330 B2 JP5537330 B2 JP 5537330B2 JP 2010180089 A JP2010180089 A JP 2010180089A JP 2010180089 A JP2010180089 A JP 2010180089A JP 5537330 B2 JP5537330 B2 JP 5537330B2
- Authority
- JP
- Japan
- Prior art keywords
- model
- value
- check
- screen
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
まず、図25の 表示のための初期化動作では、HTML文や、画面部品タグ、外部チェックスクリプト10をフレームワーク11が読み込む。フレームワーク11は、たとえ ば、ウェブブラウザに読み込まれ、HTML文等を解釈し、解釈結果に従った表示を作成する処理を行うプログラムである。読み込みは、フレームワーク11の HTML解析、部品作成器13が行い、HTML文を解析し、必要な画面部品を作成する。作成された画面部
品12は、HTML文、画面部品タグ、外部チェックスクリプトに記載された内容に従ったものであり、たとえば、入力データのチェック機能を持ったものである。
ブラウザ内部でイベントが発生すると、画面部品16のイベント解析部18に通知される。ここで、HTML DOM(HTML Document Object Model)20は、ブラウザ内部に実装される、標準的なHTML文書の処理機能である。イベント解析部18で、発生したイベントの種類がわかると、内部 チェック部19で、発生したイベントに対する、画面部品内でのチェック(正しい入力内容か等のチェック)が行われる。内部チェックの後には、外部チェック 部20が、外部チェックスクリプト17に、内部チェック以外の入力に対するチェック処理を依頼する。外部チェック部20の処理が終わると、画面更新部21 がブラウザに表示内容の更新を依頼する。また、外部チェックスクリプト17も、独自に、ブラウザに表示内容の更新を依頼する。
特許文献1には、スケルトンプログラムに「データ変換命令」を用意しておき、その内容を入力されたデータの内容によって置き換える方法が開示されている。
図1に 示されるように、本発明の実施形態では、JavaScript(登録商標)において、モデル(表示画面に対する処理ロジックの集まり)とビュー(画面に表 示を行うためのプログラム)を分離し、その間をバインディングのしくみで繋ぐことにより、データの自動更新を可能にする。また、スキーマ記述(入力表示内 容に対する制限を記述するプログラム文)を元に、モデルをチェックし、ビューに自動反映する。アクション設定は、ビューに対する所定のイベントが発生した 場合にビューが行うべきアクションを規定する。モデル
は、共通API(Application Program Interface)を介して、他のアプリケーションからの操作を受け付ける。
Notation)で記述された処理ロジックをモデル、画面部品をビュー、その他のロジックをコントローラというようにJavaScript(登録商標)にMVCモデルを導入する。
図3のテキストフィールドにあるモデルをバインドする場合には、以下のような記述を行う。
model={name:'abcde',price:'1000'};
RCF.bind('model',model);
<div rcf: id = "text1" rcf : type = "TextInput" rcf : value = "{model. name}" > </div>
<div rcf : id = "text2" rcf : type = "Text" rcf : value = "{model. name}" > </div>
一行目にモデルが定義され、モデルの名前と、値段として「1000」という値を与えることが定義されている。RCF.bindの文は、モデルと、divタ グで記述されるビューをバインドする文である。divタグで記述されているビューは、上の文が、テキスト入力のためのテキストボックスの表示であり、下の文が、入力されたテキストを表示するビューの文である。
<script src=”rcf.js”></script>
フレームワークは、複数のスクリプトのファイルで構成されるかもしれないが、rcf.jsがその他のファイルを自動的に読み込むため、ユーザが記述しなければいけないのは上記のrcf.jsの読込みの指示だけである。
model1= { name: 'abcde', price: '1000' };
schema1 = { price: { type: integer, check: function(value) { if (value < 0) return false; else return true; } } };
RCF.bind('model', model1, schema1);
model1変数はモデルの定義、schema1変数はスキーマの定義である。これを、RCF.bind命令で関連付けている。ここでは関連付けはJavaScript(登録商標)の命令で行っているが、タグで記述することもできる。その場合、次のようになる。
<div rcf:id="model" rcf:type="Model" rcf:model="model1" rcf:schema=”schema1”></div>
ここで、変数model1は、modelという名のモデルとして使えるようになる。
バインドは、以下のように記述する。
<div rcf:id="a" rcf:type="TextInput" rcf:value="{model.price}"></div>
<div rcf:id="av" rcf:type="ValidationHandler" rcf:target="a" rcf:event=”blur”
rcf:success=”a.color='black'” rcf:fail=”a.color='red'”></div>
TextInput部品は、テキスト入力を行う部品である。ここで、rcf:value="{model.price}"と記述することにより、この TextInput部品は、modelという名のモデルのprice変数にバインドされる。すなわち、このテキスト入力部品に値を入力すると、model1のprice変数に値が伝わる。なお、ここでは、当該TextInputに対応するアクション部品も記述している(ここの例では、 ValidationHandlerという名の部品。入力値が正しい形式で入力されているか否かを判断するプログラム部品)。
model1.price = 2000;
などと代入することでは値を伝えることができない。これは、上記命令が実行されたことをフレームワークで感知することが言語仕様上不可能だからである。その代わりに、フレームワークの命令を使って値を変更する。
model.setProperty(“price”, 2000);
この命令でprice変数を変更することにより、その変更をテキストフィールドに自動的に伝えることができる。
全体チェックの場合、ユーザのスクリプトからモデル管理部に対してチェック実行指示
がなされる。これを契機として、チェックが開始する。チェックはスキーマを使って行う。スキーマの定義は、モデルと同じ名前の属性に対して、型やその他の内容が整合しているかどうかをチェックできるようになっている。先ほどの例を再掲すると、
model1= { name: 'abcde', price: '1000' };
schema1 = { price: { type: integer, check: function(value) { if (value < 0) return false; else return true; } } validateAll: function(value, result) { if (value.name == “afo” && value.price == 2000) { result.name = false; result.price = false; return false; } else true; } };
となっている。ここでは、priceという属性に対して
type: integer
check: function(value) { if (value < 0) return false; else return true; } }
という2つのチェック内容が定義されている。これは、
・priceは整数でなければならない。
・priceは0より大きくなければならない。
という2つの内容を定義している。ここでわかるように、チェック内容は、typeのように宣言的なものと、checkのようにロジックで記述するものとの2種類がある。
宣言的に記述できる内容の例は、以下のようなものである。
length: データの文字列長
minValue, maxValue: データが数値の場合の最小値、最大値
上記のような宣言的な書き方でチェックしきれない内容は、ロジックで行うことができる。その場合はcheckを使う。
check: function(value) { if (value < 0) return throw new Error(“正でなければなりません”); else return true; } }
validateAll: function(value, result) { if (value.name == “afo” && value.price == 2000) { result.name = new Error(“名前が間違っています”); result.price = new
Error(“値段が間違っています”); return false; } else true; }
また、上記のスキーマにはname属性に対応する定義がない。この場合は、チェックは行われず、チェック結果は常にチェックが成功しているものとみなされ る。チェックが終了すると、モデル管理部はチェック結果を参照し、対応するバインドが行われている画面部品に対して、チェック結果を通知する。画面部品で は、チェック結果を受け取ると、アクション部品が存在する場合のみ、そのチェック結果をアクション部品に伝達する。
<div rcf:id="av" rcf:type="ValidationHandler" rcf:target="a" rcf:event=”blur”
rcf:success=”a.color='black'” rcf:fail=”a.color='red'”></div>
となっている。ここで、
rcf:successは、チェックが成功している場合に実行する内容
rcf:failは、チェックが失敗した場合に実行する内容
である。上記例では、チェックが成功している場合は対象の画面部品(この場合TextInput)の色を黒く(a.color='black')、失敗した場合は対象の画面部品を赤く(a.color='red')するようになっている。
<div rcf:id="av" rcf:type="ValidationHandler" rcf:target="a" rcf:event=”blur”
rcf:success=”successProcess(a, result)” rcf:fail=”failProcess(a, result)”></div>
function successProcess(target, result) {
...
}
function failProcess(target, result) {
...
}
上記のような記述になっていると、成功時、失敗時にそれぞれsuccessProcess、failProcessが呼び出され、その中で詳細な動作を記 述することができる。ここでtarget変数は変更対象とする画面部品であり、resultはチェック結果である。なお、画面部品にアクション部品が関連 付けられていないときは、特に何もしない。
rcf:event=”blur”
という定義がなされている。これは、対象の部品からフォーカスが外れた(カーソルが別のところに移動した)ときにチェックの実行を開始することを意味している。
まず、ブラウザ内部からイベントが発生する。イベントはアクション部品に伝わり、これがチェック実行指示と同じイベントの場合(上記例なら、フォーカスが外れたら)、モデル管理部に対してチェックの実行を開始させる。
以上の構成により、非オブジェクト指向のJavaScript(登録商標)においてMVCを実現している。また、モデルと一緒に「スキーマ」を用意するこ とにより、データチェックをモデルと同じ粒度(単位)で実現できる。これにより、部品ごとにチェックロジックが分散しないという効果が得られる。また、 チェック処理と画面操作を分離しているので、同じ
モデルデータを画面上の複数箇所に表示している場合などに、部品ごとにエラーに対するアクション の仕方を分けることができる。更に、JavaScript(登録商標)では、必要に応じてチェックをサーバに依頼することも可能である。よって、データ個 別の値チェック、モデルまとめての値チェックの両方がひとつの仕組みでできるようになる。
まず、HTML文、画面部品タグ、機能部品タグ、モデル、スキーマ定義をフレームワーク31のHTML解析、部品作成器28が読み込む。HTML解析、部 品作成器28は、画面部品タグ、機能部品タグを基に、画面部品26、機能部品(アクション部品)27を作成する。また、機能部品27は、画面部品26と関 連付けられて、画面部品26への入力に対する処理の実行を担当し、画面部品26と機能部品27は、MVCモデルにおけるビューに対応する。また、モデル、 スキーマ定義は、モデル管理部29によって、モデルリポジトリ30に登録される。
ブラウザ内部35において、イベントが発生し、これが、画面部品の変更である場合、この変更は、画面部品26に対して行われる。画面部品26は、変更が あった場合には、フレームワーク31のモデル管理部29に変更内容のモデルへの反映を依頼する。モデル管理部29は、画面部品26に対して行われた変更を モデル36に反映して処理を終了する。
ユーザの記述したJavaScript(登録商標)40によって、モデル36に変更依頼がなされる。ここで、モデル26への変更依頼は、たとえば、 setPropertyコマンドで行われる。モデル36に変更がなされると、モデル36からモデル管理部29に対し、画面部品26への変更の反映依頼がな される。モデル管理部29は、反映依頼を受け取ると、画面部品26に対し、画面部品更新依頼を行う。この依頼により、モデル36に対してなされた変更が、 画面部品26に反映される。画面部品26は、変更を受け付けると、ブラウザ内部のHTML DOM35に、ブラウザの表示の更新を行う。これにより、画面部品26への変更が、実際にブラウザ上の表示の変更となって表示される。
まず、ユーザのスクリプト35が値のチェックを実行する。すると、フレームワーク31のモデル管理部29は、スキーマ37に対し、値のチェック実行を依頼 する。スキーマ37は、モデル36の値を取得し、所定の条件を満たしているか否かをチェックし、チェック結果をチェック結果格納部38に格納する。モデル 管理部29は、チェック結果格納部38内のチェック結果を参照し、チェック結果に従った画面部品の更新依頼を画面部品26に対して行う。たとえば、値が正しくない場合には、赤色で値を表示するなどである。画面部品26は、画面入力に対する処理を担当する機能部品27に対し、画面部品更新依頼を行う。機能部 品27は、依頼にしたがって、画面部品を更新して、処理を終了する。
図8は、1つの入力についてのみ値チェックを行う場合の動作を説明する図である。
。 今の場合、フォーカスがずれる等である。これにより、画面部品26は、機能部品27に対して、入力値のチェックの実行指示を行う。機能部品27は、フレー ムワーク31のモデル管理部29に対し、発生したイベントに対応するモデルの入力値のチェック依頼を行う。モデル管理部29は、スキーマ37に対し、 チェックの実行を依頼し、スキーマ37は、対応するモデル36から値を取得してチェックし、チェック結果をチェック結果格納部38に格納する。モデル管理 部29は、チェック結果格納部38に格納されているチェック結果を参照し、画面部品26に画面部品変更依頼を行う。画面部品変更依頼を受け取った画面部品 26は、機能部品27に対し、画面更新依頼を行い、機能部品27は、画面部品26を更新する。この動作により、入力値がスキーマで規定される条件を満たし ていない場合には、入力値が赤色で表示されるなどの表示の変更がなされる。
図9は、図7及び図8の動作を処理フローにまとめた図である。
まず、ステップS16において、チェック対象となるモデルを確認し、ステップS17において、対象モデルがあるか否かを判断する。ステップS17におい て、チェック処理を行うプログラムがないと判断された場合(Noの場合)には、そのまま処理を終了する。ステップS17において、対象モデルがあると判断 された場合(Yesの場合)には、ステップS18において、チェック処理を行うプログラム(ここでは、前述の、入力値が正しい形式で入力されているか否か を判断するValidationHandlerというプログラムとしている)があるか否かを判断する。ステップS18において、チェック処理を行うプログ ラムがないと判断された場合(Noの場合)には、そのまま処理を終了する。ステップS18において、チェック処理を行うプログラムがあると判断された場合 (Yesの場合)には、チェックを行い、ステップS19において、チェックの結果、入力値が正しいか否かにしたがった処理を行って、処理を終了する。この 処理は、入力値が正しくないときには、値を赤色で表示し、正しい場合には、黒色で表示するなどである。
ステップS25とステップS29で示されるループで、ブラウザから読み取られたHTML文の要素全てについて処理を行う。ステップS26において、 HTML文の要素を取得し、ステップS27において、取得されたHTML文の要素が、画面部品であるか否かを判断する。ステップS27の判断がNoの場合 には、ステップS28に進む。ステップS27の判断がYesの場合には、ステップS30において、画面部品を作成し、画面部品を画面部品リポジトリに登録 して、ステップS29に進む。
図11に おいて、まず、ステップS35で、ブラウザ内にイベントが発生したことが検出される。ステップS36において、画面部品がイベントを受信する。ステップ S37において、当該イベントによって、入力内容が変更されたか否かを判断する。ステップS37の判断がNoの場合には、処理を終了する。ステップS37 の判断がYesの場合には、ステップS38において、値がモデルを指しているか否かを判断する。すなわち、値が、rcf:value = "{model. name}"の形式か否かを判断する。ステップS38の判断がNoの場合には、処理を終了する。ステップS38の判断がYesの場合には、ステップS39 において、モデル管理部を呼び出し、モデル管理部の処理が終わったら、処理を終了する。
ステップS40において、画面部品の設定値を取得する。すなわち、< span ……… rcf:value = "{model. name}">のvalueの部分を取得する。ステップS41において、設定値からモデル名を取得する。たとえば、{model. name}と指定されていたら、modelの部分を取得する。ステップS42において、取得した名前で示されるモデルをモデルリポジトリから取得する。ス テップS43において、設定値からプロパティ名を取得する。たとえば、{model. name}と指定されていたら、nameの部分を取得する。ステップS44において、モデルに入力値を設定する。すなわち、画面部品に入力された値をモデ ルに設定する。
ステップS45において、ユーザJavaScript(登録商標)を実行する。ここでは、setPropertyを実行するとしている。この実行により、 ステップS46において、モデルの保持する値を更新する。次に、ステップS47からステップS53のループで、画面部品リポジトリに含まれる全ての画面部 品について処理を行う。ステップS48では、画面部品を1つ取得する。ステップS49において、画面部品の保持する値がモデルを指しているか否かを判断す る。「値がモデルを指す」とは、図11の ステップS38の場合と同じことを意味する。ステップS49の判断がNoの場合には、ステップS53に進む。ステップS49の判断がYesの場合には、ス テップS50において、モデルを指している値が更新されたか否かを判断する。ステップS50の判断がNoの場合には、ステップS53に進む。ステップ S50の判断がYesの場合には、ステップS51において、画面部品に値を設定し、ステップS52において、画面部品が表示を更新し、ステップS53に進 む。ステップS47からステップS53のループで、全ての画面部品について処理が終わったら、処理を終了する。
図14に おいて、ステップS55で、ユーザのスクリプトからモデルを指定し、チェックの実行指令を出す。ステップS56において、指定されたモデルをモデルリポジ トリから取り出し、ステップS57において、モデルに対応するスキーマが存在するか否かを判断する。ステップS57の判断がNoの場合には、処理を終了す る。ステップS57の判断がYesの場合には、ステップS58からステップS66のループで、以下の処理をすべてのモデル内の要素について行う。まず、ス テップS59において、モデル内の要素を一つ取り出す。ステップS60において、スキーマに対応する名前が、要素の中にあるか否かを判断する。ステップ S60の判断がNoの場合には、ステップS66に進む。ステップS60の判断がYesの場合には、ステップS61において、スキーマ定義を取り出し、ス テップS62において、宣言要素を実行する。ステップS63において、結果をチェック結果に格納し、ステップS64において、ロジック要素を実行し、ス テップS65において、結果をチェック結果格納部に格納し、ステップS66に進む。ステップS58からステップS66のループで、全てのモデル内要素について処理が終わったら、ステップS67に進む。
宣言要素を実行する場合には、ステップS71において、モデルの値を取り出し、ステップS72で値が、たとえば、整数か否かを判断する。これは、 type: integerの場合である。そのほかにも、性質に応じてさまざまなチェックが出来る。たとえば、type: zenkakuでは、全角文字列か否かを判断する。maxLength: 12では、12文字以下か否かを判断する。そして、ステップS72の判断がNoのときは、エラーを返し、Yesのときは、チェックの結果が成功であったことを返す。
ロジック要素を実行する場合、ステップS73において、モデルの値を取り出し、ステップS74において、モデルの値を引数にチェック関数を実行する。そして、チェック関数の返り値を図14のフローに返す。チェック関数は、返り値として、成功か失敗かを示す値を返す。
画面部品に変更を反映する場合、ステップS75において、値はモデルを指しているか否かを判断する。ここの判断は、図13の ステップS49と同じである。ステップS75の判断がNoの場合には、処理を終了する。ステップS75の判断がYesの場合には、ステップS76におい て、アクション部品(機能部品)があるか否かを判断する。ステップS76の判断がNoの場合には、処理を終了する。ステップS76の判断がYesの場合に は、ステップS77において、アクション部品を呼び出し、実行して処理を終了する。
アクション部品を呼び出し、実行する場合、ステップS78において、チェックは成功したか否かを判断する。ステップS78の判断がYesの場合には、ステップS79に進
み、success属性があるか否かを判断する。ステップS79の判断がNoの場合には、処理を終了する。ステップS79の判断がYesの場合には、ステップS80において、success属性の中身を実行して、処理を終了する。
図19に おいて、まず、ステップS90で、ブラウザからイベントが発生すると、ステップS91において、画面部品がイベントを受信し、ステップS92において、画 面部品がモデルを指しているか否かを判断する。ここの判断は、画面部品がバインディングで関連付けられたモデルを有しているか否かの判断である。ステップ S92の判断がNoの場合には、処理を終了する。ステップS92の判断がYesの場合には、ステップS93において、アクション部品が存在するか否かを判断する。ステップS93の判断がNoの場合には、処理を終了する。ステップS93の判断がYesの場合には、ステップS94において、event属性が存在するか否かを判断する。ステップS94の判断がNoの場合には、処理を終了する。ステップS94の判断がYesの場合には、ステップS95において、 チェック対象イベントか否かを判断する。ステップS95の判断がNoの場合には、処理を終了する。ステップS95の判断がYesの場合には、ステップ S96において、チェックを実行し、処理を終了する。
ステップS97において、モデルリポジトリから対象モデルを取り出し、ステップS98において、モデルに対応するスキーマが存在するか否かを判断する。ス テップS98の判断がNoの場合には、処理を終了する。ステップS98の判断がYesの場合には、ステップS99において、画面部品に指定された、モデル の要素を取り出す。ステップS100において、スキーマに対応する名前があるか否かを判断する。ステップS100の判断がNoの場合には、処理を終了す る。ステップS100の判断がYesの場合には、ステップS101において、スキーマ定義を取り出し、ステップS102において、宣言要素を実行し、ス テップS103において、結果をチェック結果格納部に格納する。ステップS104において、ロジック要素を実行し、ステップS105において、結果を チェック結果格納部に格納する。ステップs106では、画面部品に反映し、処理を終了する。
宣言要素を実行する場合には、ステップS201において、モデルの値を取り出し、ステップS202で値が、たとえば、整数か否かを判断する。これは、 type: integerの場合である。そのほかにも、性質に応じてさまざまなチェックが出来る。たとえば、type: zenkakuでは、全角文字列か否かを判断する。maxLength: 12では、12文字以下か否かを判断する。そして、ステップS202の判断がNoのときは、エラーを返し、Yesのときは、チェックの結果が成功であった ことを返す。
ロジック要素を実行する場合、ステップS203において、モデルの値を取り出し、ステップS204において、モデルの値を引数にチェック関数を実行する。そして、チェック関数の返り値を図14のフローに返す。チェック関数は、返り値として、成功か失敗かを示す値を返す。
画面部品に変更を反映する場合、ステップS205において、値はモデルを指しているか否かを判断する。ここの判断は、図13の ステップS49と同じである。ステップS205の判断がNoの場合には、処理を終了する。ステップS205の判断がYesの場合には、ステップS206に おいて、アクション部品(機能部品)があるか否かを判断する。ステップS206の判断がNoの場合には、処理を終了する。ステップS206の判断がYes の場合には、ステップS207において、アクション部品を呼び出し、実行して処理を終了する。
アクション部品を呼び出し、実行する場合、ステップS208において、チェックは成功したか否かを判断する。ステップS208の判断がYesの場合には、 ステップS209に進み、success属性があるか否かを判断する。ステップS209の判断がNoの場合には、処理を終了する。ステップS209の判断 がYesの場合には、ステップS210において、success属性の中身を実行して、処理を終了する。
11 フレームワーク
12 画面部品(チェック機能付き)
13 HTML解析、部品作成器
15、35 HTML DOM(ブラウザ内部)
16 画面部品
17 外部チェックスクリプト
18 イベント解析部
19 内部チェック部
20 外部チェック部
21 画面更新部
25 HTML、画面部品タグ、機能部品タグ、モデル、スキーマ定義
26 画面部品
27 機能部品
28 HTML解析、部品作成器
29 モデル管理部
30 モデルリポジトリ
31 フレームワーク
36 モデル
37 スキーマ
38 チェック結果格納部
40 ユーザJavaScript
Claims (5)
- コンピュータを、
Javascriptで記述された画面部品を表示し、該画面部品に対してユーザにより入力された入力情報を受け付け、該入力情報に対するチェック結果を基に前記画面部品の表示を更新するビュー手段と、
モデル変数と、前記モデル変数の値の性質が宣言的に記述されたスキーマ定義とを対応付ける第1のバインディング定義を基に前記モデル変数及び前記スキーマ定義をモデルリポジトリに登録し、前記モデルリポジトリから、前記画面部品と前記モデル変数とを対応付ける第2のバインディング定義を基に、前記ビュー手段がイベント入力を受け付けた前記画面部品に対応するモデル変数を取得し、該取得したモデル変数に前記入力情報を設定し、前記モデルリポジトリに登録された、前記入力情報を設定したモデル変数のモデル変数の値の性質が宣言的に記述されたスキーマ定義を基に、前記入力情報が設定されたモデル変数の値の性質が前記スキーマ定義に宣言的に記述された性質に合致するか否かをチェックし、該チェック結果を前記ビュー手段に通知するモデル管理手段
として機能させるプログラム。 - 前記モデル管理手段は、前記モデルリポジトリに登録されたモデル変数のうち、ユーザスクリプトに基づき値が変更されたモデル変数を取得し、前記モデルリポジトリに登録された、前記値が変更されたモデル変数の値の性質が宣言的に記述されたスキーマ定義を基に、前記値が変更されたモデル変数の値の性質が前記スキーマ定義に宣言的に記述された性質に合致するか否かをチェックし、該チェック結果を前記ビュー手段に通知し、
前記ビュー手段は、前記モデル管理手段からのチェック結果の通知を基に、前記画面部品の表示の更新を行う
請求項1記載のプログラム。 - 前記第2のバインディング定義に更に含まれる、前記モデル変数の値の性質が前記スキーマ変数に宣言的に記述された性質に合致した場合及び合致しなかった場合の少なくともいずれかの動作定義を基に、前記モデル変数に対応付けられた前記画面部品を、前記チェック結果に基づき更新するアクション手段を更に備え、
前記ビュー手段は前記モデル管理手段からの前記チェック結果の通知を基に前記アクション手段を呼び出して実行することにより、前記画面部品を更新する
請求項1記載のプログラム。 - 前記ビュー手段は、前記画面部品に対するイベントの発生に基づき前記入力情報が変更されたか否かを判定し、前記入力情報が変更されたと判定し、且つ、前記第2のバインディング定義に前記入力値が変更された画面部品に対応付けてモデル変数が定義されている場合に前記モデル管理手段に前記入力情報のモデルへの反映を依頼し、前記画面部品に対するイベントの発生に基づき、前記第2のバインディング定義に前記イベントが変更された画面部品に対応付けて前記モデル変数及び前記アクション手段が定義されている場合に前記モデル管理手段に前記モデルの値のチェックを依頼し、
前記モデル管理手段は、前記ビュー手段による前記モデルへの反映の依頼に基づき、前記モデルリポジトリに登録されたモデル変数のうち、前記第2のバインディング定義に前記入力値が変更された画面部品の識別情報に対応付けて定義されているモデル変数に前記入力値を設定し、前記ビュー手段による前記モデルの値のチェック依頼に基づき、前記モデル変数の設定値の性質が、前記スキーマ変数に宣言的に記述された性質に合致するか否かをチェックする
請求項1記載のプログラム。 - Javascriptで記述された画面部品を表示し、該画面部品に対してユーザにより入力された入力情報を受け付けるビュー手段と、
モデル変数と、前記モデル変数の値の性質が宣言的に記述されたスキーマ定義とを対応付ける第1のバインディング定義を基に前記モデル変数及び前記スキーマ変数を前記モデルリポジトリに登録し、前記モデルリポジトリから、前記画面部品と前記モデル変数とを対応付ける第2のバインディング定義を基に、前記ビュー手段がイベント入力を受け付けた前記画面部品に対応するモデル変数を取得し、該取得したモデル変数に前記入力情報を設定し、前記モデルリポジトリに登録された、前記入力情報を設定したモデル変数のモデル変数の値の性質が宣言的に記述されたスキーマ定義を基に、前記入力情報が設定されたモデル変数の値の性質が前記スキーマ定義に宣言的に記述された性質に合致するか否かをチェックし、該チェック結果を前記ビュー手段に通知するモデル管理手段と、を備え、
前記ビュー手段は前記前記モデル管理手段からの前記チェック結果の通知を基に前記画面部品の表示を更新する
ことを特徴とする表示画面構成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010180089A JP5537330B2 (ja) | 2010-08-11 | 2010-08-11 | 表示画面構成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010180089A JP5537330B2 (ja) | 2010-08-11 | 2010-08-11 | 表示画面構成装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007005170A Division JP2008171281A (ja) | 2007-01-12 | 2007-01-12 | 表示画面構成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010277602A JP2010277602A (ja) | 2010-12-09 |
JP5537330B2 true JP5537330B2 (ja) | 2014-07-02 |
Family
ID=43424446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010180089A Active JP5537330B2 (ja) | 2010-08-11 | 2010-08-11 | 表示画面構成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5537330B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101108534B1 (ko) | 2011-01-24 | 2012-01-30 | (주)아이비즈소프트웨어 | 도메인 규칙에 기반한 웹 애플리케이션 입력 값 유효성 검증 및 변환, 데이터베이스 출력 값 변환 관리 자동화 시스템 및 그 제어방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028288B2 (en) * | 2002-06-03 | 2006-04-11 | Sun Microsystems, Inc. | Input field constraint mechanism |
US20060212842A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Rich data-bound application |
-
2010
- 2010-08-11 JP JP2010180089A patent/JP5537330B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010277602A (ja) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101635237B1 (ko) | 리소스 지향 프로그램을 시각적으로 모델링, 디버깅 및 실행하는 대화형 디자인 환경 | |
US10977054B2 (en) | Method and system for providing and executing web applications with runtime interpreter | |
US20140033082A1 (en) | System and method for data-driven web page navigation control | |
US8132114B2 (en) | Graphical user interface typing and mapping system | |
KR20170141224A (ko) | 개발자 교환 시스템 | |
US10572278B2 (en) | Smart controls for user interface design and implementation | |
US20190052542A1 (en) | System and method for providing visualizations of computing infrastructure using a domain-specific language for cloud services infrastructure | |
JP4814801B2 (ja) | 表示画面構成装置 | |
JP2008171281A (ja) | 表示画面構成装置 | |
Penberthy | Beginning ASP. NET for Visual Studio 2015 | |
JP5537330B2 (ja) | 表示画面構成装置 | |
US20230060787A1 (en) | System and Method for Real-Time, Dynamic Creation, Delivery, and Use of Customizable Web Applications | |
Bretet | Spring mvc cookbook | |
Ferguson et al. | JavaScript and Application Frameworks: Angular | |
EP2372532A1 (en) | Method for programming a web application | |
Patel | Sitecore Cookbook for Developers | |
Caldarelli | Yii2 by example | |
Steyer | Behind the Scenes: How and Why Does Vue. js Work? | |
Sundar et al. | Content Management System and Automation of Model Cloning Scalable EAV Model in GNEISYS Framework | |
Aponte et al. | Create Your Single-Page Application | |
Marani et al. | Using External Libraries in Our Project | |
Martin et al. | Developer Mode | |
Troelsen et al. | Web Applications using Razor Pages | |
Bamfo | An implementation of a web platform to support free recycling in Ghana | |
Prettyman et al. | Interfaces, Platforms, and Three-Tier Programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120814 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121012 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140425 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5537330 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |