(57)【特許請求の範囲】
【請求項１】
機能の内容を示す機能情報と表示画面への表示内容を示す表示情報とを含む表示部品データを格納する記憶手段と、
ユーザからの選択指示および入力指示に基づいて、前記記憶手段から前記表示部品データを選択するとともに該選択された表示部品データの表示情報として前記入力指示の内容を設定する設定入力手段と、
ユーザからの変換指示に基づいて、前記選択された表示部品データの機能情報に代えて変換されるべき機能情報候補を、前記記憶手段に格納された表示部品データの機能情報の中から選択する変換候補選択手段と、
前記設定された表示情報に基づいて、前記選択された変換されるべき機能情報候補に優先順位情報を付加する優先情報付加手段と、
前記優先情報に基づいて前記機能情報候補を前記表示画面に表示する候補表示手段と
を具備することを特徴とするＧＵＩ作成支援装置。
【請求項２】
機能の内容を示す機能情報を含む表示部品データを格納する記憶手段と、
ユーザからの選択指示に基づいて、前記記憶手段から前記表示部品データを選択する選択入力手段と、
前記選択された表示部品データの機能情報に基づいて、前記選択された表示部品データに代えて変換されるべき表示部品データ候補を前記記憶手段から選択して、前記表示画面に表示する変換候補表示手段と
を具備することを特徴とするＧＵＩ作成支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータアプリケーションプログラム等のグラフィカルユーザインターフェース（以下「ＧＵＩ」という）の作成を支援するＧＵＩ作成支援装置、ＧＵＩ作成支援方法及びＧＵＩ作成支援のプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
ＧＵＩの設計・作成には、ＧＵＩ作成支援装置（ＧＵＩビルダ）を用いる場合が多い。
【０００３】
一般的なＧＵＩ作成支援装置では、自由にサイズを変更できるウィンドウ枠内に、ＧＵＩ部品と呼ばれるボタンやリストをパレットの中から選択し、配置することによってＧＵＩの設計や作成を行う。この作業は、ＧＵＩの設計者が行い、ＧＵＩの表示画面を利用して計算機の利用者と計算機の間でやりとりされるデータを具体的なＧＵＩの表示画面として表現して行く。このようなＧＵＩ作成支援装置を利用したＧＵＩの設計・作成では、以下のような問題がある。
【０００４】
すなわち、ＧＵＩ作成支援装置を利用したＧＵＩの設計・作成は、絵を描くような方法で簡単にＧＵＩの画面設計を行うことができるという利点がある。しかしながら、この利点が逆に、最終的な完成状態をイメージせずに、ＧＵＩを設計・作成してしまい、後で手戻り工程が発生するという問題を引き起こしている。つまり、設計過程における部品の追加や機能の変更がたびたび生じている。特に、候補から選択して入力するようなデータの場合、将来、候補が追加される可能性がある。ＧＵＩ部品の中には、固定候補からの選択用だけに提供されているものと候補の追加を考慮したものがあり、候補を固定だと考えて固定候補からの選択用の部品を利用している場合は、候補が追加になるとＧＵＩの画面を作り直さなければならない。従って、設計者は、具体的にどの部品をどのように使用するかを考慮しながら、最終的な完成状態をイメージしつつ、設計・作成を行わなければならなかった。
【０００５】
例えば、複数の項目の中から１つの項目を選択するようなＧＵＩを作成する場合には、プルダウンメニュー、排他的ボタン、リストボックス等の表現方法（部品）が用意されている。このような場合、どの方法に従うことがよいのかは、その操作場面等により異なり、さらには、利用者や設計者の好みによっても異なる。  かかる場合に、従来のＧＵＩ作成支援装置では、ある表現方法から他の表現方法の変更を行う手段に乏しく、一旦、ある部品で表現すると決めてしまった場合には、これを他の部品に置き換えるためには、該当するＧＵＩ画面を再構築する場合と同等の作業を必要としていた。
【０００６】
また、実際のシステムを作成する前に、その外観や挙動を確認するためのモックアップを作成することが一般的に行われている。しかしながら、モックアップを作成すること自体が非常に煩わしく、不便であった。
【０００７】
【発明が解決しようとする課題】
本発明は、上記課題を解決するためになされたもので、操作性及び保守性に優れたＧＵＩの対話画面を設計・作成することができるＧＵＩ作成支援装置、ＧＵＩ作成支援方法及びＧＵＩ作成支援のプログラムを記録した記録媒体を提供することを目的とする。
【０００８】
さらに、本発明は、変換対象となるＧＵＩ部品が現在どの部品であるかという情報を考慮したＧＵＩ作成支援装置、ＧＵＩ作成支援方法及びＧＵＩ作成支援のプログラムを記録した記録媒体を提供することを目的とする。
【０００９】
また、本発明は、変換対象となるＧＵＩ部品の現在の配置状況を考慮したＧＵＩ作成支援装置、ＧＵＩ作成支援方法及びＧＵＩ作成支援のプログラムを記録した記録媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
かかる課題を解決するため、請求項１記載に係る本発明は、機能の内容を示す機能情報と表示画面への表示内容を示す表示情報とを含む表示部品データを格納する記憶手段と、ユーザからの選択指示および入力指示に基づいて、記憶手段から表示部品データを選択するとともに該選択された表示部品データの表示情報として入力指示の内容を設定する設定入力手段と、ユーザからの変換指示に基づいて、選択された表示部品データの機能情報に代えて変換されるべき機能情報候補を、記憶手段に格納された表示部品データの機能情報の中から選択する変換候補選択手段と、設定された表示情報に基づいて、選択された変換されるべき機能情報候補に優先順位情報を付加する優先情報付加手段と、優先情報に基づいて機能情報候補を表示画面に表示する候補表示手段とを具備することを特徴とする。
【００１１】
請求項２記載に係る本発明は、機能の内容を示す機能情報を含む表示部品データを格納する記憶手段と、ユーザからの選択指示に基づいて、記憶手段から表示部品データを選択する選択入力手段と、選択された表示部品データの機能情報に基づいて、選択された表示部品データに代えて変換されるべき表示部品データ候補を記憶手段から選択して、表示画面に表示する変換候補表示手段とを具備することを特徴とする。
【００２７】
本発明によれば、例えば設計中のＧＵＩの中から、ＧＵＩオブジェクト（表示部品）を１つ選び、変換キーを押すと、現在の表示部品が他の表示部品に変換される。例えば、「ＯＫ」と書かれた「ラベル」を選択して変換すると、「ＯＫ」と書かれた「テキストフィールド」に変換される。そして、再度変換キーを押すと
「ＯＫ」と書かれた「ボタン」に変換される。さらに変換キーを押すと、「ＯＫ」と書かれたオプションボタンに変換される。選択されているオブジェクトが１つの場合には、例えば、「ラベル」、「テキストフィールド」、「ボタン」、「チェックボックス」のオブジェクトが変換候補となる。
【００２８】
同様に複数のＧＵＩオブジェクトを選択してから変換した場合にも変換を行う。変換候補は、例えば、「ラベルの集合」、「テキストフィールドの集合」、「複数行のテキストフィールド」、「コマンドボタンの集合」、「チェックボックスの集合」、「オプションボタンの集合」、「リストボックス」、「コンボボックス」、「ドロップダウンリストボックス」、「タブダイアログ」、「ツリービュー」のオブジェクトが変換候補となる。なお、これらの呼び名は変換候補としてあげているものの一例に過ぎない。本発明は、これに限定されるものではない。  このような選択候補の順番は各部品の使用頻度やラベル名により変更や学習が可能である。
【００２９】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づき説明する。
【００３０】
図１は、本発明の一実施形態に係るＧＵＩ作成支援装置の構成を示す図である。同図において、入力部１は、作成しようとするＧＵＩにおいて使用される文字列データやビットマップデータ、および各操作状況に応じたコマンド等を入力するためのものである。この入力部１は、例えば、キーボードおよびマウス等のポインティングデバイスにより実現される。表示部２は、コンピュータが扱うさまざまな内部データ等をユーザに提示するためのものであり、この例では、特に、後述するウィンドウ（Ｆｏｒｍ）やラベル等の表示部品、マウスカーソル等を表示するためのものであり、テキストのみならずグラフィカルな図形等も表示することができる。この表示部２は、いわゆるディスプレイ等により実現される。これら入力部１および表示部２により、ユーザインターフェースを構成する。
【００３１】
部品管理部３は、入力部１から入力された各種入力情報等に基づき、表示部２に表示された表示部品等に対応する部品データに関し、種々の管理を行うものである。部品管理部３の詳細は後述する。部品記憶部４は、上記各入力部１により入力された文字列データやビットマップデータを、部品データとして記憶する。変換部５は、ルール記憶部６に記憶されている変換規則や頻度記憶部７に記憶されている変換頻度情報に基づいて、部品管理部３から送出されてきた部品データを変換する。学習部８は、頻度情報について、所定の学習アルゴリズムにより学習を行い、頻度情報記憶部７に記憶された頻度情報を更新する。
【００３２】
次に、部品管理部３について、詳細に説明する。
【００３３】
図２は、部品管理部３の構成を示す図である。図２において、入力情報解釈部２１は、入力部１から送出されてきた入力情報について、コマンドやその他の指示であるか、文字列データまたはビットマップデータであるかを解釈して、その解釈結果に応じて後述する各部にデータないし制御情報等を送出する。このような解釈は、操作状況や入力モードに応じて適宜解釈される。
【００３４】
まず、入力情報解釈部２１は、文字列データまたはビットマップデータであると解釈した場合、該文字列データ等を部品データ登録部２２に送出する。部品データ登録部２２は、送出されてきた文字列データやビットマップデータを部品データとして、部品記憶部４に送出する。
【００３５】
また、入力情報解釈部２１が、部品選択指示であると解釈した場合、部品選択部２３に、そのときの入力情報を送出する。部品選択部２３は、該入力情報に基づいて該当する部品（群）を選択する。すなわち、部品選択部２３は、該入力情報を構成する位置情報と、画面データ記憶部２４に記憶された画面情報とから、表示部品を選択する。この場合、入力情報に従って複数選択することも可能である。部品選択部２３は、表示部品を選択すると、該表示部品に関する情報を、部品データ読み出し部２５に送出する。また、部品選択部２３は、表示部品が選択されたことをユーザに明示するため、画面データ記憶部２４の画面データを更新する。部品データ読み出し部２５は、送出されてきた表示部品に関する情報に従って、該当する部品データを部品記憶部４から読み出し、その内容を内部に一時的に保持する。
【００３６】
さらに、入力情報解釈部２１は、部品変換指示であると解釈した場合、変換指示部２６に、そのときの入力情報を送出する。変換指示部２６は、部品データ読み出し部２５に一時的に保持されている部品データを、部品データ読み出し部２５から読み出し、これを変換部５に送出する。つまり、この送出される部品データは、部品選択部２３により選択された表示部品に対応したものとなる。選択された部品データ（群）は、変換部５において、ルール記憶部６に記憶された変換ルールおよび頻度情報記憶部７に記憶された頻度情報に基づき候補一覧が作成され、候補選択部２７に返されることとなる。候補選択部２７は、該候補一覧の中から、選択候補として１つを選択し、該選択候補に基づいて、画面データ記憶部２４の内容を書き換える。これにより、表示部２の画面上には、変換結果が表示されることとなる。
【００３７】
選択候補の選択は、例えば、候補一覧の先頭から順次選択し、候補一覧のすべてを選択し終えたら、また、先頭の候補を選択するようにする。このような次候補の選択は、入力部１により変換命令が続けて入力された場合に、入力情報解釈部１が次候補選択と解釈して、候補選択部２７に変換命令を送出することにより行われる。
【００３８】
入力情報解釈部２１が、部品選択の解除であると解釈した場合、部品選択部２３および候補選択部２７に、そのときの入力情報を送出する。部品選択部２３は、表示部品が選択解除されたことをユーザに明示するため、画面データ記憶部２４の画面データを選択解除が分かる画面データに更新する。一方、候補選択部２７は、最終的に選択された表示部品を学習部８に送出する。
【００３９】
次に、本発明に係るＧＵＩ作成支援装置の操作について、例を用いて説明する。  ＧＵＩ作成支援装置の起動当初は、表示部２には初期状態として、部品等が全く配置されていないウィンドウ（Ｆｏｒｍ）が表示される。図３は、ウィンドウの初期状態の一例を示す図である。この例では、部品等が全く配置されていない状態を初期状態としたが、例えば、デフォルト部品を予め定義しておき、このデフォルト部品を表示した状態を初期状態とするようにしてもよい。
【００４０】
今、入力部１を用いて文字列を５つ入力するものとする。ここでは、「ファイル」、「保存」、「新規保存」、「開く」、「終了」の  ５    つ文字列を作成する。例えば、マウス等のポインティングデバイス（図示せず）を用いてウィンドウ上の任意の位置を指示した後、入力部１より所望の文字列を入力し、確定すると、文字列データと予め設定された枠データとが組み合わされた１つの部品データが、部品データ登録部２２によって生成される。この部品データは、部品記憶部４に記憶される。
【００４１】
図４Ａ及び図４Ｂは、部品記憶部４に記憶された部品データの一例を示す図である。図４Ａに示すように、部品データは、各ＧＵＩ部品の番号４０１、要素数４０２、要素番号４０３、下位要素数４０４、文字列４０５、部品名４０６、値４０７、状態４０８、位置４０９、大きさ４１０、下位要素４１１から構成される。例えば、入力部１によって入力される文字列は、最初は例えば「ラベル」と呼ばれる表現形式として格納されるものとする。「ファイル」という文字列を入力すると、図４Ｂに示すようなデータが生成され、記憶されることになる。
【００４２】
ここで、各項目について、説明する。
【００４３】
番号４０１は、部品を特定するために用いられる部品ごとに与えられた一意な番号である。
【００４４】
要素数４０２は、同じグループ内に含まれる同じ階層にある部品要素の数であり、ここでは、ファイルというラベルが１つしか含まれていないので、要素数は１である。
【００４５】
要素番号４０３は、同じグループに含まれている同じ階層にある要素ごとに与えられる一意な番号である。
【００４６】
下位要素数４０４は、例えば、メニュー部品のように、ある部品と他の部品とが階層関係がある場合、下位に存在する要素数を示す。
【００４７】
文字列４０５は、部品要素が表示する文字列である。
【００４８】
部品名４０６は、部品要素の名前である。
【００４９】
値４０７は、部品要素の値である。例えば、チェックボックスの場合、チェックされていれば１、チェックされていなければ０の値を取る。値を取らない部品の場合には空（ｎｕｌｌ）である。各部品により取り得る値は異なるものとする。
【００５０】
状態４０８は、部品要素の状態である。例えば、ボタンの場合、操作不可の状態ならば「不可」、操作可能ならば「可」の状態を取る。部品により、取り得る状態は異なる。
【００５１】
位置４０９は、ウィンドウ内の部品要素の位置を示す。例えば、ピクセル数により表される。
【００５２】
大きさ４１０は、部品の大きさを示す。
【００５３】
下位要素４１１は、下位にある部品の情報である。下位要素が無い場合には空である。
【００５４】
上記５つの文字列を全て入力し終わった状態のウィンドウを図５に示す。同図に示す各ラベルについて上述のような部品データがそれぞれ記憶される。
【００５５】
次に、入力部１を用いて、「保存」、「新規保存」、「開く」、「終了」の４つのラベルを選択操作し、ラベル「ファイル」上にドラッグ＆ドロップする。この操作状態のウィンドウを図６に示す。すなわち、ユーザが、マウスカーソル等を操作して、表示部２に表示されたウィンドウ上に表示されているラベル（表示部品）に相応する位置で、マウスボタンをクリックして入力情報を与えると、マウスカーソルの位置情報に基づいて対応するラベルが選択されたことを示すマークが表示されるとともに、続くドラッグ＆ドロップ等の入力操作が可能となる。なお、ここでは、例えば、ＳＨＩＦＴキーを押しながら、ラベルを順次クリックする等した場合には、複数のラベルが選択できるものとする。そして、マウスカーソルをドラッグ操作して、ラベル「ファイル」とその他選択されたラベル群とを、位置的に重なった状態で、ドロップすると、ウィンドウ上の表示部品は、他の形式の表示部品に変換される。
【００５６】
図７は部品管理部３及び変換部５の動作を示すフローチャートである。
【００５７】
部品管理部３では、まずクリック操作に基づく入力情報により（ステップ７０１）、部品選択部２３が部品データを選択し、該部品データが部品データ読み出し部２５に読み出され（ステップ７０２）、続くドラッグ＆ドロップ操作に基づく入力情報により（ステップ７０３）、変換指示部２６は、部品データ読み出し部２５に一時的に保持されている部品データを読み出し（ステップ７０４）、これを変換部５へ送出する（ステップ７０５）。変換部５は、該部品データを現在の表現部品以外の表示部品の部品データ、例えば、コンボボックスに変換する（ステップ７０６）。
【００５８】
図８は、図６のラベル群がコンボボックスに変換された状態の一例を示す図である。ユーザは、変換部５によって変換され、それが表示された結果、目的とする表示部品でなかった場合には、入力部１により、次候補変換指示を与える（ステップ７０７）。これにより、次の表示部品が表示されることとなる（ステップ７０８）。
【００５９】
図９は、次候補変換指示により標準コンボに変換された状態の一例を示す図である。そして、利用者が再度、次候補変換指示を与えると、次候補としてメニューが表示される。図１０は、次候補変換指示によりメニューに変換された状態の一例を示す図である。このように、ユーザは、入力部１を用いて、利用したい表示部品が登場するまで、次候補変換指示を繰り返す。そして、ユーザーが入力部１より確定処理を行う（ステップ７０９）、一連の処理を終了する。
【００６０】
なお、表示部品の並びが、所望の並びでない場合には、メニューの中の項目を選択して、直接、移動目的の場所へ移動させることも可能である。すなわち、ユーザは、入力部１により、該当する表示部品の項目を選択し、これをドラッグ操作して、所望の位置でドロップ操作する。図１１は、表示部品の並び順の入れ替え操作の状態の一例を示す図である。
【００６１】
例えば、「ファイル」「新規」「開く」「保存」「終了」の５つラベルを作成し、全てを同時に選択し、メニューに変換した場合、部品データ記憶部４に記憶された部品データは、図１２Ａ−図１２Ｅのようになる。
【００６２】
次に、本実施形態に係るＧＵＩ作成支援装置における変換処理について、図１３に従って説明する。
【００６３】
図１３は、本実施形態に係るＧＵＩ作成支援装置における変換処理の流れを説明するための図である。
【００６４】
まず、部品データを取得すると、変換部５は、利用可能な部品の一覧を作成する（ステップ１３０１）。この一覧の作成は、予め定められたフォーマットに従って行われる。このフォーマットは、例えば、『選択されている部品が１つである場合には、「ラベル」、「テキスト」、「ボタン」、「チェックボタン」が選択可能である』、『選択されている部品が複数である場合には、「ラベルの集合」、「テキストフィールドの集合」、「複数行のテキストフィールド」、「コマンドボタンの集合」、「チェックボックスの集合」、「オプションボタンの集合」、「リストボックス」、「コンボボックス」、「ドロップダウンリストボックス」、「タブダイアログ」、「ツリービュー」が選択可能である』、というようなものが定められている。
【００６５】
次に、変換部５は、ルール記憶部６に記憶されているルールに基づき、現在の状況にマッチするルールがあるか否かを判断する（ステップ１３０２）。
【００６６】
ここで、ルール記憶部６に記憶されているルールの一例を示す。
【００６７】
ルール１：ｉｆ  文字列＝“ＯＫ”  ｔｈｅｎ  部品名．ボタン＋１
これは、選択されている文字列が「ＯＫ」ならば、部品候補として「ボタン」の優先順位を上げるというルールである。
【００６８】
ルール２：ｉｆ  文字列＝“キャンセル”  ｔｈｅｎ  部品名．  メニュー−１
これは、選択されている文字列が「キャンセル」ならば、部品候補として「メニュー」の優先順位を下げるというルールである。
【００６９】
ルール３：ｉｆ  文字列１＝“ファイル”  ａｎｄ  文字列２＝“終了”  ｔｈｅｎ  部品名１．メニュー＋２；部品名＊．ボタン＋１
これは、２つ以上の部品が選択されていて、文字列に「ファイル」と「終了」が含まれている場合には、「ファイル」はメニューが選択されやすく、それ以外の候補はメニューの部品になるようにボタンの優先順位を上げるためのルールである。
【００７０】
ルール４：ｉｆ  要素数＞２０  ｔｈｅｎ  部品名．オプションボタン−１これは、選択されている要素数が２０以上の場合には、オプションボタンの優先順位を下げるというルールである。
【００７１】
なお、以上のルールは、あくまでも一例であり、適宜、ユーザがカスタマイズする等により、追加、変更、削除等することができる。
【００７２】
変換部５は、マッチするルールが存在していると判断した場合には、マッチしたルールに従って、ステップ１３０１で作成した利用可能な部品一覧の優先度の値を変更する（ステップ１３０３）。ステップ１３０３の処理の後、ステップ１３０２に戻り、他にマッチするルールがあるか否かを判断する。マッチするルールがすべてなくなった場合には、変換部５は、頻度情報記憶部７より頻度情報を読み込み、回数を加算することによる頻度情報を用いてステップ１３０１において作成した利用可能な部品一覧の優先度の値を変更する（ステップ１３０４）。そして、変換部５は、ステップ１３０１において作成した利用可能な部品一覧を、該優先度に基づき並べ替える（ステップ１３０５）。並べ替えられた結果は、部品管理部３の候補選択部２７に送出され（ステップ１３０６）、選択候補が表示されることとなる。
【００７３】
使用する表示部品が確定すると、候補選択部２７は、学習部８に、該確定した部品データに関する情報を送出する。学習部８は、この情報に基づいて、対応する表示部品の現在の頻度情報に１を加え、これを新たな頻度情報として頻度情報記憶部７の頻度情報を更新する。
【００７４】
なお、学習部８において、頻度情報以外にも、事例ベース推論や機能学習、ニューラルネットワーク等を用いることも可能である。確定した表示部品の構成を事例として記憶し、事例ベース推論を用いて、過去に類似する構成があった場合には、過去の事例を修正して候補を作成するようにする。
【００７５】
例えば、事例ベース推論を用いることにより、「ファイル」と、「新規」と、「開く」と、「新規保存」と、「保存」と、「終了」というメニューの事例が存在した場合において、「ファイル、新規、開く、保存、終了」というラベル群が作成された場合には、このメニューの事例が類似事例として検索される。検索された事例はメニューであるため、表示部品として「メニュー」が変換候補として選択されやすくなる。
【００７６】
次に、第２の実施形態を説明する。
【００７７】
ＧＵＩ部品を変換する場合には、全く新規に部品を作成する場合と、過去に作成したＧＵＩ部品を変更する場合とがある。後者の場合、変換するＧＵＩ部品は、すでに何らかの意味を持っていることが考えられるので、現在の部品の種別を用いて変換を行う例について説明する。
【００７８】
図１４は、本実施形態に係るＧＵＩ作成支援装置の構成を示す図である。図１４において、上述した第１の実施形態と同じ機能実現手段については同じ符号を付している。部品特定部１４１は、変換されるべき部品の種別を判定するものである。  図１５はこの動作を示すフローチャートである。
【００７９】
例えば、図１６に示すように、「年齢：」と表示されたＧＵＩ部品をマウス等により選択して、変換キーによる変換操作を実行すると、変換指示部２６は、変換部５に変換指示を送出するとともに、部品特定部１４１に変換対象のＧＵＩ部品を通知し（  図４Ａ及び図４Ｂ参照）  、部品特定部１４１は、このデータをもとにその部品の種別を判定する。本例の場合、以下の２つのＧＵＩ部品が抽出され、その種別が判明する。
【００８０】
ｌａｂｅｌ［”  年齢”：”］（）
ｃｏｍｂｏ［］（”  ２０歳未満”，”  ２０〜３０歳”，”  ３０〜４０歳”，”  ４０〜５０歳”，”  ５０〜６０歳”，”  ６０歳以上”）
ここでは、各部品は、
部品種［  名前］（構成要素，  …），…
のように記述するものとする。
【００８１】
部品種には、現在の部品の種類（部品名）が入る。例えば、ｌａｂｅｌ，  ｂｕｔｔｏｎ，    ｏｐｔｉｏｎ，  ｃｏｍｂｏ，  ｆｒａｍｅ，  ｍｅｎｕ，  …等である。すなわち、上記「ｌａｂｅｌ［”  年齢”：”］（）」は、「年齢：」という文字列の入ったラベルという意味を表す。ラベルには、構成要素は存在しないので、構成要素は空のカッコである。また、複数の文字列が１つの部品に入っている場合には、構成要素の文字列をカンマで区切って表示する。
【００８２】
メニューのような階層構造のＧＵＩ部品の場合には、文字列の代わりに部品種とラベル名が入る。例えば、図１７に示すように、メニューが階層的に表現されている場合には、
ｍｅｎｕ［”ファイル”］（”開く”，”  閉じる”，［ｍｅｎｕ］（”再読込み”，”  再書出し”））
となる。
【００８３】
上記のように、部品特定部１４１により選択されたＧＵＩ部品に関する情報が得られると、部品特定部１４１は、該得られたＧＵＩ部品の情報を変換部５に送出する。変換部５は、ルール記憶部６に記憶されているルールに基づいて、現在のＧＵＩ部品を他のＧＵＩ部品に変換する。
【００８４】
ここで、ルールの記述例を以下に示す。即ち、本発明では、第１の実施形態におけるｉｆ−ｔｈｅｎルールに代え下記のような標記法を用いることも可能である。
【００８５】
部品種（  文字列），部品種（  文字列，  …），…  −＞  部品名（  文字列），部品名（  文字列，  …）
すなわち、左辺（矢印「−＞」の左側）が成立条件を表し、左辺が成立した場合には右側の部品群に変換する。例えば、
ｌａｂｅｌ［””］（）−＞ｂｕｔｔｏｎ［”  キャンセル”］（）
というルールの場合には、英文字の”ｃａｎｃｅｌ”というラベルを変換したら、カタカナの「キャンセル」というボタンに変換することを意味する。また、文字列の代わりに、以下のように、変数名を用いることも可能である。
【００８６】
ｌａｂｅｌ［＄ａ＋”ボタン”］（），ｌａｂｅｌ［＄ｂ］（）−＞ｂｕｔｔｏｎ［＄ａ］（），ｂｕｔｔｏｎ［＄ｂ］（）
この場合、「ＯＫボタン」というラベルと、「キャンセル」という名前のラベルが変換された場合に、＄ａに「ＯＫ」が割り当てられ、＄ｂに「キャンセル」が割り当てられ、「ＯＫ」、「キャンセル」という２つのボタンに変換される。
【００８７】
ここで、ルール記憶部６が、以下のルールを保持しているとする。
【００８８】
ルール１［３０］：ｌａｂｅｌ［＄ａ］（），ｃｏｍｂｏ［＄ｂ＊］−＞ｆｒａｍｅ［＄ａ］（ｏｐｔｉｏｎ［＄ｂ＊］（））
ルール２［１０］：ｌａｂｅｌ［＄ａ］（）−＞ｂｕｔｔｏｎ［＄ａ＊］（）
ルール３［２０］：ｃｏｍｂｏ［］（＄ａ＊）−＞ｋｕｓｔｏ［］（＄ａ＊）
ルール４［１５］：ｌａｂｅｌ［＄ａ］（），ｃｏｍｂｏ［＄ｂ＊］−＞ｍｅｎｕ［＄ａ］（＄ｂ＊）
ルール名の後ろのカッコ内の数字は、各ルールの強さ（重み）である。また、変数名に「＊」が含まれるものは、１つ以上の項目を表す。
【００８９】
上述のように、部品特定部１４１によってＧＵＩ部品に関する情報が得られたとすると、各ルールの適合度は、以下のようになる。なお、ルールの適合度とは、成立条件の数としている。
【００９０】
ルール１＝２
ルール２＝１
ルール３＝１
ルール４＝２
さらに、各ルールの強さを掛けて優先度を求めると、
ルール１＝６０
ルール２＝１０
ルール３＝２０
ルール４＝３０
となり、この結果から、変換候補の順番として、ルール１、ルール４、ルール３およびルール２となる。
【００９１】
次に本発明の第３の実施形態を説明する。
【００９２】
本実施形態は、ＧＵＩ部品が配置されるべき画面内またはウィンドウ内の位置に基づいて、適切なＧＵＩ部品をより効果的に選択候補とすることを特徴とする。  図１８は、本実施形態に係るＧＵＩ編集装置の構成を示す図である。
【００９３】
図１８において、位置算出部１８１は、ＧＵＩ部品が現在配置されている画面内の位置を算出するものである。画面内の位置は、例えば、各ＧＵＩ部品の中心位置をウィンドウ内の上端および左端からの割合の２つの値で表現される。
【００９４】
図１９はこの装置の動作を示すフローチャートである。
【００９５】
ＧＵＩ部品をマウス等により選択して、変換キーによる変換操作を実行すると（  ステップ１９０１）  、変換指示部２６は、変換部５に変換指示を送出するとともに（  ステップ１９０２）  、位置検出部１８１に変換対象のＧＵＩ部品を通知する（  ステップ１９０３）  。位置検出部１８１は、当該ＧＵＩ部品の位置を算出する（  ステップ１９０４）  。例えば、図２０に示すようなウィンドウであった場合には、それぞれ、ボタン１（１２．５％，１２．５％）  、ボタン２（３７．５％，８７．５％）  およびボタン３（６５．５％，８７．５％）  という値を変換部５へ出力する（  ステップ１９０５）  。なお、画面上の相対値ではなく画面上の絶対座標を用いることも可能である。変換部５では、この出力に基づきＧＵＩ  部品を所定のＧＵＩ  部品へ変換する（  ステップ１９０６）  。例えばボタン１の場合には、ボタン１が画面の上部にあるので、上部のメニューに変換される。また、ボタン２の場合には、ボタン２が画面の下部にあるので、下部のメニューに変換される。
【００９６】
以下は、ルール記憶部６に保持されているルールの一例である。
【００９７】
ルール５［２０］：ｌａｂｅｌ［＄ａ］（＞５０％，＜５０％）（）−＞ｂｕｔｔｏｎ［＄ａ］（）
ｌａｂｅｌ  の引数として与えられているパーセント表示の数字は、ＧＵＩ部品の現在の位置と比較される条件である。つまり、変換候補ラベルの上下の位置が５０％よりも大きく（ウィンドウの下半分に位置し）、左右の位置が５０％よりも小さい（ウィンドウの左半分に位置している）場合に、このルールの条件を満たすこととなる。
【００９８】
本発明によれば、例えば、ウィンドウの上部に配置すべきＧＵＩ部品は、例えば、メニューに変換するというように、ユーザにより最適なＧＵＩ部品の候補を提示することにより、さらに使いやすいＧＵＩを構築することができるようになる。
【００９９】
なお、図１８においては、位置検出部１８１と併せて部品特定部１４１を設けているが、特に、位置検出部１８１のみを設けるようにしてもよい。この場合には、ルール１〜４までのルールは不要となる。
【０１００】
次に、本発明の第４の実施形態を説明する。
【０１０１】
図２１Ａに示すようなウィンドウにおいて、さまざまな「ボタン」が点在するような場合に、どのＧＵＩ部品をタイトルとして用いて、どのように配列すればよいかは、ユーザにとって理解しづらく、煩わしい。そこで、本実施形態は、ＧＵＩ部品のウィンドウ上の配置位置から順序を特定する方法について説明する。
【０１０２】
図２１Ａ  に示すようなウィンドウ中に、「年齢：」、「２０歳未満」、「２０〜３０歳」、「３０〜４０歳」、「４０〜５０歳」、「５０〜６０歳」および「６０歳以上」の７つのＧＵＩ部品（ボタン）が点在しているとする。
【０１０３】
図２２は第４の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【０１０４】
図２２に示す順序算出部２２１は、図２１Ａ  に示した７つのＧＵＩ部品を選択し、変換操作を実行した場合、対象としているＧＵＩ部品間の順序関係を求めるものである。例えば図２１Ｂ  に示すように、順序決定部２２１は、選択されたすべてのＧＵＩ部品を内接する長方形２１１の領域について、表示方向縦長の場合には、表示方向上側から順にＧＵＩ部品の順序づけを行う。この場合に、あるＧＵＩ部品と他のＧＵＩ部品との高さの差がＮ（Ｎは定数）以内である場合には、表示方向左側に配置されているＧＵＩ部品を右側に配置されているＧＵＩ部品に優先するように順序づけを行う。
【０１０５】
選択されたＧＵＩ部品を内接する長方形２１１が表示方向横長の場合には、表示方向左側から順にＧＵＩ部品の順序づけを行う。この場合に、横の差がＭ以内である場合には、表示方向上側に配置されたＧＵＩ部品を下側に配置されているＧＵＩ部品に優先して順序づけを行う。なお、Ｍ，Ｎは整列しようとする部品の大きさの逆数でもよい。
【０１０６】
図２１Ｂに示した例では、内接長方形２１１は、縦長であると判断されるため、上側優先でＧＵＩ部品の順序づけを行う。
【０１０７】
図２３は、順序決定部２２１の動作を説明するための図である。
【０１０８】
同図において、選択されたすべてのＧＵＩ部品を内接する長方形の領域が、縦長または正方形であるか否かの判定を行う（ＳＴＥＰ２３０１）。縦長であると判定された場合には、表示方向上側優先で順序づけを行うため、縦方向優先フラグをセットする（ＳＴＥＰ２３０２）。一方、横長であると判定された場合には、横方向優先フラグをセットする（ＳてＰ２３０３）。このフラグに示される方向からＧＵＩ部品が選択されることとなる。次に、順序決定部２２１は、ループ処理のための初期化を行い（ＳＴＥＰ２３０４）、変数ｊが選択されたＧＵＩ部品数を越えるまで以下に示す処理を繰り返す（ＳＴＥＰ２３０５）。
【０１０９】
まず、順序決定部２２１は、方向優先フラグに従って、ｉ番目とｊ番目のＧＵＩ部品を選択し（ＳＴＥＰ２３０６）、この２つのＧＵＩ部品の位置の差が定数Ｎ以内であるか否かを判定する（ＳＴＥＰ２３０７）。ここで、位置の差とは、縦方向優先の場合には２ＧＵＩ部品の水平中心軸間の差（つまり、高さ）であり、横方向優先の場合には垂直中心軸間の差である。ＳＴＥＰ２３０７において、Ｎ以内であると判断された場合には、ｉ番目のＧＵＩ部品がｊ番目のＧＵＩ部品よりも左（横方向優先の場合には上）に位置しているか否かを判断する（ＳＴＥＰ２３０８）。左（上）側に位置していると判断された場合には、ｉ番目のＧＵＩ部品の順位をｐとし、ｊ番目のＧＵＩ部品の順位をそれより１つ下げる（ＳＴＥＰ２３０９）。なお、ＳＴＥＰ２３０７において、Ｎより大きいと判断された場合には、このＳＴＥＰ２３０９の処理を行う。
【０１１０】
一方、ＳＴＥＰ２３０８において、左（上）側に位置していないと判断された場合には、ｉ番目とｊ番目のＧＵＩ部品の優先順位を入れ替える。その後、順序決定部２２１は、着目するＧＵＩ部品を１つシフトするため、変数を１つ分インクリメントし（ＳＴＥＰ２３１１）、以上の処理について条件を満足するまで繰り返す。
【０１１１】
以上の処理により、以下のように各ＧＵＩ部品の順序が決定される。
【０１１２】
１  「年齢：」
２  「２０歳未満」
３  「２０〜３０歳」
４  「３０〜４０歳」
５  「４０〜５０歳」
６  「５０〜６０歳」
７  「６０歳以上」
ここで、ルール記憶部６に
ｂｕｔｔｏｎ［＄ａ］（），ｂｕｔｔｏｎ［＄ｂ＊］（）−＞ｌａｂｅｌ［＄ａ］（），ｃｏｍｂｏ［＄ｂ＊］（）
というルールが記憶されている場合、このルールにマッチすることにより、上述した図１６に示すような画面に変換されることとなる。
【０１１３】
なお、順序付けは、上記に示した方法に限るものではなく、一意に順序づけられることができればよい。例えば、部品が選択された順番、左優先、上優先、最初からＬ個のＧＵＩ部品より上優先、左優先を判定等がある。
【０１１４】
次に、本発明の第５の実施形態を説明する。
【０１１５】
本実施形態は、複数のＧＵＩ部品をグループ化して、このグループ化されたＧＵＩ部品について変換操作を行うことにより、より最適なＧＵＩ部品の配置を行うことができるようにするものである。
【０１１６】
例えば、図２４Ａに示すようなウィンドウにＧＵＩ部品が配置されている場合に、通常の変換を行うと図２４Ｂのようになる。これに対し、本実施形態では、図２４Ｃに示すような変換を行うことができるようにする。
【０１１７】
図２５は、本実施形態に係るＧＵＩ部品作成支援装置の構成を示す図である。同図において、部品グループ化部２５１は、入力部１からのグループ化の指示に従い、所定のルールに基づいて特定のＧＵＩ部品群をグループ化するものであり、部品グループ化解除部２５２は、入力部１からのグループ化解除の指示に従い、部品グループ化部２５１によってグループ化されたＧＵＩ部品群のグループ化を解除するものである。
【０１１８】
図２６は、部品グループ化部におけるグループ化の手順を示す図である。
【０１１９】
まず、配置されたすべてのＧＵＩ部品のそれぞれについて、２つのＧＵＩ部品ごとに関係付け（ＳＴＥＰ２６０１）、そのＧＵＩ部品間の直線距離を求める
（ＳＴＥＰ２６０２）。ＧＵＩ部品間距離は、例えば、各ＧＵＩ部品の中心間の直線距離とする。
【０１２０】
図２７Ａは、ＧＵＩ部品間距離の算出のための概念図である。すなわち、図２７Ａは、図２４Ａに示されたウィンドウ内のＧＵＩ部品について、その中心間を直線で結んだ状態を示している。
【０１２１】
次に、関係づけられた線分のうち、最も長い線分のものを１つ選択し（ＳＴＥＰ２６０３）、そのＧＵＩ部品間の関係を解除する（ＳＴＥＰ２６０４）。解除した後、各ＧＵＩ部品（要素）について、所定の順番に線分をたどっていく（ＳＴＥＰ２６０５）。これによって、各ＧＵＩ部品がすべて線分で連結されているか、つまり、分割されたか否かを調べる（ＳＴＥＰ２６０６）。より具体的には、ＧＵＩ部品“１”（この場合、ＧＵＩ部品「国籍」を“１”としている。）を起点として、ＧＵＩ部品“２”方向にたどっていき、たどることができる場合は、内部テーブル（例えば、配列変数）に“１”をマークしていく。これをすべてのＧＵＩ部品について調べることによって、各ＧＵＩ部品が分割されているか否かを調べることができる（（図２７Ｂ）。
【０１２２】
ＳＴＥＰ２６０６において、分割されていないと判断された場合には、ＳＴＥＰ２６０３に戻り、上記処理を繰り返す。
【０１２３】
関係の解除が進み、例えば、図２７Ｃの状態になったとする。この場合、「国籍」、「日本」および「日本以外」のグループと、「性別」、「男」および「女」のグループとに分割されているので、グループ化は終了する。
【０１２４】
なお、ＧＵＩ部品間距離の算出方法は、上記方法に限りものではなく、例えば、ＧＵＩ部品端部の距離等でもかまわない。また、グループ化の方法も上記に示した方法に限りものではない。例えば、マウス等でグループ化したいＧＵＩ部品を選択した後、グループ化指示の命令を入力するようにしてもよい。
【０１２５】
次に、本発明の第６の実施形態を説明する。
【０１２６】
上述した第５の実施形態では、同一距離で２つ以上のグループが存在した場合には、分割する個数が判定できない場合がある。そこで、本実施形態では、グループ数算出部によりグループ数を検出する。
【０１２７】
図２８は、本実施形態に係るＧＵＩ編集装置の構成を示す図である。
【０１２８】
入力部１からグループ分割の指示が入力されると、部品特定部１４１は、選択されているＧＵＩ部品の種類を特定し、グループ数算出部２８１に送出する。グループ数算出部２８１は、グループごとにその数を数え、数の少ないものから順にグループ数の候補とし、これをグループ化部２５１に送出する。グループ化部２８１は、指示されたグループ数になるまで分割を行う。再度、グループ化の要求があった場合には、次のグループ数の候補になるまで分割を行う。
【０１２９】
【発明の効果】
以上説明した通り、本発明のＧＵＩ作成支援装置によれば、同等の意味を持つＧＵＩ部品の交換が容易になり、より使い勝手の良いＧＵＩを効率良く作成することができる。
【０１３０】
また、本発明によれば、ＧＵＩ部品の種別やその画面上での配置位置、配置順序等を考慮するので、操作性および変換効率の優れたＧＵＩ作成支援装置を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【図２】図１に示した部品管理部の構成を示す図である。
【図３】ウィンドウの初期状態の一例を示す図である。
【図４】図１に示した部品記憶部に記憶された部品データの一例を示す図である。
【図５】文字列を入力し終わった状態のウィンドウの一例を示す図である。
【図６】ドラッグ＆ドロップ操作の状態のウィンドウの一例を示す図である。
【図７】第１の実施形態に係るＧＵＩ作成支援装置の動作を示すフローチャートである。
【図８】図６のラベル群がコンボボックスに変換された状態のウィンドウの一例を示す図である。
【図９】次候補変換指示により標準コンボに変換された状態のウィンドウの一例を示す図である。
【図１０】次候補変換指示によりメニューに変換された状態のウィンドウの一例を示す図である。
【図１１】表示部品の並び順の入れ替え操作の状態のウィンドウの一例を示す図である。
【図１２】図１に示した部品記憶部に記憶された部品データの一例を示す図である。
【図１３】第１の実施形態に係るＧＵＩ作成支援装置における変換処理の流れを示すフローチャートである。
【図１４】第２の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【図１５】第２の実施形態に係るＧＵＩ作成支援装置の動作を示すフローチャートである。
【図１６】第２の実施形態における表示画面の一例を示す図である。
【図１７】第２の実施形態における表示画面の一例を示す図である。
【図１８】第３の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【図１９】第３の実施形態に係るＧＵＩ作成支援装置の動作を示すフローチャートである。
【図２０】第３の実施形態を説明するための表示画面の一例を示す図である。
【図２１】第４の実施形態を説明するための表示画面の一例を示す図である。
【図２２】第４の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【図２３】図２２に示した順序決定部の動作を説明するための図である。
【図２４】第５の実施形態を説明するための表示画面の一例を示す図である。
【図２５】第５の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【図２６】図２５に示した部品グループ化部におけるグループ化の手順を示す図である。
【図２７】図２５に示した部品グループ化部におけるグループ化の一例を示す図である。
【図２８】第６の実施形態に係るＧＵＩ作成支援装置の構成を示す図である。
【符号の説明】
１  入力部
２  表示部
３  部品管理部
４  部品記憶部
５  変換部
６  ルール記憶部
７  頻度記憶部
８  学習部
２１  入力情報解釈部
２２  部品データ登録部
２３  部品選択部
２４  画面データ記憶部
２５  部品データ読み出し部
２６  変換指示部
２７  候補選択部
【図１】
0003588540.tif 000002
【図２】
0003588540.tif 000003
【図３】
0003588540.tif 000004
【図４】
0003588540.tif 000005
【図５】
0003588540.tif 000006
【図６】
0003588540.tif 000007
【図７】
0003588540.tif 000008
【図８】
0003588540.tif 000009
【図９】
0003588540.tif 000010
【図１０】
0003588540.tif 000011
【図１１】
0003588540.tif 000012
【図１２】
0003588540.tif 000013
【図１３】
0003588540.tif 000014
【図１４】
0003588540.tif 000015
【図１５】
0003588540.tif 000016
【図１６】
0003588540.tif 000017
【図１７】
0003588540.tif 000018
【図１８】
0003588540.tif 000019
【図１９】
0003588540.tif 000020
【図２０】
0003588540.tif 000021
【図２１】
0003588540.tif 000022
【図２２】
0003588540.tif 000023
【図２３】
0003588540.tif 000024
【図２４】
0003588540.tif 000025
【図２５】
0003588540.tif 000026
【図２６】
0003588540.tif 000027
【図２７】
0003588540.tif 000028
【図２８】
0003588540.tif 000029