(57)【特許請求の範囲】
【請求項１】
ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成部と、
前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較部と、
前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰部とを備え、
前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、前記接続復帰処理を行うＧＵＩプログラム作成支援装置。
【請求項２】
前記画面レイアウト比較部は、前記差替前画面レイアウトと前記差替後画面レイアウトとにおいて、各ＧＵＩ部品に付与された名前を比較することで、類似性を推測する請求項１記載のＧＵＩプログラム作成支援装置。
【請求項３】
前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のＧＵＩ部品の個数を比較することで、類似性を推測する請求項１または２のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項４】
前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品に付与された名前の連続性から類似性を推測する請求項１〜３のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項５】
前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、ＧＵＩ部品の位置から類似性を推測する請求項１〜４のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項６】
前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品の配置の規則性から類似性を推測する請求項１〜５のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項７】
前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのＧＵＩ部品の名前を、対応する前記差替前画面レイアウトのＧＵＩ部品の名前で更新する請求項１〜６のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項８】
前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのＧＵＩ部品の名前で、対応する前記差替前画面レイアウトのＧＵＩ部品の名前を更新する請求項１〜６のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項９】
前記画面レイアウト作成部は、ユーザの操作入力に基づき、ＧＵＩ部品の配置パターンを示すパターン情報を前記画面レイアウトに設定し、
前記画面レイアウト比較部は、複数の推測処理を順次に実行して類似性を推測し、前記パターン情報に応じて推測処理の順序を変更する請求項１〜８のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項１０】
前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のＧＵＩ部品の個数を比較することで、類似性を推測する第１推測処理を含み、
前記画面レイアウト比較部は、前記パターン情報が動画コンテンツのＧＵＩのＧＵＩ部品の配置パターンを示す動画コンテンツパターンである場合、前記第１推測処理を最初に実行する請求項９記載のＧＵＩプログラム作成支援装置。
【請求項１１】
前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品の配置の規則性から類似性を推測する第２推測処理を含み、
前記画面レイアウト比較部は、前記パターン情報が操作メニューのＧＵＩのＧＵＩ部品の配置パターンを示す操作メニューパターンである場合、前記第２推測処理を最初に実行する請求項９又は１０記載のＧＵＩプログラム作成支援装置。
【請求項１２】
前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、ＧＵＩ部品の位置から類似性を推測する第３推測処理を含み、
前記画面レイアウト比較部は、前記パターン情報が予め規定された配置位置にＧＵＩ部品が配置されている定型のＧＵＩを示す定型パターンである場合、前記第３推測処理を最初に実行する請求項９〜１１のいずれかに記載のＧＵＩプログラム作成支援装置。
【請求項１３】
コンピュータが、ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成ステップと、
コンピュータが、ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成ステップと、
コンピュータが、ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定ステップと、
コンピュータが、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成ステップと、
コンピュータが、前記画面レイアウト作成ステップにより、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較ステップと、
コンピュータが、前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較ステップにより対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰ステップとを備え、
前記接続情報復帰ステップは、前記画面レイアウト比較ステップにより対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、前記接続復帰処理を行うＧＵＩプログラム作成支援方法。
【請求項１４】
ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成部と、
前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較部と、
前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰部とし、
前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、前記接続復帰処理を行うようにコンピュータを機能させるプログラム。
【請求項１５】
ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、
ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、
前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成部と、
前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較部と、
前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰部とを備え、
前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、前記接続復帰処理を行う集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ・グラフィカルユーザインタフェース）プログラムの作成支援技術に関し、特に、ＧＵＩプログラムの生産性向上を図る技術に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、携帯電話、及びデジタルＴＶ等のデジタル家電製品（以降、機器と略称する。）は、ＧＵＩを備えることが一般的になっている。【０００３】
ＧＵＩを機器で実行させるためのＧＵＩプログラムの作成においては、開発効率の向上を図るために、ＧＵＩプログラムの作成を支援するＧＵＩビルダが用いられる。【０００４】
ＧＵＩビルダにおいて、デザイナは、ボタンや画像といったＧＵＩを構成する部品（ＧＵＩ部品）を作業画面に配置し、配置したＧＵＩ部品に大きさや色等の属性を設定する。ＧＵＩビルダは、作業画面に配置されたＧＵＩ部品と、各ＧＵＩ部品に設定された属性とにしたがって画面レイアウトを作成する。【０００５】
また、ＧＵＩビルダにおいて、デザイナは、画面レイアウトを構成する各ＧＵＩ部品に処理プログラムを関連付ける作業を行う。ここで、処理プログラムは、ＧＵＩ部品に対してユーザが操作を行った際に実行される処理を記載したプログラムであり、プログラマにより予め記述される。【０００６】
デザイナにより処理プログラムを関連付ける作業が終了されると、ＧＵＩビルダは、画面レイアウトと、その画面レイアウトを構成する各ＧＵＩ部品に関連付けられた処理プログラムとに従ってＧＵＩプログラムのソースコードを自動生成する。このようなＧＵＩビルダとして例えば、特許文献１が知られている。【０００７】
しかしながら、特許文献１に記載のＧＵＩビルダでは、処理プログラムが関連付けられた画面レイアウトを別の画面レイアウトに差し替えた場合、差し替え後の画面レイアウトを構成する各ＧＵＩ部品に対して処理プログラムの関連付けの作業の簡略化を図ることが全く考慮されていなかった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４１９７０９５号公報
【発明の概要】
【０００９】
本発明の目的は、画面レイアウトを差し替えて新たなＧＵＩプログラムを開発する際の開発効率を向上させることができる技術を提供することである。
【００１０】
本発明の一態様によるＧＵＩプログラム作成支援装置は、ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成部と、前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較部と、前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰部とを備えている。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるＧＵＩプログラム作成支援装置のブロック図である。
【図２】画面レイアウト作成部が画面レイアウトを生成する際にディスプレイに表示する入力画面の一例を示す図である。
【図３】画面レイアウト定義情報の一例を示した図である。
【図４】ユーザがＧＵＩ部品と処理プログラムとを関連付ける作業を行う際に表示される入力画面の一例を示した図である。
【図５】接続情報の一例を示した図である。
【図６】処理プログラムの一例を示した図である。
【図７】ソースコードの一例を示した図である。
【図８】（Ａ）は差替前画面レイアウトの一例を示す図である。（Ｂ）は差替後画面レイアウトの一例を示す図である。
【図９】本発明の実施の形態に係るＧＵＩプログラム作成支援装置が行う、ＧＵＩプログラムの作成処理を示すフローチャートである。
【図１０】画面レイアウトを差し替える際の処理を示すフローチャートである。
【図１１】図１０におけるＳ２３００のサブルーチンを示すフローチャートである。
【図１２】比較例のＧＵＩビルダの構成を示すブロック図である。
【図１３】本発明の実施の形態によるＧＵＩプログラム作成支援装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
（本実施の形態によるＧＵＩプログラム作成支援装置を得るに至った経緯）
図１２は、比較例のＧＵＩビルダの構成を示すブロック図である。図１２において、比較例のＧＵＩビルダ２０００は、画面レイアウト作成部２００１、接続設定部２００２、処理プログラム作成部２００３、ソースコード生成部２００４、及び記憶部２００５を備えている。
【００１３】
画面レイアウト作成部２００１は、ユーザからの操作入力に基づき、ＧＵＩの画面レイアウトを生成する。接続設定部２００２は、ユーザからの操作入力に基づき、画面レイアウトを構成するＧＵＩ部品に処理プログラムを関連付け、ＧＵＩ部品と処理プログラムとの接続関係を示す接続情報を生成する。処理プログラム作成部２００３は、プログラマの操作入力にしたがって、処理プログラムを作成する。ソースコード生成部２００４は、画面レイアウト、処理プログラム、接続情報に基づき、ＧＵＩプログラムのソースコードを生成する。記憶部２００５は画面レイアウト、処理プログラム、接続情報、ＧＵＩプログラムのソースコードを保存する。
【００１４】
しかしながら、図１２に示すＧＵＩビルダでは、処理プログラムが関連付けられた画面レイアウトを別の画面レイアウトに差し替えた場合、ユーザは、差替後の画面レイアウトを構成する各ＧＵＩ部品に対し、処理プログラムを関連付ける作業を１つずつ行わなければならず、非常に手間がかかるという課題があった。
【００１５】
特に、差替前の画面レイアウトに多少の修正を加えて差替後の画面レイアウトが作成されることもあり、この場合、ユーザは、差替前の画面レイアウトにおいて行った作業とほとんど同じ作業を再度行わなければならず、多大な負担となっていた。
【００１６】
そこで、本実施の形態の目的は、画面レイアウトを差し替えて新たなＧＵＩプログラムを開発する際の開発効率を向上させることができる技術を提供することである。
【００１７】
（本発明の実施の形態によるＧＵＩプログラム作成支援装置の説明）
以下、本発明の実施の形態について、図面を参照しながら説明する。図１は、本発明の実施の形態におけるＧＵＩプログラム作成支援装置１００のブロック図である。ＧＵＩプログラム作成支援装置１００は、中央演算装置と、ＲＯＭ、ＲＡＭ及びハードディスク等の記憶装置と、ディスプレイ等の出力装置と、キーボード等の入力装置とを備えるコンピュータにより構成されている。
【００１８】
ＧＵＩプログラム作成支援装置１００は、画面レイアウト作成部１０１、接続設定部１０２、処理プログラム作成部１０３、ソースコード生成部１０４、画面レイアウト比較部１０５、接続情報復帰部１０６、及び記憶部２００を備えている。ここで、画面レイアウト作成部１０１〜接続情報復帰部１０６は、例えばＣＰＵにより実行されるプログラムモジュールにより構成される。
【００１９】
画面レイアウト作成部１０１は、ユーザからの操作入力に基づき、複数のＧＵＩ部品を含むＧＵＩの画面レイアウトを生成する。図２は、画面レイアウト作成部１０１が画面レイアウトを生成する際にディスプレイに表示する入力画面３０１の一例を示す図である。画面レイアウト作成部１０１はこの入力画面３０１を通じてユーザからの操作入力を受け付ける。
【００２０】
入力画面３０１は、作業エリアＬ３１、プログラム配置エリアＬ３２、及びＧＵＩ部品選択エリアＬ３３を備えている。
【００２１】
作業エリアＬ３１は、入力画面３０１の中央に設けられ、ユーザの操作入力に基づき、ＧＵＩ部品３０２が配置される。作業エリアＬ３１は画面レイアウトに対応しており、作業エリアＬ３１の各位置が画面レイアウトの各位置となる。ここで、作業エリアＬ３１は、水平方向（横方向）にＸ軸、垂直方向（縦方向）にＹ軸が規定され、Ｘ座標とＹ座標とで各位置が規定される。したがって、画面レイアウトの各位置も作業エリアＬ３１におけるＸ座標とＹ座標とで表される。
【００２２】
プログラム配置エリアＬ３２は入力画面３０１の下部に設けられ、ＧＵＩ部品に対して関連付けることができる処理プログラムを示すアイコン３０４を表示する。図２の例では、ｐｌａｙｅｒ＿ｐｒｏｇｒａｍと記述された１つのアイコン３０４が表示されている。なお、ＧＵＩ部品に関連付けることができる処理プログラムが複数あれば、各処理プログラムのアイコン３０４がプログラム配置エリアＬ３２に表示される。
【００２３】
ＧＵＩ部品選択エリアＬ３３は、入力画面の右側に設けられ、ユーザが選択可能な予め定められた複数のＧＵＩ部品を一覧表示する。図２の例では、ＧＵＩ部品として、Ｂｏｘ、Ｂｕｔｔｏｎ、Ｌａｂｅｌ、及びＬｉｓｔが含まれている。
【００２４】
ユーザは、ＧＵＩ部品選択エリアＬ３３に表示されたＧＵＩ部品の中から好みのＧＵＩ部品を、例えばマウスをクリックして選択する。そして、選択したＧＵＩ部品を作業エリアＬ３１にドラッグアンドドロップする。これにより、作成中の画面レイアウトにＧＵＩ部品が追加される。
【００２５】
また、画面レイアウト作成部１０１は、ＧＵＩ部品の属性を設定する機能を備える。ＧＵＩ部品の属性としては、例えば名前、位置、大きさ、及び文字列が含まれる。名前の属性はＧＵＩ部品に付与される名前を定義する。位置の属性はＧＵＩ部品が配置される作業エリアＬ３１における位置を定義する。文字列の属性はＧＵＩ部品に表示される文字列を定義する。
【００２６】
図２において、作業エリアＬ３１に表示されたＧＵＩ部品３０２が例えばマウスを用いてユーザによりダブルクリックされたとする。すると、画面レイアウト作成部１０１は、ＧＵＩ部品３０２に隣接する位置にＧＵＩ部品３０２の属性を設定するための属性設定パネル３０３を表示する。
【００２７】
ユーザは、属性設定パネル３０３に設けられた各属性の入力欄に、属性値を入力することで、ＧＵＩ部品３０２の属性を設定する。
【００２８】
図２の例では、属性設定パネル３０３において、“Ｎａｍｅ”の欄には名前の属性値が入力され、“Ｘ”、“Ｙ”の欄には位置の属性値が入力され、“Ｗ”、“Ｈ”の欄には大きさの属性値が入力され、“Ｔｅｘｔ”の欄には文字列の属性値が入力される。
【００２９】
“Ｎａｍｅ”の欄には“Ｂｕｔｔｏｎ＿０１”が記入されている。そのため、ＧＵＩ部品３０２の名前の属性値は“Ｂｕｔｔｏｎ＿０１”となる。
【００３０】
また、“Ｘ”、“Ｙ”の欄にそれぞれ“１００”、“１００”が記入されている。そのため、ＧＵＩ部品３０２の位置の属性値はＸ座標が１００、Ｙ座標が１００となる。つまり、ＧＵＩ部品３０２は、画面レイアウトにおいて（Ｘ，Ｙ）＝（１００，１００）の位置に配置される。
【００３１】
なお、ユーザは、作業エリアＬ３１内において、マウスを操作してＧＵＩ部品３０２を移動させると、作業エリアＬ３１内におけるＧＵＩ部品３０２の位置が“Ｘ”、“Ｙ”の欄に反映される。つまり、ユーザは、“Ｘ”、“Ｙ”の欄に直接属性値を入力する、或いは、ＧＵＩ部品３０２をマウスで移動させることでＧＵＩ部品３０２の位置の属性値を設定することができる。
【００３２】
“Ｗ”、“Ｈ”の欄にはそれぞれ“５０”、“１２０”が記入されている。よって、ＧＵＩ部品３０２の大きさの属性値は、水平方向が“５０”、垂直方向が“１２０”となる。この場合、ＧＵＩ部品３０２は、５０×１２０の矩形サイズを持つことになる。
【００３３】
“Ｔｅｘｔ”の欄には“ｐｕｓｈ”が記入されている。そのため、ＧＵＩ部品３０２の文字列の属性は、“ｐｕｓｈ”となり、ＧＵＩ部品３０２に“ｐｕｓｈ”の文字列が重畳されている。
【００３４】
画面レイアウト作成部１０１は、作業エリアＬ３１にＧＵＩ部品を配置し、配置したＧＵＩ部品に対して属性を設定するユーザによる作業が終了すると、各ＧＵＩ部品の属性が定義された画面レイアウト定義情報２０１を生成し、記憶部２００に格納する。このように、画面レイアウト作成部１０１は、画面レイアウトが定義された画面レイアウト定義情報２０１を生成することで画面レイアウトを生成する。
【００３５】
画面レイアウト定義情報２０１は、例えばＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）により記述される。図３は、画面レイアウト定義情報２０１の一例を示した図である。図３の例では、ＧＵＩ部品３０２を含む画面レイアウトの画面レイアウト定義情報２０１が示されている。
【００３６】
ＧＵＩ部品３０２は、ボタンの部品クラスに属している。そのため、図３の例では＜ｃｌａｓｓ＞のタグに“Ｂｕｔｔｏｎ”と記述されている。ここで、部品クラスはＧＵＩ部品の種類を定義する。その他、部品クラスとして、ラベル、リスト、ボックスなどが存在する。よって、ＧＵＩ部品の種類として、ボタンの他、ラベル、リスト、ボックスなどが存在する。
【００３７】
また、ＧＵＩ部品３０２は、位置の属性値が（Ｘ，Ｙ）＝（１００，１００）である。よって、＜ｘ＞のタグに“１００”と記述され、＜ｙ＞のタグに１００と記述されている。
【００３８】
また、ＧＵＩ部品３０２は、大きさの属性値が（Ｗ，Ｈ）＝（５０，１００）である。よって、＜ｗｉｄｔｈ＞のタグに“５０”と記述され、＜ｈｅｉｇｈｔ＞のタグに“１００”と記述されている。
【００３９】
また、ＧＵＩ部品３０２は、文字列の属性値が“ｐｕｓｈ”であるため、＜ｔｅｘｔ＞のタグに“ｐｕｓｈ”と記述されている。
【００４０】
更に、画面レイアウト作成部１０１は、上記の作業により作成した画面レイアウトを、ユーザの操作入力に基づき、保存済みの画面レイアウトと差し替える機能を持つ。
【００４１】
図１に戻り、接続設定部１０２は、ユーザの操作入力に基づき、ＧＵＩ部品と処理プログラムとの関連付けを行い、当該関連付けを示す接続情報２０２を生成し、記憶部２００に格納する。具体的には、接続設定部１０２は、ユーザが図２に示す作業エリアＬ３１に配置されたＧＵＩ部品３０２をキーボードの特定のキーを押下した状態でマウスで選択し、図２に示すプログラム配置エリアＬ３２に配置されたアイコン３０４に対してドラッグアンドドロップすると、図４に示す入力画面のディスプレイへの表示依頼を画面レイアウト作成部１０１に行う。
【００４２】
図４は、ユーザがＧＵＩ部品と処理プログラムとを関連付ける作業を行う際に表示される入力画面の一例を示した図である。
【００４３】
図４の入力画面では、ＧＵＩ部品３０２とアイコン３０４とが線分５０２で接続されている。そして、この線分５０２の中央から線分５０３が分岐し、線分５０３の先にメソッドリスト５０１が表示されている。
【００４４】
メソッドリスト５０１は、アイコン３０４で示される処理プログラム（ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ）が持つ複数のメソッドをリスト表示する。図４の例では、“ｐｌａｙ”、“ｓｔｏｐ”、“ｆｆｏｒｗａｒｄ”、“ｒｅｗｉｎｄ”のメソッドが表示されている。ユーザはこれらのメソッドから１又は複数のメソッドを選択し、ＧＵＩ部品３０２に処理プログラムを関連付ける。図４の例では、“ｐｌａｙ”のメソッドが黒丸で表示され、ユーザにより選択されている。この場合、接続設定部１０２は、ｐｌａｙｅｒ＿ｐｒｏｇｒａｍの“ｐｌａｙ”のメソッドをＧＵＩ部品３０２に関連付ける。このように、本実施の形態では、ＧＵＩ部品に対し、処理プログラムを関連付けると共にその処理プログラムが含むいずれかのメソッドを関連付ける。
【００４５】
図５は、接続情報２０２の一例を示した図である。図５に示すように、接続情報２０２は、例えばＸＭＬにより記述されている。但し、これは一例であり、コンピュータが解釈可能な言語であればどのような言語を用いて記述してもよい。
【００４６】
図５では、図２に示すＧＵＩ部品３０２に対する接続情報２０２が示されている。図５において、＜ｕｉ＞のタグにはＧＵＩ部品３０２の名前である“Ｂｕｔｔｏｎ＿０１”が記述されている。＜ｐｒｏｇｒａｍ＞のタグには処理プログラムの名前である“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”が記述されている。これにより、ＧＵＩ部品３０２に“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”の処理プログラムが関連付けられる。
【００４７】
また、＜ｍｅｔｈｏｄ＞のタグには、処理プログラムのうち関連付けられたメソッド名である“ｐｌａｙ”が記述されている。これにより、ＧＵＩ部品３０２に、“ｐｌａｙ”メソッドが関連付けられる。
【００４８】
本実施の形態では、接続情報２０２は、例えばＧＵＩ部品毎に生成され、記憶部２００に格納される。そして、接続情報２０２は、ＧＵＩ部品の名前の属性値が記述されている。したがって、ＧＵＩ部品３０２の名前の属性値をキーとして、ＧＵＩ部品３０２の接続情報２０２を特定することができ、ＧＵＩ部品に関連付けられた処理プログラムを特定することができる。
【００４９】
処理プログラム作成部１０３は、ユーザの操作入力に基づき、ＧＵＩ部品が操作された際に実行される処理に係る処理プログラム２０３を作成する。具体的には、処理プログラム作成部１０３は、例えばテキストエディタにより構成され、処理プログラム２０３の作成および編集を行う。作成された処理プログラム２０３は記憶部２００に保存される。
【００５０】
処理プログラム２０３は、例えばＪａｖａＳｃｒｉｐｔ（登録商標）等により記述され、少なくとも１個以上のメソッドを備えている。図６は、処理プログラム２０３の一例を示した図である。
【００５１】
図６の例では、図４に示す“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”の処理プログラム２０３が示されている。図６の１行目において、“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”と記述され、“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”が宣言されている。
【００５２】
図４に示すように、“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”は、“ｐｌａｙ”、“ｓｔｏｐ”、“ｆｆｏｒｗａｒｄ”、“ｒｅｗｉｎｄ”のメソッドを備えている。したがって、図６の３〜６行目の各行においてこれらのメソッドが定義されている。図６の例では、各メソッドの詳細なプログラムコードは省略されている。
【００５３】
なお、処理プログラム２０３を作成するユーザは主にプログラマを想定しており、画面レイアウトを作成するデザイナとは別のユーザであることを想定している。
【００５４】
なお、メソッドを実行する機器は、ＧＵＩを表示する機器と異なっていてもよい。すなわち、ＧＵＩを表示する機器が、例えば、ネットワークを介してサーバと接続されている場合、ユーザによりＧＵＩ部品が操作されると、機器はＧＵＩ部品の操作情報をサーバに通知する。そして、サーバは、その操作情報からＧＵＩ部品に関連付けられたメソッドを実行し、処理結果を機器に返すようにしてもよい。
【００５５】
この場合、ＧＵＩが実装された機器は処理プログラム２０３を実装していなくてもよくなる。このように、処理プログラム２０３はＧＵＩが実装された機器と同一の機器に存在させてもよいし、ネットワークで接続された異なる機器に存在させていてもよい。
【００５６】
ソースコード生成部１０４は、画面レイアウト定義情報２０１、接続情報２０２、及び処理プログラム２０３に基づいて、ＧＵＩプログラムのソースコード２０４を作成する。作成されたソースコード２０４は、記憶部２００に保存される。ソースコード２０４は、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔにより記述される。
【００５７】
なお、画面レイアウト作成部１０１は、処理プログラムを実装する機器と異なる機器に画面レイアウトが存在するよう画面レイアウトの設定を変更することができる。この場合、ソースコード生成部１０４は、画面レイアウト上のＧＵＩ部品がネットワークを経由して処理プログラム２０３を実装する機器にアクセスするソースコード２０４を生成する。
【００５８】
図７は、ソースコード２０４の一例を示した図である。図７の例では、ＧＵＩ部品３０２に対するソースコード２０４が示されている。
【００５９】
１行目にボタンの部品クラスに属するオブジェクトである“ｂｕｔｔｏｎ１”が宣言されている。２行目に“ｂｕｔｔｏｎ１．ｓｅｔＰｒｏｇｒａｍ（ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ）”と記述され、“ｂｕｔｔｏｎ１”のオブジェクトに“ｐｌａｙｅｒ＿ｐｒｏｇｒａｍ”が関連付けられている。
【００６０】
３行目に、“ｂｕｔｔｏｎ１．ｓｅｔＰｒｏｇｒａｍＭｅｔｈｏｄ（“ｐｌａｙ”）”と記述され、ｂｕｔｔｏｎ１のオブジェクトに“ｐｌａｙ”のメソッドが関連付けられている。
【００６１】
よって、ソースコード２０４を実装する機器は、ＧＵＩ部品３０２が操作されると、ｐｌａｙｅｒ＿ｐｒｏｇｒａｍの“ｐｌａｙ”のメソッドを実行する。
【００６２】
このように、ソースコード生成部１０４は、画面レイアウト定義情報２０１を解析して、画面レイアウト上の各ＧＵＩ部品の種類や表示位置を示す属性を抽出し、ＧＵＩ部品毎のソースコード２０４を生成して、生成したソースコード２０４に抽出した属性を登録する。なお、図７の例では、ＧＵＩ部品の属性の記述は省略されている。また、ソースコード生成部１０４は、接続情報２０２を解析し、各ＧＵＩ部品に関連付けられている処理プログラム２０３及びのメソッドを抽出する。そして、ソースコード生成部１０４は、ＧＵＩ部品にイベント（例えば、ユーザが部品のＧＵＩ部品を押す等のイベント）が発生したとき、ＧＵＩ部品に関連付けられた処理プログラム２０３及びメソッドを呼び出すためのコードをソースコード２０４に記述する。これにより、ＧＵＩ部品にイベントが発生した場合、ソースコード２０４が解釈されて、関連付けられた処理プログラムのメソッドが実行される。
【００６３】
本実施の形態では、ソースコード２０４は、ＧＵＩ部品毎に生成され、画面レイアウト単位で１ファイルにまとめられる。
【００６４】
図１に戻り、記憶部２００は、例えばＨＤＤ（ハードディスクドライブ）により構成され、画面レイアウト定義情報２０１、接続情報２０２、処理プログラム２０３、及びソースコード２０４を保存する。
【００６５】
画面レイアウト比較部１０５は、画面レイアウト作成部１０１により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける。この推測の詳細については後述する。
【００６６】
接続情報復帰部１０６は、差替前画面レイアウトのＧＵＩ部品に関連付けられた処理プログラムを、画面レイアウト比較部１０５により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う。
【００６７】
従来のＧＵＩビルダにおいては、生成済の画面レイアウトを差し替えて別の画面レイアウトを作成する場合、ユーザは差替後画面レイアウトの各ＧＵＩ部品に対して処理プログラムを関連付ける作業を一個ずつ手作業で行わなければならなかった。
【００６８】
差替後画面レイアウトは、例えば、差替前画面レイアウトの一部のＧＵＩ部品を削除したり、差替前画面レイアウトに新たなＧＵＩ部品を追加したり、差替前画面レイアウトのＧＵＩ部品の位置を変更したりというようにして作成されることが多い。よって、差替後画面レイアウトは差替前画面レイアウトに対して多くのＧＵＩ部品が共通している可能性が高い。したがって、従来のＧＵＩビルダのように差替後画面レイアウトの各ＧＵＩ部品のそれぞれに対して、処理プログラムを関連付ける作業をユーザに課してしまうと、ユーザへの負担が重くなってしまう。
【００６９】
そこで、本実施の形態では、差替後画面レイアウトの各ＧＵＩ部品につき、類似するＧＵＩ部品を差替前画面レイアウトの中から推測し、類似するＧＵＩ部品があると推測された差替後画面レイアウトのＧＵＩ部品については、類似するＧＵＩ部品に関連付けられた処理プログラムを自動的に関連付ける。
【００７０】
そのため、ユーザは差替後画面レイアウトにつき、処理プログラムを関連付ける作業を行う手間が軽減され、ＧＵＩの画面レイアウトの開発効率を大幅に増大させることができる。
【００７１】
具体的には、接続情報復帰部１０６は、接続復帰処理を行った差替後画面レイアウトのＧＵＩ部品の名前の属性値を、対応する差替前画面レイアウトのＧＵＩ部品の名前の属性値で更新する。例えば、差替後画面レイアウトのＧＵＩ部品につき、名前の属性値が“Ｂｕｔｔｏｎ＿０１”であり、差替前画面レイアウトのＧＵＩ部品につき、名前の属性値が“Ｂｕｔｔｏｎ＿Ａ”であったとすると、差替後画面レイアウトのＧＵＩ部品の名前の属性値が“Ｂｕｔｔｏｎ＿Ａ”とされる。
【００７２】
これにより、差替前画面レイアウトのＧＵＩ部品に関連付けられていた処理プログラム及びメソッドが差替後画面レイアウトのＧＵＩ部品に関連付けられる。
【００７３】
つまり、差替後画面レイアウトのＧＵＩ部品の接続情報２０２及びソースコード２０４は、差替前画面レイアウトのＧＵＩ部品の名前の属性値である“Ｂｕｔｔｏｎ＿Ａ”をキーとして差替前画面レイアウトの画面レイアウト定義情報２０１と関連付けられている。よって、差替後画面レイアウトのＧＵＩ部品の名前の属性値を差替前画面レイアウトのＧＵＩ部品の名前の属性値で更新すると、差替後画面レイアウトのＧＵＩ部品の接続情報２０２及びソースコード２０４を新たに生成することなく、差替後画面レイアウトのＧＵＩ部品に差替前画面レイアウトのＧＵＩ部品の処理プログラム及びメソッドを関連付けることができる。
【００７４】
また、接続情報復帰部１０６は、画面レイアウト比較部１０５により対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、接続復帰処理を行う。
【００７５】
例えば、差替後画面レイアウトのＧＵＩ部品に対して、ユーザが想定するＧＵＩ部品とは別のＧＵＩ部品が類似すると推測されることもある。この場合、接続復帰処理が自動的に実行されてしまうと、ユーザは関連付けを解除し、差替後画面レイアウトのＧＵＩ部品に再度、希望する処理プログラム及びメソッドを関連付ける作業を行う必要がある。これでは、却って、ユーザの作業効率を低下させてしまう。
【００７６】
そこで、推測結果が正しいか否かをユーザに問い合わせる構成を採用する。これにより、推測結果が正しいか否かをユーザに事前に判断させることができ、差替後画面レイアウトのＧＵＩ部品に対してユーザが意図しない処理プログラムが関連付けられることを防止し、作業効率の向上を図ることができる。
【００７７】
問い合わせの形態としては、差替後画面レイアウトのＧＵＩ部品の名前の属性値と差替前画面レイアウトのＧＵＩ部品の名前の属性値とを対応付けて示し、かつ、“正しい”又は“正しくない”の選択項目を含むダイアログボックスをディスプレイに表示すればよい。そして、このダイアログボックスをＧＵＩ部品の数だけ繰り返し表示するようにすればよい。
【００７８】
或いは、全ＧＵＩ部品の対応付けをリスト表示し、かつ、各対応付けにつき、“正しい”又は“正しくない”の選択項目を含む１枚のダイアログボックスをディスプレイに表示してもよい。或いは、差替前画面レイアウトと差替後画面レイアウトとを並べて表示し、ＧＵＩ部品の対応付けをＧＵＩ部品間を結ぶ線分で表現し、かつ正しくない対応付けの線分をユーザ操作により削除するようにしてもよい。
【００７９】
以上がＧＵＩプログラム作成支援装置１００の構成についての説明である。
【００８０】
（フローチャート）
以下、本実施の形態におけるＧＵＩプログラム作成支援装置１００が行う処理を説明する。図９は、本発明の実施の形態に係るＧＵＩプログラム作成支援装置１００が行う、ＧＵＩプログラムの作成処理を示すフローチャートである。
【００８１】
まず、処理プログラム作成部１０３は、ユーザからの操作入力に基づき、図６に示すような、ＧＵＩ部品に対する処理プログラム２０３を作成する（Ｓ１００１）。作成された処理プログラム２０３は記憶部２００に保存される。処理プログラム２０３が保存されると、処理プログラム２０３を示すアイコン３０４が、図２に示すプログラム配置エリアＬ３２に表示される。
【００８２】
次に、画面レイアウト作成部１０１は、ユーザからの操作入力に基づき、ＧＵＩ部品を配置し、画面レイアウトを作成する（Ｓ１００２）。この場合、各ＧＵＩ部品には、一意に名前の属性値が設定される。この名前の属性値は、画面レイアウト作成部１０１が自動的に付加してもよいし、ユーザが指定してもよい。画面レイアウト作成部１０１が自動的に付加する態様としては、例えば、ＧＵＩ部品がボタンの部品クラスに属し、１個目のボタンのＧＵＩ部品であれば“Ｂｕｔｔｏｎ＿０１”、２個目のボタンのＧＵＩ部品であれば“Ｂｕｔｔｏｎ＿０２”、というように、クラスやラベルを示す文字列と作成順序を示す数値との組からなる名前の属性値を付与すればよい。
【００８３】
そして、画面レイアウト作成部１０１は、ユーザによる画面レイアウトの作成作業が終了すると、画面レイアウトを定義する画面レイアウト定義情報２０１を生成し、記憶部２００に保存する。これにより、画面レイアウトが記憶部２００に保存される。この場合、画面レイアウト作成部１０１は、ユーザに画面レイアウト定義情報２０１のファイル名を入力させ、このファイル名を持つ画面レイアウト定義情報２０１を記憶部２００に保存させればよい。
【００８４】
これにより、ユーザはファイル名を指定することで、指定したファイル名を持つ画面レイアウト定義情報２０１で定義された作成済みの画面レイアウトをディスプレイに表示することができる。
【００８５】
そして、画面レイアウト作成部１０１は、ユーザにより作成済みの画面レイアウトが編集された場合、編集作業が終了したとき、編集後の画面レイアウトの画面レイアウト定義情報２０１を生成し、元の画面レイアウト定義情報２０１に上書き保存させればよい。
【００８６】
図８（Ａ）は画面レイアウト作成部１０１により作成された画面レイアウト９００の一例を示す図である。以後、図８（Ａ）の画面レイアウト９００を差替前画面レイアウトとして説明する。
【００８７】
次に、接続設定部１０２は、ユーザの操作入力に基づき、画面レイアウト作成部１０１により作成された画面レイアウト９００を構成するＧＵＩ部品に対し、処理プログラム２０３を関連付ける（Ｓ１００３）。
【００８８】
図８（Ａ）の例では、ＧＵＩ部品９０１はボタンクラスのＧＵＩ部品であり、ユーザにより処理プログラム２０３の“ｐｌａｙ”メソッドが関連付けられている。したがって、接続設定部１０２は、ＧＵＩ部品９０１に処理プログラム２０３の“ｐｌａｙ”メソッドを関連付けた接続情報２０２を生成する。
【００８９】
接続設定部１０２は、他のＧＵＩ部品９０２〜９０４についても、同様に処理プログラム２０３との関連付けを行い、接続情報２０２を生成する。生成された接続情報２０２は記憶部２００に保存される。
【００９０】
次に、ソースコード生成部１０４は、各ＧＵＩ部品に関連付けられた処理プログラム２０３と、画面レイアウト９１０を定義する画面レイアウト定義情報２０１と、接続情報２０２との記述内容に基づき、図７に示すようなＧＵＩプログラムのソースコード２０４を生成する（Ｓ１００４）。生成されたソースコード２０４は記憶部２００に保存される。
【００９１】
なお、処理プログラム２０３は、ＧＵＩプログラムを起動する時点で機器により読み込まれて利用可能となる。そのため、ソースコード２０４では明示的な初期化処理は定義されていない。しかしながら、ソースコード２０４において、初期化処理を明示的に定義した場合は、処理プログラム２０３には処理プログラムの定義のみを記述し、ソースコード２０４中で処理プログラム２０３の初期化処理を行うようにしてもよい。
【００９２】
以上が、ＧＵＩプログラムの作成処理である。
【００９３】
次に、画面レイアウトを差し替える際の処理について説明する。図１０は、画面レイアウトを差し替える際の処理を示すフローチャートである。
【００９４】
まず、画面レイアウト作成部１０１は、Ｓ１００２と同様の方法で画面レイアウト９００とは異なる画面レイアウト９１０を作成する（Ｓ２１００）。そして、画面レイアウト９１０を定義する画面レイアウト定義情報２０１を作成し、記憶部２００に保存する。ここで、一旦、画面レイアウト作成部１０１は、画面レイアウト９１０の作成処理を終了する。図８（Ｂ）は画面レイアウト９１０の一例を示す図である。以後、画面レイアウト９１０を差替後画面レイアウトとして説明する。
【００９５】
次に、画面レイアウト作成部１０１は、ユーザの操作入力に基づき、画面レイアウト９００を画面レイアウト９１０に差し替える（Ｓ２２００）。
【００９６】
具体的には、画面レイアウト作成部１０１は、画面レイアウト９１０がディスプレイに表示された状態において、ユーザから画面レイアウトの差し替えの指示を受け付ける。すると、画面レイアウト作成部１０１は、記憶部２００に保存されている画面レイアウト定義情報２０１のファイル名をリスト表示させる。そして、ユーザに１つの画面レイアウト定義情報２０１が選択されると、画面レイアウト作成部１０１は、選択された画面レイアウト定義情報２０１によって定義された画面レイアウト９００を差替前画面レイアウトとしてディスプレイに表示する。
【００９７】
そして、画面レイアウト作成部１０１は、ユーザに画面レイアウト９００を画面レイアウト９１０で差し替えて良いか否かを問い合わせるダイアログボックスをディスプレイに表示する。そして、ユーザにより差し替えて良いことを示す操作入力が行われると、画面レイアウト作成部１０１は、画面レイアウト９００を画面レイアウト９１０の差し替え対象の画面レイアウトとして認識する。一方、ユーザにより差し替えては良くないことを示す操作入力が行われると、画面レイアウト作成部１０１は、再度、画面レイアウト定義情報２０１のファイル名をリスト表示し、別の画面レイアウトの選択をユーザに促せばよい。
【００９８】
そして、画面レイアウト作成部１０１は、画面レイアウト９１０の差し替え対象となる画面レイアウト９００を認識すると、再度、画面レイアウト９１０をディスプレイに表示する。
【００９９】
次に、画面レイアウト比較部１０５は、画面レイアウト９００と画面レイアウト９１０との比較を行い、画面レイアウト９１０を構成するＧＵＩ部品に対して類似するＧＵＩ部品を画面レイアウト９００の中から推測する（Ｓ２３００）。ここで、画面レイアウト比較部１０５は、類似するＧＵＩ部品同士を対応付け、推測データに記述し、記憶部２００に格納する。
【０１００】
次に、接続情報復帰部１０６は、画面レイアウト比較部１０５により生成された推測データから、画面レイアウト９１０のＧＵＩ部品に対し、類似すると推測されたＧＵＩ部品が画面レイアウト９００に存在するか否かを判定する（Ｓ２４００）。そして、接続情報復帰部１０６は、類似するＧＵＩ部品が存在すると判定した場合（Ｓ２４００でＹＥＳ）、処理をＳ２５００に進め、類似するＧＵＩ部品が存在しないと判定した場合（Ｓ２４００でＮＯ）処理を終了する。
【０１０１】
次に、接続情報復帰部１０６は、類似するＧＵＩ部品が存在すると推測された画面レイアウト９１０のＧＵＩ部品の名前の属性値を類似するＧＵＩ部品の名前の属性値で更新する（Ｓ２５００）。これにより、画面レイアウト９００のＧＵＩ部品の処理プログラム及びメソッドが、対応する画面レイアウト９１０のＧＵＩ部品に関連付けられる。
【０１０２】
例えば、ＧＵＩ部品９０１とＧＵＩ部品９１１とが類似すると推測され、ＧＵＩ部品９１１の名前の属性値が“Ｂｕｔｔｏｎ＿０１”、ＧＵＩ部品９０１の名前の属性値が“Ｂｕｔｔｏｎ＿Ａ”であったとする。この場合、接続情報復帰部１０６は、画面レイアウト９１０のＧＵＩ部品９１１の名前の属性値を“Ｂｕｔｔｏｎ＿０１”から“Ｂｕｔｔｏｎ＿Ａ”に更新する。
【０１０３】
なお、接続情報復帰部１０６は、ＧＵＩ部品９１１以外の画面レイアウト９１０を構成するＧＵＩ部品９１２〜９１４についても、類似するＧＵＩ部品が画面レイアウト９００に存在すれば、ＧＵＩ部品９１１と同様にして、名前の属性値を対応するＧＵＩ部品の名前の属性値で更新する。
【０１０４】
また、Ｓ２５００において、接続情報復帰部１０６は、ＧＵＩ部品の名前の属性値を更新した結果、他のＧＵＩ部品と名前の属性値が重複した場合は、重複したＧＵＩ部品の名前を適宜変更すればよい。
【０１０５】
例えば、ＧＵＩ部品９１１の名前の属性値を“Ｂｕｔｔｏｎ＿Ａ”に更新したが、画面レイアウト９１０において、ＧＵＩ部品９１２の名前の属性値が“Ｂｕｔｔｏｎ＿Ａ”であったとする。
【０１０６】
この場合、接続情報復帰部１０６は、ＧＵＩ部品９１１の名前の属性値を“Ｂｕｔｔｏｎ＿Ａ”とは別の属性値（例えば、“Ｂｕｔｔｏｎ＿Ａ’”）に変更してもよいし、ＧＵＩ部品９１２の名前の属性値を“Ｂｕｔｔｏｎ＿Ａ”から“Ｂｕｔｔｏｎ＿Ａ’”に変更してもよい。
【０１０７】
なお、ＧＵＩ部品９１１の名前の属性値を“Ｂｕｔｔｏｎ＿Ａ’”とする場合、画面レイアウト９００のＧＵＩ部品９０１の名前の属性値を“Ｂｕｔｔｏｎ＿Ａ”から“Ｂｕｔｔｏｎ＿Ａ’”に変更し、ＧＵＩ部品９０１の接続情報２０２及びソースコード２０４のキーを“Ｂｕｔｔｏｎ＿Ａ”から“Ｂｕｔｔｏｎ＿Ａ’”に変更する。こうすることで、ＧＵＩ部品９０１と処理プログラム２０３との関連づけが切れることを防止することができる。
【０１０８】
なお、Ｓ２５００において、接続情報復帰部１０６は、名前の属性値が更新されるＧＵＩ部品の候補をユーザに提示し、実際に名前の属性値を更新するか否かをユーザに問い合わせてもよい。
【０１０９】
また、Ｓ２４００において類似するＧＵＩ部品が存在しなかった場合（Ｓ２４００でＮＯ）、接続情報復帰部１０６は、画面レイアウト９００と画面レイアウト９１０とを表示し、画面レイアウト９１０のＧＵＩ部品に類似する画面レイアウト９００のＧＵＩ部品をユーザに指定させるようにしてもよい。この場合、接続情報復帰部１０６は、画面レイアウト９１０のＧＵＩ部品の名前の属性値をユーザが指定した画面レイアウト９００のＧＵＩ部品の名前の属性値で更新すればよい。こうすることで、画面レイアウト９１０のＧＵＩ部品に対してユーザが指定したＧＵＩ部品の処理プログラム及びメソッドが関連付けられる。
【０１１０】
以上が、画面レイアウトを差し替える際の処理である。
【０１１１】
続いて、画面レイアウト９００と画面レイアウト９１０とを比較する処理の詳細について説明する。図１１は、図１０におけるＳ２３００のサブルーチンを示すフローチャートである。
【０１１２】
なお、以下の説明では、ＧＵＩ部品の名前の属性値は画面レイアウト作成部１０１により自動生成されており、重複していないものとする。
【０１１３】
まず、画面レイアウト比較部１０５は、画面レイアウト９００において、接続情報２０２が存在し、処理プログラム及びメソッドが関連付けられているＧＵＩ部品を抽出する（Ｓ２３０１）。以降、抽出されたＧＵＩ部品について、画面レイアウト９１０におけるＧＵＩ部品との比較が行われる。
【０１１４】
次に、画面レイアウト比較部１０５は、Ｓ２３０１にて抽出されたＧＵＩ部品のうち比較が完了していないものが存在するかを判定する（Ｓ２３０２）。比較が完了していないＧＵＩ部品が存在する場合（Ｓ２３０２でＹＥＳ）、処理をＳ２３０３に進める。
【０１１５】
一方、Ｓ２３０１にて抽出されたＧＵＩ部品のうち、全てのＧＵＩ部品の比較が完了している場合（Ｓ２３０２でＮＯ）、処理を終了する。
【０１１６】
次に、画面レイアウト比較部１０５は、画面レイアウト９１０において、Ｓ２３０２で比較が未完了のＧＵＩ部品と、同じ名前の属性値を持つＧＵＩ部品が存在するか否かを判定する（Ｓ２３０３）。そして、画面レイアウト比較部１０５は、同じ名前の属性値を持つＧＵＩ部品が存在すると判定した場合（Ｓ２３０３でＹＥＳ）、両ＧＵＩ部品が類似していると推測し、両ＧＵＩ部品同士を対応付けて推測データに記述する（Ｓ２３０８）。
【０１１７】
一方、画面レイアウト比較部１０５は、同じ名前の属性値を持つＧＵＩ部品が存在しないと判定した場合（Ｓ２３０３でＮＯ）、処理をＳ２３０４に進める。
【０１１８】
例えば、画面レイアウトの作成過程においては、作成済みの画面レイアウトに対してＧＵＩ部品を追加する又は一部のＧＵＩ部品を削除するなどして、新たな画面レイアウトが作成されるケースが多い。この場合、新たな画面レイアウトにおいて元から存在していたＧＵＩ部品は名前の属性値がそのまま採用されるケースも多い。Ｓ２３０３の処理はこのようなケースにおいて有効である。
【０１１９】
次に、画面レイアウト比較部１０５は、画面レイアウト９１０において、Ｓ２３０２で比較が未完了のＧＵＩ部品と、同じ種類のＧＵＩ部品が存在し、かつ、両画面レイアウトにおいて、当該種類のＧＵＩ部品が１個だけ存在するか否かを判定する（Ｓ２３０４）。
【０１２０】
そして、画面レイアウト比較部１０５は、Ｓ２３０２で比較が未完了のＧＵＩ部品と、同じ種類のＧＵＩ部品が存在し、かつ、両画面レイアウトにおいて当該種類のＧＵＩ部品が１つだけ存在すると判定した場合（Ｓ２３０４でＹＥＳ）、両ＧＵＩ部品が類似していると推測し、両ＧＵＩ部品同士を対応付け、推測データに記述する（Ｓ２３０８）。
【０１２１】
ここで、ＧＵＩ部品の種類としては、例えば、ボタン、リスト、画像等が存在し、ＧＵＩ部品が属する部品クラスによって定義される。
【０１２２】
図８（Ａ）、（Ｂ）の例では、画面レイアウト９００のＧＵＩ部品９０４の種類はリストである。また、画面レイアウト９１０のＧＵＩ部品９１４の種類はリストである。そして、両画面レイアウトにおいて、リストのＧＵＩ部品は１つしか存在していない。よって、ＧＵＩ部品９０４と、ＧＵＩ部品９１４とが類似すると推測される。
【０１２３】
一方、両画面レイアウトにおいて、同じ種類のＧＵＩ部品が存在しない、又は同じ種類のＧＵＩ部品が存在していてもその個数が２個以上であった場合（Ｓ２３０４でＮＯ）、処理がＳ２３０５に進められる。
【０１２４】
例えば、動画コンテンツのＧＵＩにおいては、動画コンテンツのファイル名又はサムネイル画像をリスト表示する１個のリストのＧＵＩ部品と、リスト表示された動画コンテンツを選択し、再生するための複数のボタンのＧＵＩ部品とによって構成されるケースが多い。
【０１２５】
したがって、Ｓ２３０４の処理は、このような１個のリストのＧＵＩ部品を含む画面レイアウトにおいて有効である。なお、ここでは、同じ種類のＧＵＩ部品が１個である場合、両ＧＵＩ部品は類似すると推測したが、これに限定されない。例えば、同じ種類のＧＵＩ部品が画面レイアウト９００及び９１０において２個以上且つ同数存在する場合において、両ＧＵＩ部品が類似すると推測してもよい。この場合、同じ種類の同数のＧＵＩ部品の例えば配置パターン等に基づいて、２個以上且つ同数のＧＵＩ部品を構成する各ＧＵＩ部品の類似性を推測すればよい。
【０１２６】
次に、画面レイアウト比較部１０５は、画面レイアウト９１０において、Ｓ２３０２で比較が未完了のＧＵＩ部品と、位置の属性値が同じであるＧＵＩ部品が存在するか否かを判定する（Ｓ２３０５）。そして、画面レイアウト比較部１０５は、位置の属性値が同じであるＧＵＩ部品が存在すると判定した場合（Ｓ２３０５でＹＥＳ）、両ＧＵＩ部品が類似していると推測し、両ＧＵＩ部品同士を対応付け、推測データに記述する（Ｓ２３０８）。
【０１２７】
一方、画面レイアウト比較部１０５は、位置の属性値が同じであるＧＵＩ部品が存在していないと判定した場合（Ｓ２３０５でＮＯ）、処理をＳ２３０６に進める。ここで、画面レイアウト比較部１０５は、位置の属性値に多少誤差があっても位置の属性値は同じと判定してもよい。
【０１２８】
具体的には、画面レイアウト比較部１０５は、Ｘ座標、Ｙ座標のそれぞれにつき下限閾値と上限閾値とを設ける。そして、画面レイアウト９００のＧＵＩ部品の位置の属性値を基準として、Ｘ座標及びＹ座標のそれぞれの下限閾値及び上限閾値の範囲内に位置するＧＵＩ部品が画面レイアウト９１０に存在すれば、画面レイアウト比較部１０５は、これらのＧＵＩ部品同士が類似すると推測すればよい。
【０１２９】
例えば、画面レイアウトの作成過程においては、作成済みの画面レイアウトに対してＧＵＩ部品を追加する又は一部のＧＵＩ部品を削除するなどして、新たな画面レイアウトが作成されるケースが多い。この場合、新たな画面レイアウトにおいて元から存在していたＧＵＩ部品は位置が修正されていないケースも多い。Ｓ２３０５の処理はこのようなケースにおいて有効である。
【０１３０】
また、定型パターンのＧＵＩでは、ＧＵＩ部品は種類に応じて配置位置が予め定められていることが多い。そのため、差替前画面レイアウトと差替後画面レイアウトとにおいて同じ位置に配置されたＧＵＩ部品は同じ処理プログラムが関連付けられる可能性が高くなる。したがって、Ｓ２３０５の処理は定型パターンのＧＵＩにおいてＧＵＩ部品の類似性を精度良く推測することができる。
【０１３１】
次に、画面レイアウト比較部１０５は、Ｓ２３０２で比較が未完了のＧＵＩ部品の中から種類が同じであるＧＵＩ部品群を特定し、当該ＧＵＩ部品群と種類が同じ、かつ、名前の規則性が同じであるＧＵＩ部品群が画面レイアウト９１０に存在するか否かを判定する（Ｓ２３０６）。
【０１３２】
そして、画面レイアウト比較部１０５は、種類が同じ、かつ、名前の規則性が同じであるＧＵＩ部品群が存在すると判定した場合（Ｓ２３０６でＹＥＳ）、両ＧＵＩ部品群のそれぞれから名前の属性値が若い順に同数のＧＵＩ部品を取り出し、取り出したＧＵＩ部品同士を対応付け、推測データに記述する（Ｓ２３０８）。
【０１３３】
一方、画面レイアウト比較部１０５は、種類が同じ、かつ、名前の規則性が同じであるＧＵＩ部品群が存在しないと判定した場合（Ｓ２３０６でＮＯ）、処理をＳ２３０７に進める。
【０１３４】
ここで、ＧＵＩ部品群同士の名前の規則性が同じであるとは、例えば一方のＧＵＩ部品群が“Ｂｕｔｔｏｎ０１”、“Ｂｕｔｔｏｎ０２”、“Ｂｕｔｔｏｎ０３”という名前の属性値を持つＧＵＩ部品から構成され、他方のＧＵＩ部品群が“ｎａｖｉＢｕｔｔｏｎ０１”、“ｎａｖｉＢｕｔｔｏｎ０２”、“ｎａｖｉＢｕｔｔｏｎ０３”という名前の属性値を持つＧＵＩ部品が構成されているような場合が該当する。
【０１３５】
例えば、画面レイアウト９００において、ＧＵＩ部品９０１〜９０３の名前の属性値が、それぞれ、“Ｂｕｔｔｏｎ０１”、“Ｂｕｔｔｏｎ０２”、“Ｂｕｔｔｏｎ０３”であったとする。また、画面レイアウト９１０において、ＧＵＩ部品９１１〜９１３の名前の属性値がそれぞれ、“ｎａｖｉＢｕｔｔｏｎ０１”、“ｎａｖｉＢｕｔｔｏｎ０２”、“ｎａｖｉＢｕｔｔｏｎ０３”であったとする。
【０１３６】
この場合、ＧＵＩ部品９０１〜９０３は、それぞれ、種類がボタンであり、かつ、名前の属性値が“Ｂｕｔｔｏｎ０１”、“Ｂｕｔｔｏｎ０２”、“Ｂｕｔｔｏｎ０３”というように規則性を持っている。より具体的には、文字列が一致し、かつ、文字列に続く数値が１ずつ連続して増大している。よって、ＧＵＩ部品９０１〜９０３がＧＵＩ部品群として特定される。
【０１３７】
一方、ＧＵＩ部品９１１〜９１３は、種類がボタンであり、かつ、名前の属性値が“ｎａｖｉＢｕｔｔｏｎ０１”、“ｎａｖｉＢｕｔｔｏｎ０２”、“ｎａｖｉＢｕｔｔｏｎ０３”であり規則性を持っている。よって、ＧＵＩ部品９１１〜９１３は、ＧＵＩ部品群として特定される。
【０１３８】
そして、画面レイアウト９００から特定されたＧＵＩ部品群において、名前の属性値は、ＧＵＩ部品９０１が最も若く、次にＧＵＩ部品９０２が若く、次にＧＵＩ部品９０３が若い。一方、画面レイアウト９１０から特定されたＧＵＩ部品群において、名前の属性値は、ＧＵＩ部品９１１が最も若く、次にＧＵＩ部品９１２が若く、次にＧＵＩ部品９１３が若い。よって、画面レイアウト比較部１０５は、ＧＵＩ部品９０１〜９０３をそれぞれ、ＧＵＩ部品９１１〜９１３と類似していると推測し、これらのＧＵＩ部品同士を対応付ける。
【０１３９】
なお、画面レイアウト９００から特定したＧＵＩ部品群を構成するＧＵＩ部品の個数と画面レイアウト９１０から特定したＧＵＩ部品群のＧＵＩ部品の個数とが一致しないケースもある。例えば、画面レイアウト９００のＧＵＩ部品群において４個のＧＵＩ部品９０１〜９０４が存在しているのに対し、画面レイアウト９１０において３個のＧＵＩ部品９１１〜９１３が存在しているような場合である。この場合、ＧＵＩ部品９０４の名前の属性値が“Ｂｕｔｔｏｎ０４”であったとすると、画面レイアウト比較部１０５は、ＧＵＩ部品９０１〜９０３をそれぞれ、ＧＵＩ部品９１１〜９１３と対応付けるというように、名前の属性値順に同数のＧＵＩ部品同士を対応付ければよい。
【０１４０】
次に、画面レイアウト比較部１０５は、Ｓ２３０２で比較が未完了のＧＵＩ部品の中から、位置が連続しているＧＵＩ部品群を特定し、当該ＧＵＩ部品群と種類が同じ、かつ、位置が連続しているＧＵＩ部品群が存在するか否かを判定する（Ｓ２３０７）。そして、画面レイアウト比較部１０５は、種類が同じ、かつ、位置が連続しているＧＵＩ部品群が存在すると判定した場合（Ｓ２３０７でＹＥＳ）、両ＧＵＩ部品群のそれぞれから同数のＧＵＩ部品を取り出し、取り出したＧＵＩ部品同士を対応づけ、推測データに記述する（Ｓ２３０８）。
【０１４１】
一方、画面レイアウト比較部１０５は、種類が同じ、かつ、位置が連続しているＧＵＩ部品群が存在しないと判定した場合（Ｓ２３０７でＮＯ）、処理をＳ２３０２に戻す。
【０１４２】
ここで、位置が連続しているとは、ＧＵＩ部品が例えば垂直方向あるいは水平方向に連続していることを意味する。
【０１４３】
図８（Ａ）に示す画面レイアウト９００において、ＧＵＩ部品９０１〜９０３は種類が同じであり、位置が水平方向に連続しているため、ＧＵＩ部品群として特定される。
【０１４４】
また、図８（Ｂ）に示す画面レイアウト９１０において、ＧＵＩ部品９１１〜９１３は種類が同じであり、位置が垂直方向に連続しているため、ＧＵＩ部品群として特定される。このＧＵＩ部品群は、ＧＵＩ部品９０１〜９０３と種類が同じである。また、画面レイアウト９００のＧＵＩ部品群においてＧＵＩ部品９０１は左端に位置し、画面レイアウト９１０のＧＵＩ部品群においてＧＵＩ部品９１１は上端に位置している。そのため、ＧＵＩ部品９０１とＧＵＩ部品９１１とが類似していると推測され、両ＧＵＩ部品が対応付けられる。
【０１４５】
また、ＧＵＩ部品９０２，９０３は、画面レイアウト９００のＧＵＩ部品群において左から２，３番目に位置し、ＧＵＩ部品９１２，９１３は、画面レイアウト９１０のＧＵＩ部品群において上から２，３番目に位置している。よって、ＧＵＩ部品９０２とＧＵＩ部品９１２同士が対応付けられ、ＧＵＩ部品９０３とＧＵＩ部品９１３同士が対応付けられる。
【０１４６】
なお、画面レイアウト９００のＧＵＩ部品群が水平方向に連続して配置された４個のＧＵＩ部品９０１〜９０４から構成されるというように、ＧＵＩ部品群同士でＧＵＩ部品の個数が一致しない場合もある。この場合、画面レイアウト９００のＧＵＩ部品群において左端から３つのＧＵＩ部品９０１〜９０３を、それぞれ、画面レイアウト９１０のＧＵＩ部品群の上端から３つのＧＵＩ部品９１１〜９１３と対応づければよい。
【０１４７】
Ｓ２３０７でＮＯの場合は、推測データには、ＧＵＩ部品同士の対応付けは全く記述されず、処理がＳ２３０２に戻される。
【０１４８】
以上が、画面レイアウトを比較する処理の詳細である。
【０１４９】
＜変形例１＞
次に、上記のＧＵＩプログラム作成支援装置１００の変形例１について説明する。この変形例では、ユーザに画面レイアウトにおけるＧＵＩ部品の配置パターンを示すパターン情報を入力させ、そのパターン情報に応じて図１１のＳ２３０３〜Ｓ２３０７に示す推測処理の順序を適宜変更することを特徴とする。
【０１５０】
この変形例１において、画面レイアウト作成部１０１は、ユーザの操作入力に基づき、ＧＵＩ部品の配置パターンを示すパターン情報を画面レイアウトに設定する。具体的には、画面レイアウト作成部１０１は、画面レイアウトの作成作業において、予め定められた複数のパターン情報の中からいずれか１つのパターン情報をユーザに選択させる。そして、ユーザによって選択されたパターン情報を画面レイアウト定義情報２０１に記述することで、画面レイアウトにパターン情報を設定する。
【０１５１】
ここで、パターン情報としては、動画コンテンツの画面レイアウトのＧＵＩ部品の配置パターンを示す動画コンテンツパターン、操作メニューの画面レイアウトのＧＵＩ部品の配置パターンを示す操作メニューパターン、及び定型の画面レイアウトのＧＵＩ部品の配置パターンを示す定型パターンが存在する。
【０１５２】
動画コンテンツパターンは、例えば、ＤＶＤレコーダ等のＡＶ機器において、ユーザが動画コンテンツを再生するに際して、複数の動画コンテンツの中からいずれかのコンテンツをユーザに選択させるＧＵＩのＧＵＩ部品の配置パターンを想定したものである。
【０１５３】
操作メニューパターンは、例えば、ＡＶ機器やカーナビゲーションシステム等のデジタル機器を操作するために画面上に表示される操作メニューのＧＵＩのＧＵＩ部品の配置パターンを想定したものである。
【０１５４】
定型パターンは、仕様書等でＧＵＩ部品の種類に応じた配置位置が予め指定されているような定型のＧＵＩのＧＵＩ部品の配置パターンを想定したものである。
【０１５５】
動画コンテンツのＧＵＩでは、動画コンテンツのファイル名又はサムネイル画像をリスト表示する１個のリストのＧＵＩ部品と、リスト表示された動画コンテンツを選択し、再生するための複数のボタンのＧＵＩ部品とによって構成されるケースが多い。
【０１５６】
このようなＧＵＩを設計する場合、差替前画面レイアウト及び差替後画面レイアウトにおいて共に１個のリストのＧＵＩ部品が含まれる可能性が高くなる。
【０１５７】
したがって、画面レイアウト比較部１０５は、パターン情報が動画コンテンツパターンを示す場合、図１１に示すＳ２３０４の“同じ種類の部品が１つだけ存在する”の推測処理（第１推測処理の一例）をＳ２３０２の次に行い、続いて、Ｓ２３０３，Ｓ２３０５〜Ｓ２３０７の残りの推測処理を順次に実行する。これにより、動画コンテンツのＧＵＩに適用される画面レイアウトにおいて、ＧＵＩ部品を精度良く類推することができる。
【０１５８】
操作メニューのＧＵＩでは、ボタンのＧＵＩ部品が複数個、連続的に配置され、画像のＧＵＩ部品が複数個、連続的に配置されているというように、同じ種類のＧＵＩ部品が規則的に配置されることが多い。
【０１５９】
したがって、画面レイアウト比較部１０５は、パターン情報が操作メニューパターンを示す場合、Ｓ２３０７の“種類が同じ、かつ、位置が連続している”の推測処理（第２推測処理の一例）をＳ２３０２の次に実行し、続いて、Ｓ２３０３〜Ｓ２３０６の推測処理を順次に実行する。これにより、操作メニューのＧＵＩに適用される画面レイアウトにおいて、ＧＵＩ部品の類似性を精度良く推測することができる。
【０１６０】
定型パターンのＧＵＩでは、ＧＵＩ部品は種類に応じて配置位置が予め定められていることが多い。そのため、差替前画面レイアウトと差替後画面レイアウトとにおいて同じ位置に配置されたＧＵＩ部品は同じ処理プログラムが関連付けられる可能性が高くなる。
【０１６１】
そこで、画面レイアウト比較部１０５は、パターン情報が定型パターンを示す場合、Ｓ２３０５の“位置が同じ”の推測処理（第３推測処理の一例）を、Ｓ２３０２の次に実行し、続いて、Ｓ２３０３，Ｓ２３０４，Ｓ２３０６，Ｓ２３０７の推測処理を順次に実行する。これにより、定型パターンのＧＵＩに適用される画面レイアウトにおいて、ＧＵＩ部品の類似性を精度良く推測することができる。
【０１６２】
このように変形例１では、画面レイアウトが適用されるＧＵＩの種類に応じて、推測精度が高い推測処理が優先的に適用されるため、ＧＵＩ部品同士の類似性を比較する処理を効率よく実行することができる。
【０１６３】
なお、変形例１では、ユーザは１つのパターン情報を選択するものとしたが、これに限定されず、複数のパターン情報を選択してもよい。この場合、パターン情報毎に優先度を予め設けておき、複数のパターン情報が設定されている場合は、優先度にしたがって、推測処理の順序を決定すればよい。
【０１６４】
例えば、ユーザがパターン情報として、動画コンテンツパターン、操作メニューパターンを設定しており、操作メニューパターンより動画コンテンツパターンの方が優先度が高いとする。この場合、画面レイアウト比較部１０５は、Ｓ２３０２の推測処理の次に、Ｓ２３０４の推測処理を実行し、次に、Ｓ２３０７の推測処理を実行し、続いて残りの推測処理を順次に実行すればよい。
【０１６５】
＜変形例２＞
上記の実施の形態では、対応付けられたＧＵＩ部品同士において、差替後画面レイアウトのＧＵＩ部品の名前の属性値を差替前画面レイアウトの名前の属性値で更新した。変形例２では、対応付けられたＧＵＩ部品同士において、差替前画面レイアウトのＧＵＩ部品の名前の属性値を差替後画面レイアウトの名前の属性値で更新する。
【０１６６】
例えば、差替後画面レイアウトのＧＵＩ部品の名前の属性値が“Ｂｕｔｔｏｎ＿０１”であり、差替前画面レイアウトのＧＵＩ部品の名前の属性値が“Ｂｕｔｔｏｎ＿Ａ”であったとすると、“Ｂｕｔｔｏｎ＿Ａ”が“Ｂｕｔｔｏｎ＿０１”で更新される。
【０１６７】
デザイナは、差替後画面レイアウトの作成後、再度、差替前画面レイアウトを編集することも想定される。この場合、デザイナは、差替後画面レイアウトにおいて、ＧＵＩ部品（Ｂ１）に対し、名前の属性値を“Ｂｕｔｔｏｎ＿０１”と設定したため、差替前画面レイアウトにおいて、“Ｂｕｔｔｏｎ＿Ａ”の名前の属性値のＧＵＩ部品がＧＵＩ部品（Ｂ１）であるかを速やかに認識することができなくなってしまう。
【０１６８】
そこで、差替前画面レイアウトのＧＵＩ部品に対して、差替後画面レイアウトのＧＵＩ部品の名前の属性値を設定することで、差替前画面レイアウトの編集作業の効率化を図ることができる。
【０１６９】
この場合、ＧＵＩ部品９０１の処理プログラムの関連づけが切断されるため、ＧＵＩ部品９０１に対して処理プログラムを関連付ける必要がある。例えば、図８（Ａ）、（Ｂ）において、ＧＵＩ部品９０１，９１１が対応付けられたとする。この場合、接続情報復帰部１０６は、ＧＵＩ部品９０１の接続情報２０２において、名前の属性値を“Ｂｕｔｔｏｎ＿Ａ”から“Ｂｕｔｔｏｎ＿０１”に書き換えればよい。これにより、ＧＵＩ部品９０１，９１１共、処理プログラムの関連付けが復帰されることになる。
【０１７０】
＜変形例３＞
上記実施の形態では、差替前画面レイアウトと差替後画面レイアウトとの類似性を基準として、差替後画面レイアウトに対して処理プログラムを関連付けた。変形例３は、差替前画面レイアウトに関連付けられた処理プログラムの特徴から差替後画面レイアウトの各ＧＵＩ部品に関連付ける処理プログラムを類推することを特徴としている。
【０１７１】
例えば、差替前画面レイアウトがＡＶ機器において動画コンテンツを再生するようなオフライン用の画面レイアウトであり、この差替前画面レイアウトをインターネット上で動画コンテンツを再生するオンライン用の画面レイアウトに差し替える場合を想定する。
【０１７２】
この場合、差替前画面レイアウトにおいて、例えば再生ボタンのＧＵＩ部品に対し、オフライン用の再生プログラムが関連付けられているとする。すると、画面レイアウト比較部１０５は、このオフライン用の再生プログラムに対応するオンライン用の再生プログラムを再生ボタンのＧＵＩ部品に対して関連付ける。
【０１７３】
ここで、画面レイアウト比較部１０５は、例えばオフライン用の再生プログラムの名前や選択可能なメソッドの種類からオンライン用の再生プログラムを特定すればよい。具体的には、オフライン用の再生プログラムの名前が、“ｏｆｆ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”であり、オンライン用の再生プログラムの名前が、“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”であり両プログラムの名前の類似度が高いとすると、この“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”を再生ボタンのＧＵＩ部品に関連付ければよい。類似度としては、両名前において一致する文字数を採用すればよい。
【０１７４】
また、“ｏｆｆ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”及び“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”が共に、“ｐｌａｙ”、“ｓｔｏｐ”、“ｆｆｏｒｗａｒｄ”、“ｒｅｗｉｎｄ”のメソッドを持っているというように、両プログラムのメソッドの類似度が高い場合、再生ボタンのＧＵＩ部品に対して、“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”を関連付ければよい。ここで、メソッドの類似度としては、両プログラムにおいて一致するメソッド数を採用すればよい。
【０１７５】
また、“ｏｆｆ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”と、“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”とがプログラマによって予め対応付けられているとする。この場合、画面レイアウト比較部１０５は、“ｏｆｆ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”に対応付けられた“ｏｎ＿ｐｌａｙ＿ｐｒｏｇｒａｍ”を再生ボタンのＧＵＩ部品に関連付ければよい。
【０１７６】
このような構成は、例えば差替前画面レイアウトに関連付けられた処理プログラムがバージョンアップされた場合にも有効である。
【０１７７】
例えば、差替前画面レイアウトにおいて、再生ボタンのＧＵＩ部品に対し、“ｐｌａｙ＿ｐｒｏｇｒａｍ（ｖｅｒ．１）”が関連付けられ、この“ｐｌａｙ＿ｐｒｏｇｒａｍ（ｖｅｒ．１）”に対して次世代のバージョンの“ｐｌａｙ＿ｐｒｏｇｒａｍ（ｖｅｒ．２）”が対応付けられていたとする。
【０１７８】
すると、画面レイアウト比較部１０５は、差替後画面レイアウトにおいて、再生ボタンのＧＵＩ部品に対し、“ｐｌａｙ＿ｐｒｏｇｒａｍ（ｖｅｒ．２）”を関連付ければよい。
【０１７９】
図１３は、本発明の実施の形態によるＧＵＩプログラム作成支援装置１００のハードウェア構成を示すブロック図である。ＧＵＩプログラム作成支援装置１００は、ＣＰＵ（ＣＥＮＴＲＡＬ  ＰＲＯＣＥＳＳＩＮＧ  ＵＮＩＴ）１２０１、ＲＯＭ／ＲＡＭ１２０２、表示部１２０３、Ｉ／Ｏ１２０４、ネットワークインターフェイス１２０５、外部記憶装置１２０６、及び入力部１２０７を備えている。ＣＰＵ１２０１〜入力部１２０７は、バス１２００を介して相互に接続されている。
【０１８０】
ＲＯＭ／ＲＡＭ１２０２或いは外部記憶装置１２０６は、コンピュータをＧＵＩプログラム作成支援装置１００として機能させるためのプログラムを格納する。
【０１８１】
表示部１２０３は、例えば、液晶表示ディスプレイや有機ＥＬディスプレイ等により構成され、ＣＰＵ１２０１によって処理された処理結果を表示する。
【０１８２】
Ｉ／Ｏ１２０４は、外部装置を接続するための入出力インターフェイスであり、例えばＵＳＢポートが採用される。ネットワークインターフェイス１２０５は、例えばＧＵＩプログラム作成支援装置１００をインターネットに接続するための通信回路により構成されている。外部記憶装置１２０６は、例えば、ＨＤＤ（ハードディスク）等の記憶装置により構成される。入力部１２０７は、例えば、キーボード、マウス等の入力装置により構成され、ユーザから種々の操作入力を受け付ける。
【０１８３】
図１に示す画面レイアウト作成部１０１、接続設定部１０２、及び処理プログラム作成部１０３は、表示部１２０３に所定のＧＵＩを表示して、ユーザからの操作入力をＧＵＩを介して受け付けるプログラムモジュールであり、ＲＯＭ／ＲＡＭ１２０２或いは外部記憶装置１２０６に格納され、ＣＰＵ１２０１により実行されて実現される。
【０１８４】
図１に示すソースコード生成部１０４、画面レイアウト比較部１０５、及び接続情報復帰部１０６は、ＲＯＭ／ＲＡＭ１２０２或いは外部記憶装置１２０６に格納されたＧＵＩの表示を伴わないプログラムモジュールであり、ＣＰＵ１２０１によって実行されて実現される。図１に示す記憶部２００は、例えば、ＲＯＭ／ＲＡＭ１２０２或いは外部記憶装置１２０６により構成される。
【０１８５】
また、図１に示すＧＵＩプログラム作成支援装置１００は集積回路であるＬＳＩとして実現されてもよい。この場合、図１に示す画面レイアウト作成部１０１〜接続情報復帰部１０６を集積化すればよい。また、この場合、ＲＯＭ／ＲＡＭ１２０２或いは外部記憶装置１２０６からＣＰＵ１２０１にプログラムをロードする必要はなくなる。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０１８６】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１８７】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１８８】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
【０１８９】
また、ＧＵＩプログラム作成支援装置１００の構成要素のうち、記憶部２００も画面レイアウト作成部１０１〜接続情報復帰部１０６と併せて１チップ化してもよい。
【０１９０】
また、本実施の形態では、ＧＵＩプログラム作成支援装置１００を構成する処理手段をステップとする方法として実現できる。そして、本実施の形態は、その方法に含まれるステップをコンピュータに実行させるプログラムとして実現できる。さらに、本実施の形態は、そのプログラムを記憶したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記憶媒体として実現できる。
【０１９１】
（本実施の形態によるＧＵＩプログラム作成支援装置の纏め）
（１）本実施の形態によるＧＵＩプログラム作成支援装置は、ユーザの操作入力に基づき、複数のＧＵＩ（グラフィカルユーザインタフェース）部品を含むＧＵＩの画面レイアウトを生成すると共に、生成済の画面レイアウトを別の画面レイアウトに差し替える画面レイアウト作成部と、ユーザの操作入力に基づき、前記ＧＵＩ部品が操作された際に実行される処理に係る処理プログラムを作成する処理プログラム作成部と、ユーザの操作入力に基づき、前記ＧＵＩ部品と前記処理プログラムとの関連付けを行い、当該関連付けを示す接続情報を生成する接続設定部と、前記画面レイアウトと前記処理プログラムと前記接続情報とに基づき、ＧＵＩプログラムのソースコードを生成するソースコード生成部と、前記画面レイアウト作成部により、生成済の画面レイアウトが別の画面レイアウトに差し替えられた場合、差替後画面レイアウトのＧＵＩ部品に類似するＧＵＩ部品を、差替前画面レイアウトから推測し、類似するＧＵＩ部品同士を対応付ける画面レイアウト比較部と、前記差替前画面レイアウトのＧＵＩ部品に関連付けられた前記処理プログラムを、前記画面レイアウト比較部により対応付けられたＧＵＩ部品に関連付ける接続復帰処理を行う接続情報復帰部とを備える。
【０１９２】
この構成によれば、差替後画面レイアウトの各ＧＵＩ部品につき、類似するＧＵＩ部品を差替前画面レイアウトの中から推測し、類似するＧＵＩ部品があると推測された差替後画面レイアウトのＧＵＩ部品については、類似するＧＵＩ部品に関連付けられた処理プログラムが自動的に関連付けられる。
【０１９３】
そのため、ユーザは差替後画面レイアウトにつき、処理プログラムを関連付ける作業を行う手間が軽減され、ＧＵＩの画面レイアウトの開発効率を大幅に増大させることができる。
【０１９４】
（２）前記接続情報復帰部は、前記画面レイアウト比較部により対応付けられたＧＵＩ部品をユーザに報知し、推測結果が正しいことを示す操作入力がユーザにより行われたＧＵＩ部品について、前記接続復帰処理を行うことが好ましい。
【０１９５】
この構成によれば、推測結果が正しいか否かをユーザに事前に判断させることができ、差替後画面レイアウトのＧＵＩ部品に対してユーザが意図しない処理プログラムが関連付けられることを防止し、作業効率の向上を図ることができる。
【０１９６】
（３）前記画面レイアウト比較部は、前記差替前画面レイアウトと前記差替後画面レイアウトとにおいて、各ＧＵＩ部品に付与された名前を比較することで、類似性を推測することが好ましい。
【０１９７】
この構成によれば、差替後画面レイアウトと差替前画面レイアウトとにおいて、名前の共通するＧＵＩ部品が多く用いられている場合、類似するＧＵＩ部品を精度良く推測することができる。
【０１９８】
（４）前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のＧＵＩ部品の個数を比較することで、類似性を推測することが好ましい。
【０１９９】
この構成によれば、リストのＧＵＩ部品を１個持つような動画コンテンツのＧＵＩの画面レイアウトにおいて、類似するＧＵＩ部品を精度良く推測することができる。
【０２００】
（５）前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品に付与された名前の連続性から類似性を推測することが好ましい。
【０２０１】
この構成によれば、ＧＵＩの名前が一定の規則で自動作成された画面レイアウトにおいて、類似するＧＵＩ部品を精度良く検出することができる。
【０２０２】
（６）前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、ＧＵＩ部品の位置から類似性を推測することが好ましい。
【０２０３】
この構成によれば、仕様書によりＧＵＩ部品の配置位置が予め定められた定型パターンのＧＵＩに適用される画面レイアウトにおいて、ＧＵＩ部品の類似性を精度良く推測することができる。
【０２０４】
（７）前記画面レイアウト比較部は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品の配置の規則性から類似性を推測することが好ましい。
【０２０５】
この構成によれば、ＡＶ機器等を操作するために画面に表示される操作メニューのＧＵＩの画面レイアウトにおいて、類似するＧＵＩ部品を精度良く検出することができる。
【０２０６】
（８）前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのＧＵＩ部品の名前を、対応する前記差替前画面レイアウトのＧＵＩ部品の名前で更新することが好ましい。
【０２０７】
この構成によれば、差替後画面レイアウトのＧＵＩ部品の接続情報及びソースコードを新たに生成することなく、差替後画面レイアウトのＧＵＩ部品に差替前画面レイアウトのＧＵＩ部品の処理プログラムを関連付けることができる。
【０２０８】
（９）前記接続情報復帰部は、前記接続復帰処理を行った前記差替後画面レイアウトのＧＵＩ部品の名前で、対応する前記差替前画面レイアウトのＧＵＩ部品の名前を更新することが好ましい。
【０２０９】
この構成によれば、差替前画面レイアウトを再度編集する場合の編集作業の効率化を図ることができる。
【０２１０】
（１０）前記画面レイアウト生成部は、ユーザの操作入力に基づき、ＧＵＩ部品の配置パターンを示すパターン情報を前記画面レイアウトに設定し、前記画面レイアウト比較部は、複数の推測処理を順次に実行して類似性を推測し、前記パターン情報に応じて推測処理の順序を変更することが好ましい。
【０２１１】
この構成によれば、画面レイアウトが適用されるＧＵＩの種類に応じて、推測精度の高い推測処理が優先的に適用されるため、ＧＵＩ部品同士の類似性を比較する処理を効率よく実行することができる。
【０２１２】
（１１）前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、同じ種類のＧＵＩ部品の個数を比較することで、類似性を推測する第１推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が動画コンテンツのＧＵＩのＧＵＩ部品の配置パターンを示す動画コンテンツパターンである場合、前記第１推測処理を最初に実行することが好ましい。
【０２１３】
この構成によれば、動画コンテンツのＧＵＩのように、リストのＧＵＩ部品を１個持つ画面レイアウトにおいて、類似するＧＵＩ部品をより精度良く推測することができる。
【０２１４】
（１２）前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、各ＧＵＩ部品の配置の規則性から類似性を推測する第２推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が操作メニューのＧＵＩのＧＵＩ部品の配置パターンを示す操作メニューパターンである場合、前記第２推測処理を最初に実行することが好ましい。
【０２１５】
この構成によれば、ＡＶ機器等を操作するために画面に表示される操作メニューのようなＧＵＩの画面レイアウトにおいて、類似するＧＵＩ部品をより精度良く検出することができる。
【０２１６】
（１３）前記推測処理は、前記差替後画面レイアウトと前記差替前画面レイアウトとにおいて、ＧＵＩ部品の位置から類似性を推測する第３推測処理を含み、前記画面レイアウト比較部は、前記パターン情報が予め規定された配置位置にＧＵＩ部品が配置されている定型のＧＵＩを示す定型パターンである場合、前記第３推測処理を最初に実行することが好ましい。
【０２１７】
この構成によれば、仕様書によりＧＵＩ部品の配置位置が予め定められた定型パターンのＧＵＩに適用される画面レイアウトにおいて、ＧＵＩ部品の類似性をより精度良く推測することができる。
【産業上の利用可能性】
【０２１８】
本発明にかかるＧＵＩプログラム作成支援装置は、画面レイアウト比較部と接続情報復帰部を有し、複数の画面レイアウトを差し替えながら開発されるＧＵＩプログラムの開発効率を向上させるＧＵＩビルダとして有用である。
【図１】
0005852967.tif 000002
【図２】
0005852967.tif 000003
【図３】
0005852967.tif 000004
【図４】
0005852967.tif 000005
【図５】
0005852967.tif 000006
【図６】
0005852967.tif 000007
【図７】
0005852967.tif 000008
【図８】
0005852967.tif 000009
【図９】
0005852967.tif 000010
【図１０】
0005852967.tif 000011
【図１１】
0005852967.tif 000012
【図１２】
0005852967.tif 000013
【図１３】
0005852967.tif 000014