(57)【要約】【課題】画面の表示や振る舞いを様々に変化させる仕組みを提供するプログラムの保守性を向上できるプログラム及び画面表示方法を提供することを課題とする。【解決手段】  コンピュータを、新たに表示する画面の画面表現を行う画面表現手段、新たに表示する画面に関連付けるデータを管理するデータ管理手段、画面表現手段とデータ管理手段とを関連付けると共に、新たに表示する画面に対する設定情報の適用を依頼する関連付け手段、画面に関する設定情報を管理し、設定情報の適用を依頼されると、新たに表示する画面に関する設定情報を新たに表示する画面に適用する画面設定制御手段として機能させるためのプログラムにより上記課題を解決する。【選択図】図３
2014206921.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
新たに表示する画面の画面表現を行う画面表現手段、
前記新たに表示する画面に関連付けるデータを管理するデータ管理手段、
前記画面表現手段と前記データ管理手段とを関連付けると共に、前記新たに表示する画面に対する設定情報の適用を依頼する関連付け手段、
画面に関する設定情報を管理し、前記設定情報の適用を依頼されると、前記新たに表示する画面に関する設定情報を前記新たに表示する画面に適用する画面設定制御手段
として機能させるためのプログラム。
【請求項２】
前記画面に関する設定情報が記載されているファイルを取得する外部設定取得手段
として更に機能させ、
前記画面設定制御手段は、前記ファイルを解析し、前記ファイルから解析した前記画面に関する設定情報を内部的に保持すること
を特徴する請求項１記載のプログラム。
【請求項３】
前記画面設定制御手段は、前記新たに表示する画面に関する設定情報を参照し、前記新たに表示する画面が前記設定情報の適用の対象となっているとき、前記前記新たに表示する画面に関する設定情報を前記新たに表示する画面に適用すること
を特徴とする請求項１又は２記載のプログラム。
【請求項４】
前記画面を表示する操作を利用者から受け付けると、前記画面表現手段及び前記データ管理手段を構築し、前記関連付け手段に前記画面表現手段と前記データ管理手段とを関連付けるように前記関連付け手段に登録する登録手段
として更に機能させるための請求項１乃至３何れか一項記載のプログラム。
【請求項５】
前記プログラムはモデル、ビューおよびコントローラの三層構造により実装され、前記画面表現手段及びデータ管理手段をビュー層、前記関連付け手段をコントローラ層により実現すること
を特徴とする請求項１乃至４何れか一項記載のプログラム。
【請求項６】
コンピュータによって実行される画面表示方法であって、
画面表現手段により新たに表示する画面の画面表現を行う画面表現ステップと、
データ管理手段により前記新たに表示する画面に関連付けるデータを管理するデータ管理ステップと、
前記画面表現手段と前記データ管理手段とを関連付けると共に、前記新たに表示する画面に対する設定情報の適用を依頼する関連付けステップと、
画面に関する設定情報を管理し、前記設定情報の適用を依頼されると、前記新たに表示する画面に関する設定情報を前記新たに表示する画面に適用する画面設定制御ステップと
を有することを特徴とする画面表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び画面表示方法に関する。
【背景技術】
【０００２】
新たな入力手段や出力手段の利用を可能にするプラグインプログラムの設定作業を容易に行えるように、プラグインプログラムの設定作業のための設定画面情報が定義された外部設定ファイルに基づいて設定画面を構築する技術は従来から知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
画面を表示するプログラムは、画面の表示や振る舞いを様々に変化させる仕組みを提供する必要のある場合がある。例えば画面を表示するプログラムにおいて、各画面にコードを実装することで画面の表示や振る舞いを様々に変化させる仕組みは、保守性が低下してしまうという問題があった。
【０００４】
このように、画面を表示するプログラムは保守性を低下させることなく、画面の表示や振る舞いを様々に変化させる仕組みを提供することが困難であった。
【０００５】
本発明の一実施形態は上記の点に鑑みなされたもので、画面の表示や振る舞いを様々に変化させる仕組みを提供するプログラムの保守性を向上できるプログラム及び画面表示方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本願請求項１は、コンピュータを、新たに表示する画面の画面表現を行う画面表現手段、前記新たに表示する画面に関連付けるデータを管理するデータ管理手段、前記画面表現手段と前記データ管理手段とを関連付けると共に、前記新たに表示する画面に対する設定情報の適用を依頼する関連付け手段、画面に関する設定情報を管理し、前記設定情報の適用を依頼されると、前記新たに表示する画面に関する設定情報を前記新たに表示する画面に適用する画面設定制御手段として機能させるためのプログラムであることを特徴とする。
【発明の効果】
【０００７】
本発明の一実施形態によれば、画面の表示や振る舞いを様々に変化させる仕組みを提供するプログラムの保守性を向上できる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータシステムの一例のハードウェア構成図である。
【図２】ＧＵＩアプリを起動させたコンピュータシステムの一例の処理ブロック図である。
【図３】ＧＵＩアプリを起動して画面設定を適用する処理を表した一例のフローチャートである。
【図４】ステップＳ２の処理を表した一例のフローチャートである。
【図５】外部設定ファイルの一例の構成図である。
【図６】ステップＳ３、Ｓ４の処理を表した一例のフローチャートである。
【図７】ステップＳ２の処理を表した一例のシーケンス図である。
【図８】ステップＳ３、Ｓ４の処理を表した一例のシーケンス図である。
【発明を実施するための形態】
【０００９】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。以下の説明におけるＧＵＩ（Graphical User Interface）アプリケーションプログラムは本発明を理解しやすくするためのものである。本発明はＧＵＩアプリケーションプログラムに限定されるものではない。
［第１の実施形態］
＜ハードウェア構成＞
ＧＵＩアプリケーションプログラムは、例えば図１に示すようなハードウェア構成のコンピュータシステム上で動作する。
【００１０】
図１はコンピュータシステムの一例のハードウェア構成図である。コンピュータシステム５００は、入力装置５０１、表示装置５０２、外部Ｉ／Ｆ５０３、ＲＡＭ５０４、ＲＯＭ５０５、ＣＰＵ５０６、通信Ｉ／Ｆ５０７、及びＨＤＤ５０８などを備え、それぞれがバスＢで相互に接続されている。
【００１１】
入力装置５０１はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置５０２はディスプレイ等を含み、コンピュータシステム５００による処理結果を表示する。
【００１２】
通信Ｉ／Ｆ５０７はコンピュータシステム５００をネットワーク（図示せず）に接続するインタフェースである。これにより、コンピュータシステム５００は通信Ｉ／Ｆ５０７を介してデータ通信を行うことができる。
【００１３】
ＨＤＤ（Hard Disk Drive）５０８はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム５００全体を制御する基本プログラムであるＯＳ（Operating System）や、ＯＳ上において各種機能を提供するアプリケーションプログラムなどがある。ＨＤＤ５０８は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理している。
【００１４】
外部Ｉ／Ｆ５０３は、外部装置とのインタフェースである。外部装置には、記録媒体５０３ａなどがある。これにより、コンピュータシステム５００は外部Ｉ／Ｆ５０３を介して記録媒体５０３ａの読み取り及び／又は書き込みを行うことができる。
【００１５】
記録媒体５０３ａには、例えばフレキシブルディスク、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）等がある。また、記録媒体５０３ａにはＳＤメモリカード（SD Memory card）、ＵＳＢメモリ（Universal Serial Bus memory）などがある。
【００１６】
ＲＯＭ（Read Only Memory）５０５は電源を切ってもプログラムやデータを保持できる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ５０５にはコンピュータシステム５００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定及びネットワーク設定などのプログラムやデータが格納されている。
【００１７】
ＲＡＭ（Random Access Memory）５０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ（Central Processing Unit）５０６はＲＯＭ５０５やＨＤＤ５０８などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、コンピュータシステム５００全体の制御や機能を実現する演算装置である。
【００１８】
このようなコンピュータシステム５００のハードウェア構成上で動作させることによりＧＵＩアプリケーションプログラム（以下、単にＧＵＩアプリと呼ぶ）は、後述するような各種処理を実現できる。
【００１９】
＜ソフトウェア構成＞
コンピュータシステム５００はＧＵＩアプリにより例えば図２に示す処理ブロックを実現する。図２はＧＵＩアプリを起動させたコンピュータシステムの一例の処理ブロック図である。
【００２０】
図１のコンピュータシステム５００はＧＵＩアプリを実行することで、外部設定取得部１０、画面設定制御部１１、親画面のＭｅｄｉａｔｏｒ部１２、子画面部１３、子画面のＭｅｄｉａｔｏｒ部１４、Ｆａｃａｄｅ部１５、情報保持用のデータオブジェクトクラス２０を実現する。
【００２１】
ＧＵＩアプリのＵＩは例えばＦｌｅｘのフレームワークの一つであるＰｕｒｅＭＶＣを利用して開発できる。ＰｕｒｅＭＶＣはＭＶＣ（モデル、ビュー、コントローラ）の三層構造を基本としている。ＰｕｒｅＭＶＣにおいて後述のＭｅｄｉａｔｏｒ及び画面（ＭＸＭＬ）はビュー層にあたる。また、ＰｕｒｅＭＶＣにおいて後述のＦａｃａｄｅはコントローラ層にあたる。
【００２２】
Ｍｅｄｉａｔｏｒは画面にバインドさせるデータを管理するクラスである。画面（ＭＸＭＬ）はＦｌｅｘの画面表現をするためのファイルである。Ｆａｃａｄｅはイベント等が発生した場合に、どのコマンドを呼び出すかを関連付けさせるためのクラスである。Ｆａｃａｄｅは後述のＭｅｄｉａｔｏｒ及び画面（ＭＸＭＬ）の関連付けも登録される。
【００２３】
外部設定取得部１０は後述の外部設定情報を取得する。画面設定制御部１１は後述の情報保持用のデータオブジェクトクラス２０を構築し、外部設定情報を設定する。親画面のＭｅｄｉａｔｏｒ部１２は後述の親画面のＭｅｄｉａｔｏｒクラスである。子画面部１３は後述の子画面（ＭＸＭＬ）である。子画面のＭｅｄｉａｔｏｒ部１４は後述の子画面のＭｅｄｉａｔｏｒクラスである。Ｆａｃａｄｅ部１５はＦａｃａｄｅクラスである。情報保持用のデータオブジェクトクラス２０は外部設定情報を設定され、内部的に外部設定情報を保持する。
【００２４】
＜処理の詳細＞
以下では、本実施形態に係るＧＵＩアプリの処理の詳細について説明する。
【００２５】
《全体の処理》
図３はＧＵＩアプリを起動して画面設定を適用する処理を表した一例のフローチャートである。
【００２６】
ステップＳ１において、利用者はコンピュータシステム５００を操作し、ＧＵＩアプリを起動する。ＧＵＩアプリを起動することにより、コンピュータシステム５００は図２に示したような処理ブロックを実現する。ステップＳ２において、外部設定取得部１０は外部設定情報を取得する。ステップＳ２の詳細については後述する。
【００２７】
ステップＳ３において、利用者はコンピュータシステム５００を操作し、親画面（メイン画面）から子画面を開く。ステップＳ４において、子画面は外部設定情報に応じて画面設定が切り替えられて表示される。ステップＳ３及びＳ４の詳細については後述する。子画面の表示が完了すると、図３の処理は終了となる。
【００２８】
《ステップＳ２の処理のフローチャート》
図４はステップＳ２の処理を表した一例のフローチャートである。ステップＳ１１において、外部設定取得部１０は外部設定ファイルをロードする。なお、外部設定ファイルはコンピュータシステム５００のＨＤＤ５０８、記録媒体５０３ａなどに記録されているものをロードできる。また、外部設定ファイルは通信Ｉ／Ｆ５０７を介してデータ通信可能な他のコンピュータシステム（図示せず）からロードしてもよい。
【００２９】
ステップＳ１２において、画面設定制御部１１はロードした外部設定ファイルをパースする。外部設定ファイルは例えばＸＭＬで記述できる。外部設定ファイルは画面に関する設定情報が記載されている。ここでは図５を参照しつつ外部設定ファイルの一例について説明する。
【００３０】
図５は外部設定ファイルの一例の構成図である。なお、図５は外部設定ファイルをＸＭＬファイルで作成した例を示している。外部設定ファイルには各ＵＩコンポーネント（部品など）の任意のプロパティやスタイル、表示する／しない、などの設定情報が定義されている。ただし、設定可能なプロパティはＵＩコンポーネントクラスの公開されているプロパティであり、言語によっても異なる。設定可能な型は［Ｉｎｔ、Ｎｕｍｂｅｒ、Ｓｔｒｉｎｇ、Ｂｏｏｌｅａｎ、Ａｒｒａｙ］等である。なお、読み取り専用の型は設定できない。
【００３１】
図４のステップＳ１３に戻り、画面設定制御部１１は構築した情報保持用のデータオブジェクトクラス２０に、ステップＳ１２でパースした外部設定ファイルの設定情報を設定して保持させる。
【００３２】
《ステップＳ３、Ｓ４の処理のフローチャート》
図６はステップＳ３、Ｓ４の処理を表した一例のフローチャートである。利用者が親画面から子画面を開く操作を行うと、ステップＳ２１において、親画面のＭｅｄｉａｔｏｒ部１２は子画面部１３及び子画面のＭｅｄｉａｔｏｒ部１４を構築する。ステップＳ２２において、画面設定制御部１１は情報保持用のデータオブジェクトクラス２０が保持している外部設定ファイルの設定情報を参照し、子画面の設定情報を取得する。なお、情報保持用のデータオブジェクトクラス２０は前述したように、ＧＵＩアプリの起動時に取得した外部設定ファイルの設定情報を保持している。
【００３３】
ステップＳ２３において、画面設定制御部１１は取得した子画面の設定情報により子画面が設定情報の適用の対象か否かを判定する。ステップＳ２１において開く操作が行われた子画面の設定情報をステップＳ２２において取得できれば、画面設定制御部１１は適用の対象と判定する。
【００３４】
適用の対象と判定すると、画面設定制御部１１はステップＳ２４に進み、ステップＳ２２で取得した設定情報を子画面に適用する。そして、ステップＳ２５において、子画面は設定情報が適用されて表示される。なお、適用の対象でないと判定すると、画面設定制御部１１はステップＳ２２で取得した設定情報を子画面に適用しない。そしてステップＳ２５において、子画面は設定情報が適用されず、そのまま表示される。
【００３５】
《ステップＳ２の処理のシーケンス》
図７はステップＳ２の処理を表した一例のシーケンス図である。図７は外部設定ファイルをＸＭＬ形式で作成した例を表している。ＧＵＩアプリの起動後、外部設定取得部１０はステップＳ３２において、外部設定ファイル３０をロードする。外部設定ファイル３０は各画面のコンポーネント設定ファイルである。コンポーネント設定ファイルにはＵＩコンポーネントの任意のプロパティやスタイル等について定義されている。
【００３６】
ステップＳ３３において、外部設定取得部１０は画面設定制御部１１に外部設定ファイルのパースを要求する。ステップＳ３４において、画面設定制御部１１はＸＭＬ形式の外部設定ファイルをパース（解析）する。
【００３７】
ステップＳ３５において、画面設定制御部１１は外部設定情報を保持する情報保持用のデータオブジェクトクラス２０を構築する。ステップＳ３６において、画面設定制御部１１はステップＳ３５で構築した情報保持用のデータオブジェクトクラス２０に、ステップＳ３４でパースした外部設定ファイルの設定情報を設定することで、内部的に設定情報を保持させる。
【００３８】
《ステップＳ３、Ｓ４の処理のシーケンス》
図８はステップＳ３、Ｓ４の処理を表した一例のシーケンス図である。図８のシーケンス図は、利用者が親画面から子画面を開く操作を行ったときの処理の流れを表したものである。図８のシーケンス図で表した処理はＰｕｒｅＭＶＣが提供するＵＩ表示方法に機能拡張を行っている。
【００３９】
利用者が親画面から子画面を開く操作を行うと、ステップＳ４１において、親画面のＭｅｄｉａｔｏｒ部１２は子画面部１３を構築する。また、ステップＳ４２において、親画面のＭｅｄｉａｔｏｒ部１２は子画面のＭｅｄｉａｔｏｒ部１４を構築する。
【００４０】
ステップＳ４３において、親画面のＭｅｄｉａｔｏｒ部１２はＦａｃａｄｅ部１５に対して、構築した子画面部１３と子画面のＭｅｄｉａｔｏｒ部１４とを登録する。ステップＳ４４において、Ｆａｃａｄｅ部１５は親画面のＭｅｄｉａｔｏｒ部１２から登録された子画面部１３と子画面のＭｅｄｉａｔｏｒ部１４とを関連付ける。このため、子画面部１３と子画面のＭｅｄｉａｔｏｒ部１４とは一対一の関係にあることが保証される。
【００４１】
この子画面部１３と子画面のＭｅｄｉａｔｏｒ部１４とが一対一の関係にあることを利用することで、ＧＵＩアプリは子画面の表示を行うに際し、外部設定ファイル３０から取得した設定情報を元に、設定情報を適用した状態で子画面を表示できる。
【００４２】
ステップＳ４５において、Ｆａｃａｄｅ部１５は子画面の設定情報の適用を画面設定制御部１１に依頼する。Ｆａｃａｄｅ部１５はステップＳ４３の構築した子画面部１３と子画面のＭｅｄｉａｔｏｒ部１４とを登録する処理をオーバーライドすることで、ステップＳ４５の処理が行われるように、機能の拡張を行っている。画面設定制御部１１及び情報保持用のデータオブジェクトクラス２０は機能の拡張部分である。
【００４３】
ステップＳ４６において、画面設定制御部１１は情報保持用のデータオブジェクトクラス２０が保持している外部設定ファイルの設定情報を参照し、構築された子画面が設定情報の適用の対象となっているか否か確認する。設定情報の適用の対象である場合、画面設定制御部１１はステップＳ４７に進み、設定情報を子画面に適用する。
【００４４】
外部設定ファイルから取得した設定情報には各画面のＵＩコンポーネントの設定情報が記載されており、プロパティやスタイル、表示する／しない、等が定義されている。本実施形態では、子画面部１３が表示の度に毎回、外部設定ファイル３０から設定情報を取得するのではなく、画面設定取得部１０がＧＵＩアプリの起動時にまとめて取得し、情報保持用のデータオブジェクトクラス２０に内部的に保持できる。
【００４５】
そして、本実施形態ではＦａｃａｄｅ部１５が画面設定制御部１１に子画面の設定情報の適用を画面設定制御部１１に依頼し、画面設定制御部１１が子画面に設定情報を適用するため、画面設定制御部１１が各画面の設定情報を一元的に管理できる。図８では利用者が親画面から子画面を開く操作を行ったときの処理の流れを説明したが、子画面から孫画面を開く操作を行った処理、曾孫画面以降を開く操作を行った処理も同様である。
【００４６】
＜まとめ＞
例えばＧＵＩアプリでは、動作環境／ライセンス形態／他アプリとの連携状態（データ入出力の違い）などに応じて、画面の表示や振る舞いを様々に変化させる仕組みを提供する必要がある。従来、このような画面の表示や振る舞いを変化させる仕組みとしてはプロジェクト（ソースコード）毎にそれぞれの設定情報を組込み、表示を切り替える仕組みがあった。
【００４７】
また、ＧＵＩアプリには、Ｗｅｂアプリケーション版とデスクトップアプリケーション版とを提供しているものがある。このようなＧＵＩアプリは、Ｗｅｂアプリケーション版とデスクトップアプリケーション版とで動作環境が異なっている。また、ＧＵＩアプリは他アプリと連携して動作することもある。
【００４８】
このような動作環境、連携形態の違いによって提供する機能は異なるために、ＧＵＩアプリは画面のＵＩコンポーネントやプロパティなどを切り替える必要がある。この切り替えを実現するにあたり、ソースコード毎にそれぞれの設定情報を組込み、表示を切り替える仕組みを利用すると、保守性を著しく低下させてしまう。本実施形態では、それぞれの画面に設定情報を適用する仕組みを組み込むのではなく、画面設定制御部１１が一元的に設定情報を画面に適用するため、従来よりも保守性を向上できる。
【００４９】
このように、本実施形態では画面への設定情報を適用する機能を提供する画面設定制御部１１を追加したことで、画面側から設定情報を読み込むような外部設定情報を意識した実装を不要としている。ＧＵＩアプリの機能の追加／変更をする場合は、外部設定ファイル３０へ設定情報を追加すればよく、修正が容易となり、保守性を向上できる。
【００５０】
本実施形態によれば、画面毎に設定情報を参照して、変更となるＵＩコントロールに設定情報を適用する実装が必要だった仕組みを、画面設定制御部１１が一元的に管理して画面に適用する仕組みとすることが可能となった。
【００５１】
本発明は具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した画面表現手段は子画面部１３に相当する。データ管理手段は子画面のＭｅｄｉａｔｏｒ部１４に相当する。関連付け手段はＦａｃａｄｅ部１５に相当する。画面設定制御手段は画面設定制御部１１に相当する。外部設定取得手段は外部設定取得部１０に相当する。登録手段は親画面のＭｅｄｉａｔｏｒ部１２に相当する。
【符号の説明】
【００５２】
１０    外部設定取得部
１１    画面設定制御部
１２    親画面のＭｅｄｉａｔｏｒ部
１３    子画面部
１４    子画面のＭｅｄｉａｔｏｒ部
１５    Ｆａｃａｄｅ部
２０    情報保持用のデータオブジェクトクラス
３０    外部設定ファイル
５００    コンピュータシステム
５０１    入力装置
５０２    表示装置
５０３    外部Ｉ／Ｆ
５０３ａ    記録媒体
５０４    ＲＡＭ
５０５    ＲＯＭ
５０６    ＣＰＵ
５０７    通信Ｉ／Ｆ
５０８    ＨＤＤ
Ｂ    バス
【先行技術文献】
【特許文献】
【００５３】
【特許文献１】特開２００９−７０１２６号公報
【図１】
2014206921.tif 000003
【図２】
2014206921.tif 000004
【図３】
2014206921.tif 000005
【図４】
2014206921.tif 000006
【図５】
2014206921.tif 000007
【図６】
2014206921.tif 000008
【図７】
2014206921.tif 000009
【図８】
2014206921.tif 000010