(57)【要約】【課題】  画面の任意の位置にＧＵＩ部品を配置する自由なレイアウト環境を提供しつつ、本発明を適用した装置の機種毎の画面に合わせて動的にレイアウトすることができるレイアウト装置を提供する。【解決手段】  ＧＵＩ部品のレイアウトに関する各プロパティに対してプリファレンスを設定し、プリファレンス計算部１１０によるプリファレンス計算結果に基づいてレイアウト調整方法の候補となるＧＵＩ部品を選択し、これに基づいてレイアウト調整を行う。【選択図】        図１
2006331339.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティ及びその重要性の度合を示すプリファレンスを設定したレイアウト定義と、表示画面を有する端末の特性を設定した機種情報とを入力し、これら入力情報を用いて前記表示画面のレイアウトデータを生成するレイアウトデータ生成部と、
前記レイアウトデータ生成部から入力したレイアウトデータを基に、前記プリファレンスの値に応じて前記レイアウトデータ生成部による前記表示画面に合わせたレイアウト調整の対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部とを備えたレイアウト装置。
【請求項２】
レイアウト定義は、ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティを保持するプロパティ部と、その重要性の度合を示すプリファレンス値を保持するプリファレンス部とを備えたことを特徴とする請求項１記載のレイアウト装置。
【請求項３】
一定のレイアウト上の規則に従うＧＵＩ部品をグループとして規定するグループプロパティ及びそのプリファレンスをレイアウト定義に設定し、
プリファレンス計算部は、前記グループプロパティのプリファレンスの値に応じて調整対象のＧＵＩ部品及びプロパティの候補を選択することを特徴とする請求項１記載のレイアウト装置。
【請求項４】
ＧＵＩ部品のレイアウトの基準となる座標を規定する基準点及びそのプリファレンスをレイアウト定義に設定し、
プリファレンス計算部は、前記基準点プロパティのプリファレンスの値に応じて調整対象のＧＵＩ部品及びプロパティの候補を選択することを特徴とする請求項１記載のレイアウト装置。
【請求項５】
レイアウト定義において複数のＧＵＩ部品で同一のプロパティ設定がある場合、このプロパティ設定を共通の参照情報として設定することを特徴とする請求項１記載のレイアウト装置。
【請求項６】
レイアウトデータ生成部は、プリファレンス計算部から通知された調整対象のＧＵＩ部品及びそのプロパティ並びにＧＵＩ部品に対するレイアウトの調整方法を決定する基準となるスコアをリスト情報として保持し、前記リスト情報の内容を参照してレイアウト調整することを特徴とする請求項１記載のレイアウト装置。
【請求項７】
レイアウトデータ生成部は、レイアウトを変更するための情報を定義したレイアウト変更定義、レイアウト定義、及び機種情報を入力し、これら入力情報を用いて表示画面のレイアウトデータを生成することを特徴とする請求項１記載のレイアウト装置。
【請求項８】
レイアウト変更定義は、ユーザ固有の情報を規定するユーザ情報を含むことを特徴とする請求項７記載のレイアウト装置。
【請求項９】
レイアウト変更定義は、レイアウトの変更内容を規定する設定情報であるプロパティを保持するレイアウト変更プロパティ部と、その重要性の度合を示すプリファレンス値を保持するレイアウト変更プリファレンス部とを備えたことを特徴とする請求項７記載のレイアウト装置。
【請求項１０】
レイアウト変更定義は、ＧＵＩ部品に表示される内容をレイアウト変更プロパティ部に保持し、そのプリファレンスをレイアウト変更プリファレンス部に保持する表示内容定義を含むことを特徴とする請求項９記載のレイアウト装置。
【請求項１１】
レイアウト変更定義は、ＧＵＩ部品を構成する基本的な表示部品のレイアウト及びそのデコレーションを規定する設定情報であるスキン及びデコレーションについて、前記スキンが適用された際に付加されるＧＵＩ部品であるスキンＧＵＩ部品のプロパティ及びデコレーションのプロパティをレイアウト変更プロパティ部に保持し、それらのプリファレンスをレイアウト変更プリファレンス部に保持するスキン定義を含むことを特徴とする請求項９記載のレイアウト装置。
【請求項１２】
表示画面のレイアウトデータを生成するレイアウトデータ生成部と、前記レイアウトデータ生成部によるレイアウト調整対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部とを備えたレイアウト装置のレイアウト方法において、
前記レイアウトデータ生成部が、前記ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティ及びその重要性の度合を示すプリファレンスを設定したレイアウト定義と、前記表示画面を有する端末の特性を設定した機種情報とを入力し、これら入力情報を用いて前記表示画面のレイアウトデータを生成するステップと、
前記プリファレンス計算部が、前記レイアウトデータ生成部から入力したレイアウトデータを基に、前記プリファレンスの値に応じて前記レイアウトデータ生成部による前記表示画面に合わせたレイアウト調整の対象となるＧＵＩ部品及びプロパティの候補を選択するステップと、
前記レイアウトデータ生成部が、前記プリファレンス計算部が選択したレイアウト調整対象のＧＵＩ部品及びプロパティの候補を用いて前記表示画面に合わせてレイアウトを調整するステップとを備えたことを特徴とするレイアウト方法。
【請求項１３】
ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティ及びその重要性の度合を示すプリファレンスを設定したレイアウト定義と、表示画面を有する端末の特性を設定した機種情報とを入力し、これら入力情報を用いて前記表示画面のレイアウトデータを生成するレイアウトデータ生成部、前記レイアウトデータ生成部から入力したレイアウトデータを基に、前記プリファレンスの値に応じて前記レイアウトデータ生成部による前記表示画面に合わせたレイアウト調整の対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部としてコンピュータを機能させるプログラム。
【請求項１４】
コンピュータを、表示画面に表示するＧＵＩ部品のレイアウトデータを生成するレイアウトデータ生成部として機能させるプログラムによって使用されるレイアウト定義のデータ構造であって、前記レイアウトデータ生成部によりレイアウトデータ生成の際に参照されるＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティを保持するプロパティ部と、前記レイアウトデータ生成部が前記プロパティの重要性の度合に応じてレイアウトデータを生成するための前記プロパティのプリファレンス値を保持するプリファレンス部とを備えたデータ構造。
【請求項１５】
コンピュータを、表示画面に表示するＧＵＩ部品のレイアウトデータを生成するレイアウトデータ生成部、前記レイアウトデータ生成部によるレイアウト調整対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部として機能させるプログラムによって使用されるレイアウト変更定義のデータ構造であって、前記レイアウトデータ生成部が前記表示画面に合わせてレイアウトを調整する際に参照される、レイアウトの変更内容を規定する設定情報であるプロパティを保持するレイアウト変更プロパティ部と、前記プリファレンス計算部が前記プロパティの重要性の度合に応じて調整候補を選択するための前記プロパティのプリファレンス値を保持するレイアウト変更プリファレンス部とを備えたデータ構造。
【請求項１６】
コンピュータを、表示画面に表示するＧＵＩ部品のレイアウトデータを生成するレイアウトデータ生成部、ＧＵＩ部品及びそのレイアウト内容を規定する設定情報であるプロパティのレイアウト調整候補を選択するプリファレンス計算部として機能させるプログラムによって使用されるレイアウト調整用情報のデータ構造であって、前記レイアウトデータ生成部がＧＵＩ部品のレイアウトを前記表示画面に合わせて調整する際に参照される、前記プロパティを変更するＧＵＩ部品の候補のリストを登録するＧＵＩ候補登録部と、その変更するプロパティを登録するプロパティ候補登録部と、前記プリファレンス計算部によって前記ＧＵＩ候補登録部にリストアップされたＧＵＩ部品に対応する前記プロパティ候補登録部のプロパティのプリファレンス値から算出され、前記レイアウトデータ生成部により調整されるべきＧＵＩ部品及びそのプロパティを決定する基準となるスコアを登録するスコア登録部とを備えたデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、携帯電話等の画面表示に適用するレイアウト装置に係り、特に画面上にＧＵＩ（Graphical User Interface）を表示するにあたり、表示装置の機種に合わせて動的に画面レイアウトを生成するレイアウト装置、レイアウト方法及びこのレイアウト装置としてコンピュータを機能させるプログラム並びにこのレイアウトで参照する情報のデータ構造に関するものである。
【背景技術】
【０００２】
従来、ＧＵＩ部品を表示する優先度を設定し、画面サイズによっては優先度の低いＧＵＩ部品を表示しないことで、画面サイズに合った画面レイアウトを実現するレイアウト方法が提案されている（例えば、特許文献１参照）。特許文献１では、画面の表示領域がＧＵＩ部品よりも小さい場合、優先度に応じて表示するＧＵＩ部品を間引いたり、フォントの大きさを変えたり、ＧＵＩ部品サイズを縮小する。また、画面の表示領域がＧＵＩ部品よりも大きく余白がある場合には、フォントの大きさを変えたり、拡大優先度に応じてＧＵＩ部品のサイズを拡大する。
【０００３】
【特許文献１】特開２００２−３２８８０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に代表される従来のレイアウト処理は、ＧＵＩ部品毎に設定した優先度に従って画面中にＧＵＩ部品を順番に並べていき、画面内に隙間無く敷き詰めるものである。このため、画面の任意の位置にＧＵＩ部品を配置するような自由なレイアウトに対応していないという課題があった。
【０００５】
また、特許文献１のレイアウト処理では、画面に合わせてレイアウトを調整する際に、ＧＵＩ部品の表示若しくは非表示の制御や表示領域内における余白の調整しかできない。このため、ＧＵＩ部品の移動等のレイアウト変更における調整には対応していないという課題もあった。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、画面の任意の位置にＧＵＩ部品を配置する自由なレイアウト環境を提供しつつ、本発明を適用した装置の機種毎の画面に合わせて動的にレイアウトすることができるレイアウト装置、レイアウト方法及びこのレイアウト装置としてコンピュータを機能させるプログラム並びにこのレイアウトで参照する情報のデータ構造を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るレイアウト装置では、ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティ及びその重要性の度合を示すプリファレンスを設定したレイアウト定義と、表示画面を有する端末の特性を設定した機種情報とを入力し、これら入力情報を用いて表示画面のレイアウトデータを生成するレイアウトデータ生成部と、レイアウトデータ生成部から入力したレイアウトデータを基に、プリファレンスの値に応じてレイアウトデータ生成部による表示画面に合わせたレイアウト調整の対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部とを備えるものである。
【発明の効果】
【０００８】
この発明によれば、ＧＵＩ部品のレイアウト内容を規定する設定情報であるプロパティ及びその重要性の度合を示すプリファレンスを設定したレイアウト定義と、表示画面を有する端末の特性を設定した機種情報とを入力し、これら入力情報を用いて表示画面のレイアウトデータを生成するレイアウトデータ生成部と、レイアウトデータ生成部から入力したレイアウトデータを基に、プリファレンスの値に応じてレイアウトデータ生成部による表示画面に合わせたレイアウト調整の対象となるＧＵＩ部品及びプロパティの候補を選択するプリファレンス計算部とを備えるので、画面の任意の位置にＧＵＩ部品を配置する自由なレイアウト環境を提供しつつ、本発明を適用した端末の機種毎の表示画面に合わせて動的にレイアウトすることができるという効果がある。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるレイアウト装置の構成を示すブロック図である。本実施の形態１によるレイアウト装置は、レイアウト定義記憶部１０１及び機種情報記憶部１０７に保持された情報を用いてレイアウト処理を実行するレイアウトデータ生成部１０９及びプリファレンス計算部１１０から構成される。レイアウトデータ生成部１０９が生成したレイアウトデータは、表示装置１１１の画面に表示される。
【００１０】
レイアウト定義記憶部１０１には、レイアウト作成者が定義した画面レイアウトに関する情報であるレイアウト定義１０２が保持される。機種情報記憶部１０７には、本発明を適用する表示画面を有する端末毎の画面サイズや使用可能なフォントサイズ等の機種情報１０８が保持される。なお、機種情報とは、画面のサイズや使用可能なフォントサイズなどの情報で規定され、ＧＵＩ部品の画面レイアウトを構成する一要素となる、端末に依存した情報である。
【００１１】
また、レイアウト定義１０２は、レイアウト定義記憶部１０１に単数又は複数保持されるものとし、機種情報１０８も機種情報記憶部１０７に単数又は複数保持される。レイアウトデータ生成部１０９は、レイアウト定義１０２と機種情報１０８を用いてレイアウトデータを生成する。プリファレンス計算部１１０は、レイアウトデータ生成部１０９が生成したレイアウトデータに設定されたプリファレンスの値に応じて表示装置１１１の画面に合わせたレイアウト調整を行うＧＵＩ部品及びそのプロパティの候補を選択する。
【００１２】
また、レイアウト定義１０２には、ＧＵＩ部品情報１０４を設定するＧＵＩ部品部１０３が含まれており、ＧＵＩ部品部１０３中には単数又は複数のＧＵＩ部品情報１０４が設定されている。ＧＵＩ部品情報１０４は、プロパティ部１０５及びプリファレンス部１０６を含んで構成される。プロパティ部１０５には、レイアウト作成者が定義した画面レイアウトにおけるＧＵＩ部品の配置位置やサイズを規定するプロパティ情報が設定される。プリファレンス部１０６には、プロパティ部１０５に保持したプロパティ情報のレイアウトにおけるプリファレンスが設定される。
【００１３】
図２は、実施の形態１によるレイアウト装置を具現化するハードウエア構成の一例を示す図であり、パーソナルコンピュータ（ＰＣ）での構成例である。図１中のレイアウトデータ生成部１０９及びプリファレンス計算部１１０は、例えば図２に示すようなＰＣ２０１の処理装置２０２に、本発明に従うレイアウト処理プログラムを実行させることで具現化することができる。
【００１４】
つまり、本発明に従うレイアウト処理プログラムを上記ＰＣ２０１に読み込ませて、その動作を制御することにより、ＰＣ２０１上に図１に示すレイアウトデータ生成部１０９及びプリファレンス計算部１１０としての機能を持たせることができる。このＰＣ２０１側で生成されたレイアウトデータは、ＰＣ２０１に具備された表示装置１１１であるモニタ２０４で表示される。
【００１５】
レイアウト定義記憶部１０１及び機種情報記憶部１０７についても、ＰＣ２０１に装備されたＲＡＭやハードディスクなどの記憶装置２０３上に構成することができる。レイアウト定義１０２並びに機種情報１０８は、ファイルであってもよいし、データベースを構築して、そこから必要な情報を取り出すような構成であってもよい。また、プロパティ部１０５並びにプリファレンス部１０６にアクセスするメソッドを備えたオブジェクトの形式で保持されていてもよい。
【００１６】
なお、以下の説明において、本発明のレイアウト装置を具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。また、図２中のＰＣ２０１は、汎用コンピュータの他、表示画面を有したコンピュータに類する処理機能を備えた携帯電話やＰＤＡなどの携帯情報端末であってもよい。この場合、携帯電話や携帯情報端末の表示画面に合ったレイアウト処理が施される。
【００１７】
ここで、本実施の形態１によるレイアウトデータ生成処理の概要について説明する。
図３は、図１中のレイアウト定義記憶部に保持したレイアウト定義の一例を示す図である。レイアウト定義１０２には、ＧＵＩ部品部１０３の他に、画面全体に関わる情報として画面の縦や横方向へのスクロール１０２ａ、レイアウト作成者が想定した画面サイズ１０２ｂ及びこの画面で使用されるフォントサイズ１０２ｃが定義される。
【００１８】
スクロール１０２ａは、縦及び横方向へスクロール可能な画面であるかどうかを定義するものであり、縦、横それぞれ「ｔｒｕｅ」、「ｆａｌｓｅ」の２値で定義される。「ｔｒｕｅ」であればその方向にスクロール可能であり、「ｆａｌｓｅ」であればスクロールは不可能である。図３の例は、縦も横も「ｆａｌｓｅ」であり、縦にも横にもスクロール不可能な画面であることがわかる。
【００１９】
ＧＵＩ部品部１０３には、各ＧＵＩ部品に関する情報が保持される。図３の例では、ＧＵＩ部品のＩＤ、ＧＵＩ部品の種類、ＧＵＩ部品の名前、ＧＵＩ部品の表示内容を規定するテキストが設定され、各種ＧＵＩ部品のレイアウト用プロパティとして可視性、位置、サイズ、ガイドが設定される。ガイドとは、列を表現するためのプロパティであり、縦方向に関するガイドのプロパティと、横方向に関するガイドのプロパティとがある。例えば、横方向に関するガイドのプロパティ値が同じＧＵＩ部品群は、横方向に一列になっていることを意味する。
【００２０】
ガイドのプロパティが同じ値を持つＧＵＩ部品は、レイアウトを行う際の一つのグループとして考えることができる。つまり、このガイドプロパティは、ＧＵＩ部品の属するグループを表すグループプロパティの一例である。また、位置のプロパティ値は座標で記述され、画面の任意の位置にＧＵＩ部品を配置することが可能である。可視性とは、そのＧＵＩ部品が表示されるかどうかを表すプロパティであり、「ｔｒｕｅ」、「ｆａｌｓｅ」の２値で表され、「ｔｒｕｅ」であればＧＵＩ部品が表示され、「ｆａｌｓｅ」であれば表示されない。
【００２１】
プロパティ部１０５には、上述した設定項目で特定されるＧＵＩ部品の配置情報が保持される。図中のＧＵＩ部品部１０３の第１行目におけるプロパティ部１０５は、ＩＤが「０」であるＧＵＩ部品についてであり、その種類は「ラベル」であり、名前は「ｌａｂｅｌ１」、テキストは「１．」、可視性は「ｔｒｕｅ」、位置のｘ座標は「５」、ｙ座標は「５」、サイズの幅は「４８」、高さは「２４」であり、ガイドのうち縦方向に関するものは「１」、横方向に関するものは「１」である。なお、サイズには最小サイズを設定することも可能であり、プロパティ値のかっこ内の値が最小値を表す。最小サイズ中のＦは、実際に表示する際のフォントサイズを表し、これを用いて最小サイズを定義する。
【００２２】
プリファレンス部１０６には、上述した各ＧＵＩ部品のレイアウト用プロパティについてのプリファレンスの値が設定される。プリファレンス値は、各プロパティの重要度を表し、図示の例では１０段階としており、値が大きいほど重要であることを意味する。なお、プリファレンス値は、１００段階にする等、詳細度を変えてもよいし、０から１までの小数で表してもよい。
【００２３】
例えば、ＩＤが「０」のＧＵＩ部品の各プロパティに対応するプリファレンスは、可視性のプロパティに対して値「１０」のプリファレンスが設定されており、位置のプリファレンス値は「９」、サイズのプリファレンス値は「１０」であり、縦方向のガイドのプリファレンス値は「７」、横方向のガイドのプリファレンス値は「９」である。
【００２４】
可視性に関して、プロパティ値が「ｔｒｕｅ」であっても、プリファレンス値が低ければ、画面サイズに応じて（画面に入りきらない場合）、当該ＧＵＩ部品が表示されないこともある。なお、図３の例では、位置のプロパティ、サイズのプロパティについて一括してプリファレンス値を設定しているが、これをｘ、ｙ、高さ、幅などの詳細に項目に分けてプリファレンス値を設定してもよい。これによっても、同様の効果が得られる。
【００２５】
また、レイアウト定義１０２には、図３に挙げたものの他に、ＧＵＩ部品の色等のプロパティを設定するプロパティ部１０５を設け、そのプロパティにプリファレンスを設定するプリファレンス部１０６を構築してもよく、同様の効果が得られる。
【００２６】
図４は、図３中のレイアウト定義によりレイアウトした結果を示す図であり、レイアウト作成者が意図した画面イメージである。図４において、同じガイドのプロパティ値を持つＧＵＩ部品は、各破線４０１〜４０７上に並ぶ。なお、これら破線４０１〜４０７は、説明のために便宜的に記載したものであり、レイアウト作成者が配置したＧＵＩ部品ではなく、実際の画面には表示されない。
【００２７】
このように、ガイドのプロパティが同じ値を持つＧＵＩ部品は、表示画面上での一定の配置規則に従うものとなり、レイアウトを行う際における一つのグループとして考えられる。このガイドプロパティを用いることで、複数のＧＵＩ部品からなるＧＵＩ部品群を効率的に配置することができる。
【００２８】
図５は、図１中の機種情報記憶部に保持した機種情報の一例を示す図である。機種情報１０８には、表示画面の画面サイズ１０８ａ、使用可能なフォントサイズ１０８ｂ、各ＧＵＩ部品のサイズを決定するマージン１０８ｃがフォントサイズごと（スモール、ミディアム、ラージ）に設定されている。図３で示したレイアウト定義１０２に設定されたＧＵＩ部品のサイズに図５中のマージンを合わせたものが、画面上に表示される実際のサイズとなる。図３で示したＩＤが「１」のテキストボックスのサイズは、フォントサイズがミディアム「２４」である場合、幅が２００＋３＋３＝２０６、高さが３０＋３＋３＝３６となる。
【００２９】
ここでは、全てのＧＵＩ部品に対し、サイズのプロパティ値を設定しているが、一部のＧＵＩ部品に関してはこれを設定しなくてもよい。テキストが表示されるときのサイズは、フォントサイズによって決定されるため、レイアウト作成時点では、実際に表示されたときのサイズを決定しきれない。そこで、このような場合、サイズを設定しなくてもよいこととする。つまり、このＧＵＩ部品のサイズは、レイアウトデータ生成部１０９によるレイアウトデータ生成時にＧＵＩ部品のテキスト、機種情報のフォントサイズ及びマージンから決定される。
【００３０】
図５のような機種情報１０８が設定されている場合、例えば「あいうえお」というテキストを表示する種類が「ボタン」のＧＵＩ部品がレイアウト定義１０２に含まれ、そのサイズが設定されていなかった場合、フォントサイズがミディアム「２４」であれば、幅が２４×５＋２＋２＝１２４、高さが２４＋２＋２＝２８となる。ここで、最小サイズも設定されていない場合、最小サイズも幅１２４及び高さ２４に設定される。
【００３１】
次に動作について説明する。
図６は、実施の形態１によるレイアウト装置の動作を示すフローチャートであり、レイアウトデータ生成部１０９によるレイアウトデータ生成処理の流れを示している。
先ず、レイアウトデータ生成部１０９は、初期レイアウトデータ生成処理を実行する（ステップＳＴ１０１）。ここで、レイアウトデータ生成部１０９は、レイアウト定義記憶部１０１からレイアウト定義１０２を読み出し、機種情報記憶部１０７から機種情報１０８を読み出して、これらを用いて表示装置１１１の画面依存のレイアウトデータを生成する。
【００３２】
レイアウトデータとは、機種情報１０８を用いて、レイアウト定義１０２に対して実際の表示に必要なサイズを反映させ、表示装置１１１で表示する際に必要な全ての情報を設定したデータのことをいう。レイアウトデータ生成部１０９は、このレイアウトデータに対して表示装置１１１の画面に合わせた変更を加え、表示装置１１１の画面で表示するレイアウトデータを生成する。
【００３３】
例えば、レイアウト定義１０２に設定されているフォントサイズをｆｏｎｔ、ＧＵＩ部品のｘ座標をｘ、ｙ座標をｙ、幅をｗｉｄｔｈ、高さをｈｅｉｇｈｔとし、レイアウトデータにおけるフォントサイズをＦＯＮＴ、ＧＵＩ部品のｘ座標をＸ、ｙ座標をＹ、幅をＷＩＤＴＨ、高さをＨＥＩＧＨＴとする。
【００３４】
そして、レイアウトデータにおける画面サイズをレイアウトのサイズと呼び、その高さ及び幅をそれぞれレイアウトの高さ及びレイアウトの幅と呼ぶ。なお、以降では、単に画面サイズといえば、機種情報１０８の画面サイズ１０８ａを指すこととする。
【００３５】
最初に、レイアウトデータ生成部１０９は、機種情報１０８の画面サイズ１０８ａをレイアウトのサイズ（レイアウトデータにおける画面サイズ）に設定する。これに合わせてＧＵＩ部品のサイズを設定する。このとき、レイアウト定義１０２から読み出した画面サイズ１０２ｂが縦Ｈ、横Ｗであったとする。また、機種情報１０８から読み出した画面サイズ１０８ａが縦Ｈ１、横Ｗ１であったとする。この場合、レイアウトデータ生成部１０９は、（Ｈ１／Ｈ）と（Ｗ１／Ｗ）との小さい方の値を画面の拡縮率αとする。
【００３６】
レイアウトデータ生成部１０９は、この拡縮率αを用いて、レイアウトデータにおけるＧＵＩ部品のサイズ及びフォントサイズを決定する。例えば、レイアウト定義１０２から読み出したフォントサイズ１０２ｃがｆｏｎｔであると、機種情報１０８から読み出したフォントサイズ１０８ｂの値のうち、（ｆｏｎｔ×α）に最も近いものが、レイアウトデータのフォントサイズであるＦＯＮＴの値に設定される。
【００３７】
次に、レイアウトデータ生成部１０９は、レイアウト定義１０２のプロパティ部１０５から各ＧＵＩ部品のサイズを読み出し、プロパティ値が設定されていれば、レイアウトデータにおけるＧＵＩ部品の幅ＷＩＤＴＨにｗｉｄｔｈ×αを、高さにＨＥＩＧＨＴにｈｅｉｇｈｔ×αを代入してレイアウトデータのサイズを設定する。なお、このとき、最小サイズが設定されていれば、それ以上小さくしない。
【００３８】
一方、プロパティ部１０５にサイズが設定されていないラベル等のＧＵＩ部品である場合、レイアウトデータ生成部１０９は、レイアウトデータのフォントサイズＦＯＮＴとレイアウト定義１０２の対応するテキストとを合わせて決定し、レイアウトデータのサイズに設定する。さらに、レイアウトデータのフォントサイズＦＯＮＴに対応するマージンを機種情報１０８のマージン１０８ｃから読み出し、レイアウトデータの各ＧＵＩ部品のサイズにマージンを足し合わせる。
【００３９】
続いて、レイアウトデータ生成部１０９は、レイアウト定義１０２のプロパティ部１０５から各ＧＵＩ部品の位置を読み出して、レイアウトデータにおけるＧＵＩ部品のｘ座標Ｘに（ｘ×Ｗ１／Ｗ）を代入し、ｙ座標Ｙに（ｙ×Ｈ１／Ｈ）を代入して、レイアウトデータにおけるＧＵＩ部品の位置に設定する。他のデータに関しては、レイアウト定義１０２の設定をそのままレイアウトデータにコピーする。このようにして、初期レイアウトデータが生成される。
【００４０】
ステップＳＴ１０２において、レイアウトデータ生成部１０９は、横スクロール可能かどうか判定する。具体的には、レイアウトデータにコピーされた、横方向のスクロールの値から、横スクロール可能か否かを判定する。このとき、横スクロールが不可能であると、ステップＳＴ１０３の処理に移行して縦方向の初期調整を行う。
【００４１】
画面の拡縮率αに合わせてレイアウトデータにおけるＧＵＩ部品のサイズや位置を設定しても、ＧＵＩ部品の最小サイズや機種情報１０８によっては、ＧＵＩ部品間の表示に重畳が生じる場合がある。例えば、α＜１のとき、図４に示したような画面を想定したレイアウト定義１０２を基に生成されたレイアウトデータでは、図７中に斜線部で示すように表示に重畳が生じる場合がある。
【００４２】
そこで、ステップＳＴ１０３において、レイアウトデータ生成部１０９は、このような重畳を、画面サイズを無視して解消する処理を実行する。この処理を、画面サイズ無視の調整処理と呼ぶ。この処理は、先ず縦方向に関して行われ、これを画面サイズ無視の調整処理（縦）と表す。この方法については後述する。
【００４３】
続いて、ステップＳＴ１０４において、レイアウトデータ生成部１０９は、上述したような重畳を、横方向に関して画面サイズを考慮しながら解消する処理を実行する。この処理を、画面サイズを考慮した調整処理と呼ぶ。この処理は、先ず横方向に関して行われ、これを画面サイズを考慮した調整処理（横）と表す。この方法については後述する。
【００４４】
画面サイズを考慮した調整処理（横）が終了すると、レイアウトデータ生成部１０９は、縦にスクロール可能か否かを判定する（ステップＳＴ１０５）。このとき、縦にスクロール可能であると判定されると、レイアウトデータ生成処理を終了する。
【００４５】
また、縦にスクロール不可能と判定されると、レイアウトデータ生成部１０９は、ステップＳＴ１０３における画面サイズ無視の調整処理によりレイアウトの高さが変更されていると判断して、レイアウトの高さを画面サイズの高さまで縮小する処理を行う（ステップＳＴ１０６）。例えば、レイアウトの高さをＨ２まで縮小したとすると、レイアウトデータの各ＧＵＩ部品のｙ座標Ｙに（Ｙ×Ｈ１／Ｈ２）を代入する。
【００４６】
この後、レイアウトデータ生成部１０９は、縦方向に関して画面サイズを考慮した調整処理を行って（ステップＳＴ１０７）、レイアウトデータ生成処理を終了する。この一連の処理により、図８に示すような画面のレイアウトデータが生成され、表示装置１１１によって表示される。
【００４７】
一方、ステップＳＴ１０２において、横スクロール可能であると判定された場合、レイアウトデータ生成部１０９は、さらに縦スクロール可能か否かを判定する（ステップＳＴ１０８）。このとき、縦スクロールが可能であった場合、レイアウトデータ生成部１０９は、ステップＳＴ１０３と同様に、画面サイズ無視の調整処理（縦）を実行する（ステップＳＴ１１１）。この処理が完了すると、レイアウトデータ生成部１０９は、ステップＳＴ１１１と同様の処理を横方向に関して行う（ステップＳＴ１１２）。この処理を画面サイズ無視の調整処理（横）と表す。
【００４８】
なお、画面サイズ無視の調整処理（横）は、画面サイズ無視の調整処理（縦）の記述中の、「縦」と「横」を読み替え、「高さ」と「幅」、及び「ｘ」と「ｙ」をそれぞれ読み替えた処理である。画面サイズ無視の調整処理（横）を終了すると、レイアウトデータ生成部１０９は、レイアウトデータの生成処理を終了する。
【００４９】
また、ステップＳＴ１０８において、縦スクロールが不可能と判定された場合、レイアウトデータ生成部１０９は、画面サイズ無視の調整処理（横）を実行する（ステップＳＴ１０９）。引き続き、レイアウトデータ生成部１０９は、画面サイズを考慮した調整処理（縦）を行い（ステップＳＴ１１０）、レイアウトデータ生成処理を終了する。なお、画面サイズ無視の調整処理は、最初に縦方向に行い、次に横方向に行うように記述したが、この順序は逆でもよく同様の効果を得られる。
【００５０】
次に、画面サイズ無視の調整処理（縦）について詳細に説明する。
図９は、図６中のステップＳＴ１０３における画面サイズ無視の調整処理（縦）の流れを示すフローチャートである。
先ず、レイアウトデータ生成部１０９は、レイアウトデータ中のＧＵＩ部品に関し、ｙ座標の小さい順に、他のＧＵＩ部品と表示が重畳しているか否かを調査するためのＧＵＩ部品を抽出する（ステップＳＴ２０１）。この重畳調査は、ステップＳＴ２０２においてレイアウトデータ中の全てのＧＵＩ部品が調査対象として抽出されたと判定されるまで実行され、全てのＧＵＩ部品に関して調査が終了していると判定されれば画面サイズ無視の調整処理を終了する。全てのＧＵＩ部品が調査対象として抽出されていない場合、レイアウトデータ生成部１０９は、ステップＳＴ２０１で抽出した調査対象のＧＵＩ部品にパラメータｇ０を設定する（ステップＳＴ２０３）。
【００５１】
続いて、レイアウトデータ生成部１０９は、ＧＵＩ部品ｇ０が他のＧＵＩ部品と重畳していないかどうかを判定する（ステップＳＴ２０４）。ＧＵＩ部品間の表示重畳の判定は、２つのＧＵＩ部品に関してそれらの位置とサイズのプロパティを用いてＧＵＩ部品の表示領域の重なりを調べることにより行われる。このとき、重畳がないと判定されると、ステップＳＴ２０２の処理に戻って次のＧＵＩ部品を調査する。
【００５２】
一方、重畳がある場合、レイアウトデータ生成部１０９は、ＧＵＩ部品ｇ０と重畳しているＧＵＩ部品にパラメータｇ１を設定し、ＧＵＩ部品ｇ０，ｇ１間で表示が重畳している領域の縦のサイズをａ１、横のサイズをｂ１として、ａ１＜ｂ１であるか否かを判定する（ステップＳＴ２０５）。ここで、ａ１＜ｂ１であると判定されると、レイアウトデータ生成部１０９は、ＧＵＩ部品ｇ１と、このＧＵＩ部品ｇ１より大きなｙ座標を持つ全てのＧＵＩ部品のｙ座標にａ１を足し合わせる（ステップＳＴ２０６）。
【００５３】
続いて、レイアウトデータ生成部１０９は、ステップＳＴ２０６でｙ座標の値をシフトさせたＧＵＩ部品が画面サイズからはみ出るか否かを調べる（ステップＳＴ２０７）。このはみ出しの調査では、ＧＵＩ部品の位置とサイズのプロパティを用いて、機種情報１０８から読み出した画面サイズ１０８ａと合わせて、画面からはみ出す領域が調べられる。このとき、ｙ座標の値をシフトさせたＧＵＩ部品が画面サイズからはみ出ると判定されると、レイアウトデータ生成部１０９は、はみ出した領域の縦サイズａ２を求め、レイアウトデータにおける当該ＧＵＩ部品についてのサイズの高さＨＥＩＧＨＴをａ２だけ増加させる（ステップＳＴ２０８）。
【００５４】
また、ステップＳＴ２０８の処理の完了後、若しくは、ステップＳＴ２０５において、ａ１＜ｂ１でないと判定されると、レイアウトデータ生成部１０９は、ステップＳＴ２０２の処理に戻って次のＧＵＩ部品に対する重畳調査処理に移行する。
【００５５】
次に、画面サイズを考慮した調整処理（横）について詳細に説明する。
図１０は、図６中のステップＳＴ１０４における画面サイズを考慮した調整処理（横）の流れを示すフローチャートである。
先ず、レイアウトデータ生成部１０９は、レイアウトデータ中の各ＧＵＩ部品の位置に関するプロパティ値を用いて、画面左に配置されるＧＵＩ部品から順に、他のＧＵＩ部品と表示が重畳しているか否かを調査するためのＧＵＩ部品を抽出する（ステップＳＴ３０１）。この重畳調査は、ステップＳＴ３０２においてレイアウトデータ中の全てのＧＵＩ部品が調査対象として抽出されたと判定されるまで実行され、全てのＧＵＩ部品に関して調査が終了していると判定されれば画面サイズを考慮した調整処理を終了する。全てのＧＵＩ部品が調査対象として抽出されていない場合、レイアウトデータ生成部１０９は、ステップＳＴ３０１で抽出した調査対象のＧＵＩ部品にパラメータｃ０を設定する（ステップＳＴ３０３）。
【００５６】
続いて、レイアウトデータ生成部１０９は、ＧＵＩ部品ｃ０に関して移動距離決定処理を行う。移動距離決定処理とは、ＧＵＩ部品ｃ０の重畳を解消するための調整をした際に、影響を受けるＧＵＩ部品群をＧＵＩ部品リストに登録してゆき、ＧＵＩ部品リスト中の全てのＧＵＩ部品に対する移動距離を算出する処理である。
【００５７】
この処理では、例えば図１１に示すようにＧＵＩ部品１００１とＧＵＩ部品１００２とが重畳した場合であれば、先ず画面右側のＧＵＩ部品１００２から玉突きの要領でさらに右側に移動させることを考え、画面端のＧＵＩ部品１００６まで順にＧＵＩ部品リストに登録しながら移動距離を決定していき、それによってＧＵＩ部品１００６が画面内に収まるか否かを調べ、収まらなければ反対に画面左側へ同様に玉突きの要領で移動させ、さらに画面内に収まるか否かを調べる。
【００５８】
ここで、上述したようなＧＵＩ部品リストをＬＩＳＴと称し、ＧＵＩ部品ｃの移動距離をＭｏｖ［ｃ］とする。Ｍｏｖは配列であり、ＧＵＩ部品ｃのＩＤを添え字とするが、ここでは略記してＭｏｖ［ｃ］と表す。また、ＧＵＩ部品が画面に収まらなかったことを示す値をｆｌａｇとする。
【００５９】
なお、移動距離決定処理は、レイアウトデータ生成部１０９により、移動距離を決定するＧＵＩ部品ｃと、その時点で必要と判断されるＧＵＩ部品ｃの移動距離ｄとを用いて実行される。そこで、この処理を移動距離決定処理（ｃ，ｄ）と表すことにする。この場合における移動距離は、横方向への移動距離を表す。以降、右を正方向、左を負方向として扱う。移動距離決定処理については後述する。
【００６０】
レイアウトデータ生成部１０９は、ステップＳＴ３０３で調査対象のＧＵＩ部品にパラメータｃ０を設定すると、ステップＳＴ３０４で移動距離決定処理の初期値として移動距離ｄ０に０を設定し、ステップＳＴ３０５でｆｌａｇにも０を設定する。さらに、レイアウトデータ生成部１０９は、調整対象ＧＵＩ部品のリストであるＬＩＳＴをクリアする（ステップＳＴ３０６）。
【００６１】
続いて、ステップＳＴ３０７において、レイアウトデータ生成部１０９は、後述する内容で移動距離決定処理（ｃ０，ｄ０）を実行する。このあと、レイアウトデータ生成部１０９は、ステップＳＴ３０７で得られたＧＵＩ部品ｃ０の移動距離Ｍｏｖ［ｃ０］がｄ０と等しいか否かを判定する（ステップＳＴ３０８）。このとき、両者が等しければ、ＧＵＩ部品ｃ０を移動距離ｄ０だけ移動させることが可能と判断し、ＬＩＳＴ中の全てのＧＵＩ部品を、ＬＩＳＴの最後のＧＵＩ部品（画面右端のＧＵＩ部品）から移動距離Ｍｏｖ［ｃ０］だけ移動させる（ステップＳＴ３１１）。そして、当該ＧＵＩ部品をＬＩＳＴから削除してステップＳＴ３０２の処理に戻る。
【００６２】
また、ＧＵＩ部品ｃ０の移動距離Ｍｏｖ［ｃ０］がｄ０と等しくない場合、レイアウトデータ生成部１０９は、ｆｌａｇの値が２に等しいか否かを判定する（ステップＳＴ３０９）。ここで、ｆｌａｇの値が２に等しくないと判定されると、レイアウトデータ生成部１０９は、まだＧＵＩ部品が画面の両端ではみ出ると判定されていないため、ステップＳＴ３１０で移動距離ｄ０にＭｏｖ［ｃ０］を代入し、再びステップＳＴ３０７に戻って移動距離決定処理（ｃ０，ｄ０）を実行する。
【００６３】
これまでの処理により重畳がなくなれば、生成されたレイアウトデータは、レイアウト作成者の作成したものと大きな変化のない画面が表示装置１１１に表示される。しかしながら、これまでの処理だけでは画面に収まりきらないことがある。このような場合に、プリファレンス計算部１１０を用いてプリファレンスに基づいて調整方法を求める。
【００６４】
ステップＳＴ３０９において、ｆｌａｇの値が２に等しいとの判定結果が得られると、このＧＵＩ部品の重畳を解消させるために移動を行うと、画面の左右両端ではみ出ることを意味し、画面内に収まらないことになる。なお、このとき、絶対値｜Ｍｏｖ［ｃ０］｜が、ＬＩＳＴ中のＧＵＩ部品群を並べたときに画面からはみ出る大きさを表している。
【００６５】
そこで、ステップＳＴ３０９でｆｌａｇの値が２に等しいとの判定結果が得られると、レイアウトデータ生成部１０９の処理から、ステップＳＴ３１２におけるプリファレンス計算部１１０によるプリファレンス計算処理に移行する。このとき、レイアウトデータ生成部１０９は、プリファレンス計算部１１０に対して、レイアウトデータ、ＬＩＳＴ及びＰＬＩＳＴを送出する。なお、ＰＬＩＳＴとは、変更する候補となるプロパティをまとめた変更候補プロパティリストである。ここでは、ＰＬＩＳＴ中には、位置、サイズ、横方向のガイド、可視性のプロパティが含まれているものとする。
【００６６】
プリファレンス計算部１１０では、得られたデータから、ステップＳＴ３１２でプリファレンス値による計算を行い、ＬＩＳＴ中のどのＧＵＩ部品に対し、ＰＬＩＳＴ中のどのプロパティを変更して調整を行うのかを決定する。
【００６７】
そして、プリファレンス計算部１１０は、ＬＩＳＴ中の移動調整対象のＧＵＩ部品とＰＬＩＳＴ中のプロパティ並びにＧＵＩ部品とその各プロパティに対して計算したスコアを対応付けた情報を、調整方法のリストとしてレイアウトデータ生成部１０９に返信する。
【００６８】
さらに、プリファレンス計算部１１０は、調整方法として、プロパティを変更するＧＵＩ部品のリストであるＣＬＩＳＴ（ＧＵＩ候補登録部）と、ＣＬＩＳＴ中のＧＵＩ部品の変更するプロパティが設定されるＰ（プロパティ候補登録部）と、ＣＬＩＳＴ中の各ＧＵＩ部品の、Ｐに設定されているプロパティに対応するスコアのリストであるＳＬＩＳＴ（スコア登録部）を生成してレイアウトデータ生成部１０９に返信する。なお、以降では、Ｐに設定されているプロパティを「プロパティＰ」と表現する。
【００６９】
レイアウトデータ生成部１０９は、プリファレンス計算部１１０より指示された内容に基づき、レイアウトにおけるＧＵＩ部品の横方向に関する調整を行う（ステップＳＴ３１３）。この処理をプリファレンス計算結果による調整処理（横）と表す。この処理の詳細については後述する。
【００７０】
プリファレンス計算結果による調整処理（横）が終了すると、レイアウトデータ生成部１０９は、ステップＳＴ３０３に戻ってさらに移動距離決定処理を実行する。
【００７１】
ここで、移動距離決定処理について詳細に説明する。
図１２は、図１０中のステップＳＴ３０７における移動距離決定処理の主な流れを示すフローチャートであり、ＧＵＩ部品を識別するパラメータをｃとし、移動距離を表すパラメータをｄとする。
先ず、レイアウトデータ生成部１０９は、ＬＩＳＴにＧＵＩ部品ｃを登録する（ステップＳＴ４０１）。次に、ステップＳＴ４０２において、レイアウトデータ生成部１０９は、ＧＵＩ部品ｃがｄだけ移動することが可能か否かを判定する。この処理は、図１０中のステップＳＴ３０８に相当し、例えばＭｏｖ［ｃ］＝ｄと判定された場合が、ＧＵＩ部品ｃがｄだけ移動することが可能、つまりＧＵＩ部品ｃがｄだけ移動しても他のＧＵＩ部品と重畳したり画面サイズからはみ出したりしない場合となる。
【００７２】
ステップＳＴ４０２においてＧＵＩ部品ｃがｄだけ移動することが可能であると判定されると、レイアウトデータ生成部１０９は、Ｍｏｖ［ｃ］にｄを代入して（ステップＳＴ４０３）、移動距離決定処理を終了する。なお、対象となるＧＵＩ部品ｃが移動する方向にある、ＧＵＩ部品ｃに最も近いＧＵＩ部品のパラメータをｃ’とする。
【００７３】
一方、ＧＵＩ部品ｃがｄだけ移動することができないと判定されると、レイアウトデータ生成部１０９は、ＧＵＩ部品ｃがＧＵＩ部品ｃ’との間で表示に重畳が生じているか否かを判定する（ステップＳＴ４０４）。図１１に示したＧＵＩ部品１００１とこれに隣接して最も近いＧＵＩ部品１００２との間のように、ＧＵＩ部品ｃとＧＵＩ部品ｃ’が重畳していれば、ＧＵＩ部品ｃ’を重畳領域の幅だけ移動させなければならない。このような追加する移動距離を追加移動距離ｄ２と称する。
【００７４】
ステップＳＴ４０４でＧＵＩ部品ｃとＧＵＩ部品ｃ’が重畳していると判定されると、レイアウトデータ生成部１０９は、ｄが正の値であるか否かを判定する（ステップＳＴ４０５）。このとき、ｄが０以上の値で正ならば、ステップＳＴ４０６に進み、追加移動距離ｄ２に重畳領域の幅を代入する。また、ｄが負の値であれば、レイアウトデータ生成部１０９は、追加移動距離ｄ２に（−１×重畳領域の幅）を代入する（ステップＳＴ４０７）。
【００７５】
また、ステップＳＴ４０４において、ＧＵＩ部品ｃとＧＵＩ部品ｃ’が重畳していないと判定されると、レイアウトデータ生成部１０９は、ＧＵＩ部品ｃが｜ｄ３｜＜｜ｄ｜という関係にある距離ｄ３だけ移動すると、ＧＵＩ部品ｃ’と接するか否かを判定する（ステップＳＴ４０８）。ここで、ＧＵＩ部品ｃ’に接すると判定されると、レイアウトデータ生成部１０９は、追加移動距離ｄ２に（−ｄ３）を代入する（ステップＳＴ４０９）。
【００７６】
ステップＳＴ４０６、ステップＳＴ４０７、ステップＳＴ４０９の処理で追加移動距離ｄ２の値を設定すると、レイアウトデータ生成部１０９は、移動距離決定処理（ｃ’，ｄ＋ｄ２）を再帰的に実行する（ステップＳＴ４１０）。これにより決定されたＭｏｖ［ｃ’］を用いて、レイアウトデータ生成部１０９は、ステップＳＴ４１１で移動距離Ｍｏｖ［ｃ］に（Ｍｏｖ［ｃ’］−ｄ２）を代入し、移動距離決定処理を終了する。
【００７７】
一方、ステップＳＴ４０８における条件が成り立たない（距離ｄ３だけ移動してもＧＵＩ部品ｃ’に接しない）ということは、ＧＵＩ部品ｃはｄだけ移動すると画面サイズからはみ出ることを意味する。このとき、レイアウトデータ生成部１０９は、｜ｄ４｜＜｜ｄ｜という関係にある距離ｄ４以上の移動で画面サイズからはみ出るとすると、Ｍｏｖ［ｃ］にｄ４を代入する（ステップＳＴ４１２）。このあと、レイアウトデータ生成部１０９は、ステップＳＴ４１３でｆｌａｇに１を足して、移動距離決定処理を終了する。
【００７８】
次に、プリファレンス計算結果による調整処理（横）の詳細について説明する。
図１３は、図１０中のステップＳＴ３１３におけるプリファレンス計算結果による調整処理（横）の流れを示すフローチャートである。
先ず、レイアウトデータ生成部１０９は、変更すべきプロパティＰが可視性であるか否かを判定する（ステップＳＴ５０１）。このとき、プロパティＰが可視性であれば、ＣＬＩＳＴ中のＧＵＩ部品を非表示に設定する（ステップＳＴ５０４）。プロパティＰが可視性でなければ、ステップＳＴ５０２に進み、変更すべきプロパティＰがサイズであるか否かを判定する。
【００７９】
ここで、プロパティＰがサイズであれば、レイアウトデータ生成部１０９は、画面からはみ出した幅｜Ｍｏｖ［ｃ０］｜を、ＣＬＩＳＴ中のＧＵＩ部品に対して、ＳＬＩＳＴ中のスコアの逆比を用いて、対応するＧＵＩ部品に配分し、各ＧＵＩ部品を配分されたサイズだけ縮小する（ステップＳＴ５０５）。このように、レイアウトデータ生成部１０９は、スコアの逆比でＧＵＩ部品のサイズを縮小するというような調整方法を決定する。また、ステップＳＴ５０２でプロパティＰがサイズでないと判定されれば、ステップＳＴ５０３に進む。
【００８０】
ステップＳＴ５０３において、レイアウトデータ生成部１０９は、変更すべきプロパティＰが位置であるか否かを判定する。このとき、プロパティＰが位置であると判定されると、ＣＬＩＳＴ中のＧＵＩ部品を、その左右に配置されたＧＵＩ部品との間で表示が重畳しないように下へ移動させる（ステップＳＴ５０６）。
【００８１】
一方、ステップＳＴ５０３でプロパティＰが位置でないと判定されると、レイアウトデータ生成部１０９は、変更すべきプロパティＰが横方向のガイドであると判断し、ＣＬＩＳＴ中のＧＵＩ部品に続いて配置される同じガイド値を持つ一連のＧＵＩ部品群を改行する（ステップＳＴ５０７）。なお、改行するという処理については後述する。
【００８２】
レイアウトデータ生成部１０９は、ステップＳＴ５０６やステップＳＴ５０７でＧＵＩ部品の位置を移動させたり改行したりした際、他のＧＵＩ部品と表示が重畳するか否かを判定する（ステップＳＴ５０８）。ここで、他のＧＵＩ部品と重畳しなければ、処理を終了する。一方、他のＧＵＩ部品と重畳すると判定されると、レイアウトデータ生成部１０９は、移動させたＧＵＩ部品よりｙ座標の大きな全てのＧＵＩ部品に対して、重畳領域の高さ分だけｙ座標を増加させる（ステップＳＴ５０９）。
【００８３】
ステップＳＴ５０９でｙ座標を増加させると、レイアウトデータ生成部１０９は、画面サイズからＧＵＩ部品がはみ出すか否かを判定する（ステップＳＴ５１０）。このとき、画面サイズからＧＵＩ部品がはみ出さなければ、処理を終了する。また、画面サイズからＧＵＩ部品がはみ出したと判定されると、レイアウトデータにおけるＧＵＩ部品のサイズの高さＨＥＩＧＨＴをはみ出した領域の高さだけ増加（ステップＳＴ５１１）し、処理を終了する。
【００８４】
上述した画面サイズを考慮した調整処理（横）及びプリファレンス計算結果による調整処理（横）の内容は、横方向のみに限定しての記述である。これらの処理を縦方向に関する処理とする場合、上述した内容、図１０及び図１３のフローチャートにおける、「横」を「縦」と読み替え、「左」を「上」、及び「右」を「下」と読み替える。また、「幅」を「高さ」と読み替え、「ｘ」も「ｙ」と読み替える。
【００８５】
但し、図６中のステップＳＴ１０７における画面サイズを考慮した調整処理（縦）の実行時に、図１３中のステップＳＴ５１０で画面からＧＵＩ部品がはみ出す場合、レイアウトデータにおけるＧＵＩ部品の幅を増加させない。この場合、フォントサイズをさらに小さくしたり、適当なＧＵＩ部品を非表示にする等、画面内に収まるような処理を行う。この処理方法は、装置で限定してもよいし、レイアウト定義１０２に設定可能とし、レイアウト作成者に選択させてもよい。
【００８６】
また、適当なＧＵＩ部品を非表示にする処理としては、ＰＬＩＳＴに可視性を登録し、ここまでの処理で既にＧＵＩ部品が登録されているＬＩＳＴと合わせてプリファレンス計算処理を行う。この結果として、ＣＬＩＳＴに登録されているＧＵＩ部品を非表示にすることで実現できる。また、非表示にせず、他のＧＵＩ部品を重ねて上書きするように表示してもよい。
【００８７】
例えば、プリファレンス計算処理によって求められたＳＬＩＳＴに登録されているスコアを用いて、スコアがある閾値σよりも小さければ、ＣＬＩＳＴ中のＧＵＩ部品を非表示にし、σよりも大きければ、非表示にはせず、他のＧＵＩ部品を重ねて上書きするように表示するなどの調整方法を決定する。
【００８８】
図１４は、図１０中のステップＳＴ３１２におけるプリファレンス計算処理の流れを示すフローチャートである。この図に沿って、本発明において導入した、レイアウト用プロパティに対するプリファレンスをどのように用いてレイアウト調整方法を決定するかについて説明する。
プリファレンス計算部１１０が、レイアウトデータ、ＧＵＩ部品のリストＬＩＳＴ及び変更候補プロパティのリストＰＬＩＳＴを基にして、変更するＧＵＩ部品のリストＣＬＩＳＴと、変更するプロパティＰ、及びＣＬＩＳＴ中の各ＧＵＩ部品のプロパティＰに対応するスコアのリストＳＬＩＳＴを求める。
【００８９】
ステップＳＴ６０１において、プリファレンス計算部１１０は、ＰＬＩＳＴのサイズが１であるか否か、つまりＰＬＩＳＴに１つだけプロパティが登録されているか否かを判定する。このとき、ＰＬＩＳＴのサイズが１であれば、ステップＳＴ６０２に進み、ＰＬＩＳＴ中のプロパティにパラメータＰを設定する。次に、プリファレンス計算部１１０は、ＬＩＳＴ中のＧＵＩ部品に対して、プロパティＰのプリファレンス値が最小のＧＵＩ部品を求めてＣＬＩＳＴに登録すると共に、ＳＬＩＳＴにＣＬＩＳＴ中の各ＧＵＩ部品に関してプロパティＰのプリファレンス値をスコアとして登録する（ステップＳＴ６０３）。
【００９０】
一方、ステップＳＴ６０１でＰＬＩＳＴのサイズが１でなければ、プリファレンス計算部１１０は、レイアウト調整方法を決定するための基準値であるスコアを、各プロパティのプリファレンス値から求める（ステップＳＴ６０４）。ここで、ＰＬＩＳＴに、ＧＵＩ部品のプロパティとして、例えば可視性、サイズ、位置、ガイドが設定されている場合を考える。
【００９１】
なお、ガイドに関しては、プリファレンス計算処理を呼び出した画面サイズを考慮した調整処理が、縦若しくは横のどちらの方向に関してのものかによって、縦方向のガイド若しくは横方向のガイドのいずれかとなるが、ここでは、横方向のガイドであるとして処理を記述する。縦方向のガイドである場合も、処理の内容は同様である。
【００９２】
上述したＰＬＩＳＴの構成である場合、プリファレンス計算部１１０は、レイアウト調整方法を決定するためのスコアとして、可視性のプロパティのプリファレンスに対してＰｖ、サイズのプロパティのプリファレンスに対してＰｓ、位置のプロパティのプリファレンスに対してＰｐ、ガイドのプロパティのプリファレンスに対してＰｌを算出する。具体的には、下記の通りである。
１．Ｐｖについて
プリファレンス計算部１１０は、ＰＬＩＳＴにおける可視性のプリファレンスについて、可視性のプリファレンスの最小値と所定の閾値τとの比較結果から、可視性のプリファレンスの最小値が閾値τより小さければ、スコアＰｖを（プリファレンスの下限値−１）とする。一方、可視性のプリファレンスの最小値が閾値τ以上であれば、Ｐｖを（プリファレンスの上限値＋１）とする。
２．Ｐｓについて
プリファレンス計算部１１０は、ＰＬＩＳＴにおけるサイズのプリファレンスの平均値をＰｓとする。このとき、ＬＩＳＴ中のＧＵＩ部品からサイズのプリファレンスについて上限値を持つもの（サイズ変更を許さないもの）と、サイズが既に最小サイズであるものを除いて、サイズのプリファレンス値の平均を求める。
３．Ｐｐについて
プリファレンス計算部１１０は、ＰＬＩＳＴにおける位置のプリファレンスの最小値をＰｐとする。このとき、ガイド値を持つＧＵＩ部品に関しては、同じガイド値を持つＧＵＩ部品郡中で位置のプリファレンス値が最大のものを、そのＧＵＩ部品の位置のプリファレンスとみなす。
４．Ｐｌについて
プリファレンス計算部１１０は、ＰＬＩＳＴにおける横方向のガイドのプリファレンスの最小値をＰｌとする。
【００９３】
上述のようにして、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌを求めると、これらの値に従ってプロパティを変更するＧＵＩ部品及びそのプロパティＰを決定する。例えば、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌをそれぞれ比較して、これらのうちの最小値に基づいて調整方針を決定する。
【００９４】
先ず、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌをそれぞれ比較して、Ｐｖが最小であるか否かを判定する（ステップＳＴ６０５）。このとき、Ｐｖが最小であれば、可視性のプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、その変更するプロパティＰを可視性に設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の可視性のプリファレンス値をスコアとしてＳＬＩＳＴに登録する（ステップＳＴ６０８）。
【００９５】
ステップＳＴ６０５でＰｖが最小でない場合、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌをそれぞれ比較して、Ｐｓが最小であるか否かを判定する（ステップＳＴ６０６）。このとき、Ｐｓが最小であれば、ステップＳＴ６０９に進んで、Ｐｓを求める際に用いたＧＵＩ部品のリストをＣＬＩＳＴに登録し、変更するプロパティＰをサイズに設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品のサイズのプリファレンス値をスコアとしてＳＬＩＳＴに登録する。
【００９６】
ステップＳＴ６０６でＰｓが最小でない場合、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌをそれぞれ比較して、Ｐｐが最小であるか否かを判定する（ステップＳＴ６０７）。このとき、Ｐｐが最小であれば、ステップＳＴ６１０に進んで、Ｐｐを持つＧＵＩ部品、つまり位置のプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、変更するプロパティＰを位置に設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の位置のプリファレンス値をスコアとしてＳＬＩＳＴに登録する。
【００９７】
ステップＳＴ６０６でＰｐが最小でない、つまりＰｌが最小である場合、プリファレンス計算部１１０は、Ｐｌを持つＧＵＩ部品、つまり横方向のガイドのプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、変更するプロパティＰを横方向のガイドに設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の横方向のガイドのプリファレンス値をスコアとしてＳＬＩＳＴに登録する（ステップＳＴ６１１）。
【００９８】
次に、具体例を示してプリファレンス計算結果を利用したレイアウト処理を説明する。
図１５は、図３に示したレイアウト定義におけるＧＵＩ部品のレイアウトの一例を示す図であり、（ａ）はプリファレンス計算前、（ｂ）はプリファレンス計算結果を利用したレイアウトを示している。図１５において、ＧＵＩ部品１５０１〜１５０６は、図３に示したレイアウト定義１０２におけるＩＤが９から１４までのＧＵＩ部品である。τ＝３と仮定すると、図３に示した各プロパティの値から、ＧＵＩ部品１５０１〜１５０６に対し、（可視性のプリファレンスの最小値）＞τなので、Ｐｖが（プリファレンスの上限値＋１）＝１１、Ｐｓが上限値１０を除く平均により（９＋８×２）／３で約８となり、Ｐｐが８、Ｐｌが７となる。
【００９９】
Ｐｖ、Ｐｓ、Ｐｐ、ＰｌのうちでＰｌが最小であるので、プリファレンス計算部１１０は、このＰｌを持つＩＤが１０のＧＵＩ部品１５０２をＣＬＩＳＴに登録すると共に、変更するプロパティＰを横方向のガイドに設定し、ＣＬＩＳＴ中のＧＵＩ部品１５０２の横方向のガイドのプリファレンス値をスコアとしてＳＬＩＳＴに登録する。
【０１００】
この結果を受け、レイアウトデータ生成部１０９は、図１０中のステップＳＴ３１３のプリファレンス計算結果による調整処理において、プロパティＰが横方向のガイドであることから、図１５（ｂ）に示すように、ＣＬＩＳＴ中のＧＵＩ部品１５０２に続く領域に配置をせず、改行するレイアウトデータを生成する。
【０１０１】
次に、この改行処理について説明する。
ＧＵＩ部品１５０１〜１５０６は、図３に示すように同じ横方向のガイドの値「５」を持っている。そこで、これらＧＵＩ部品１５０１〜１５０６の集合をＧと表す。また、図１５（ａ）に示す配置において、ＣＬＩＳＴ中のＧＵＩ部品１５０２より右に配置され、これに最も１５０２に近いＧＵＩ部品１５０３と、Ｇに属するＧＵＩ部品の中で最もｘ座標の小さいＧＵＩ部品１５０１とのｘ座標の差をＸとする。さらに、Ｇに属するＧＵＩ部品のうち、ＧＵＩ部品１５０２より右側に配置されるＧＵＩ部品の集合をＧ２とする。
【０１０２】
この条件で、上述のようなＣＬＩＳＴ中のＧＵＩ部品１５０２に続く領域に配置をせず、改行する処理を行う場合、Ｇ２に属する全てのＧＵＩ部品のｘ座標からＸを引き算し、Ｇ２中の全てのＧＵＩ部品が、Ｇに属する他のＧＵＩ部品と重畳しないように下へ移動させる。このようなレイアウト上のグループ設定により改行処理を実行する。
【０１０３】
以上のように、この実施の形態１によれば、ＧＵＩ部品のレイアウトに関する各プロパティに対してプリファレンスを設定し、プリファレンス計算部１１０によるプリファレンス計算結果に基づいてレイアウト調整方法の候補となるＧＵＩ部品を選択し、これに基づいてレイアウト調整を行うので、画面の任意の位置にＧＵＩ部品を配置する自由なレイアウト環境を提供しつつ、本実施の形態１を適用した装置の機種毎の画面（表示装置１１１の画面）に合わせて動的にレイアウトすることができる。
【０１０４】
また、特許文献１に代表される従来の技術ように、ＧＵＩ部品単位で設定した配置順や拡大優先度のみからレイアウト調整する処理では、ＧＵＩ部品の表示、非表示の制御や、隙間を埋めることしかできない。これに対して、この実施の形態１によれば、上述したようにＧＵＩ部品の移動等のレイアウト変更による調整についても対応可能である。
【０１０５】
さらに、ＧＵＩ部品のレイアウトに関するプロパティ単位でプリファレンスを設定することで、レイアウト調整の際にレイアウト作成者の意図を反映させることができる。例えば、プリファレンス値によってＧＵＩ部品の位置とサイズのどちらを変更するのがよいか判定することができ、レイアウト作成者の意図に沿ったレイアウト調整が可能である。
【０１０６】
実施の形態２．
上記実施の形態１ではレイアウト定義中に設定したガイドというプロパティにより複数のＧＵＩ部品をグループとしてレイアウトする処理を示したが、本実施の形態２は、基準点というプロパティを設け、これによって一列に並んでいるＧＵＩ部品群を表現するものである。
【０１０７】
本実施の形態２は、上記実施の形態１と基本的な構成自体は同一であるが、レイアウト定義１０２に基準点というプロパティを設け、これに応じてレイアウトデータ生成部１０９により本実施の形態２に特有な処理がなされる。具体的には、レイアウトデータ生成部１０９による画面サイズを考慮した調整処理、この画面サイズを考慮した調整処理における移動距離決定処理が上記実施の形態１と異なる。
【０１０８】
図１６は、この発明の実施の形態２によるレイアウト装置のレイアウト定義の一例を示す図であり、上記実施の形態１で示した図３中のレイアウト定義１０２のプロパティ部１０５に基準点１６０１を追加したものである。なお、レイアウト定義１０２において、基準点１６０１にも対応するプリファレンス部１０６を設けて、プリファレンスの指定が可能である。
【０１０９】
また、ＧＵＩ部品は矩形状の枠で規定されており、その左上、上端中央、右上、左端中央、右端中央、左下、下端中央、右下に８つの基準点候補がある。本実施の形態では、これら基準点候補のうちからそのＧＵＩ部品の基準点を決定する。そして、複数のＧＵＩ部品の基準点が一列に並んでいるもの、即ち複数のＧＵＩ部品が横に並ぶ場合には基準点のｘ座標が同じものを、縦に並ぶ場合には基準点のｙ座標が同じものを、列をなしているＧＵＩ部品群とみなす。
【０１１０】
図１７は、上述した基準点を用いてＧＵＩ部品を列に配置した例を示す図である。図１７において、ＧＵＩ部品１７０１は左上に基準点１７０４を持ち、ＧＵＩ部品１７０２は左下に基準点１７０５を持ち、ＧＵＩ部品１７０３は左端中央に基準点１７０６を持つ。なお、破線１７０７は、説明の便宜上記載したものであり、レイアウト作成者が配置したＧＵＩ部品ではなく、実際の画面には表示されない。
【０１１１】
図１７に示すように、各ＧＵＩ部品１７０１〜１７０３の基準点１７０４〜１７０６は、破線１７０７上に位置している。つまり、ＧＵＩ部品１７０１〜１７０３は、列をなしているＧＵＩ部品群である。このように、レイアウト上、複数のＧＵＩ部品が一列に並んでいるＧＵＩ部品群に対して、ＧＵＩ部品のどこを基準として並んでいるのか、より厳密に定義できる。さらに、基準点のプリファレンスにより、列をなすＧＵＩ部品群中で最も重要で基準となるＧＵＩ部品を表現することが可能となり、より自由なレイアウトが可能になる。
【０１１２】
この基準点のプロパティを用いて、プリファレンス計算部１１０が、移動距離決定処理中で移動させるＧＵＩ部品を決定する。この場合の処理は、上記実施の形態１における、画面サイズを考慮した調整処理及び移動距離決定処理を、後述するように変更することで実現できる。
【０１１３】
次に動作について説明する。
図１８は、実施の形態２によるレイアウト装置の画面サイズを考慮した調整処理（横）を示すフローチャートである。図１８において、ステップＳＴ３０１からステップＳＴ３０６までの処理は、上記実施の形態１と同様である。
ステップＳＴ７０１で、レイアウトデータ生成部１０９は、基準となるＧＵＩ部品をＧｍａｘとし、ＧＵＩ部品ｃ０をＧｍａｘの初期値に設定する。なお、基準となるＧＵＩ部品とは、移動距離決定処理において、画面に収まりきらないと判定されない限り移動させないＧＵＩ部品を指す。
【０１１４】
ステップＳＴ７０１に続き、本実施の形態２に特有の移動距離決定処理が実行される。
図１９は、実施の形態２によるレイアウト装置の移動距離決定処理を示すフローチャートである。図１９において、ステップＳＴ４０１からステップＳＴ４０９まで、ステップＳＴ４１２、ステップＳＴ４１３の処理は、上記実施の形態１と同様である。
【０１１５】
ステップＳＴ４０６、ステップＳＴ４０７、ステップＳＴ４０９の処理で追加移動距離ｄ２の値を設定すると、レイアウトデータ生成部１０９は、ＧＵＩ部品が画面内に収まらなかったことを示す値を設定するｆｌａｇが０であるか否かを判定する（ステップＳＴ８０１）。
【０１１６】
ステップＳＴ８０１でｆｌａｇの値が０であれば、レイアウトデータ生成部１０９は、Ｇｍａｘと、これの移動により影響を受けるＧＵＩ部品ｃ’を、調査対象のＧＵＩ部品のリストであるＬＩＳＴに登録すると共に、変更する候補となるプロパティのリストであるＰＬＩＳＴにそれらの基準点を登録する（ステップＳＴ８０２）。このあと、レイアウトデータ生成部１０９は、プリファレンス計算部１１０に対して、レイアウトデータ、ＬＩＳＴ及びＰＬＩＳＴを送出する。
【０１１７】
プリファレンス計算部１１０は、得られたデータからプリファレンス値による計算を行い、ＬＩＳＴ中のどのＧＵＩ部品に対し、ＰＬＩＳＴ中のどのプロパティを変更して調整を行うのかを決定する（ステップＳＴ８０３）。そして、プロパティを変更するＧＵＩ部品のリストであるＣＬＩＳＴと、ＣＬＩＳＴ中のＧＵＩ部品の変更するプロパティＰと、ＣＬＩＳＴ中の各ＧＵＩ部品のプロパティＰに対応するスコアのリストであるＳＬＩＳＴとをまとめた情報を生成してレイアウトデータ生成部１０９に返信する。
【０１１８】
レイアウトデータ生成部１０９は、プリファレンス計算処理で求められたＣＬＩＳＴ中にＧｍａｘが含まれていないかを判定する（ステップＳＴ８０４）。このとき、Ｇｍａｘが含まれていなければ、ＧＵＩ部品ｃ’を移動させることを考え、移動距離決定処理（ｃ’，ｄ＋ｄ２）を再帰的に実行する（ステップＳＴ４１０）。これにより決定されたＭｏｖ［ｃ’］を用いて、レイアウトデータ生成部１０９は、ステップＳＴ４１１で移動距離Ｍｏｖ［ｃ］に（Ｍｏｖ［ｃ’］−ｄ２）を代入し、移動距離決定処理を終了する。
【０１１９】
一方、ステップＳＴ８０４でＣＬＩＳＴ中にＧｍａｘが含まれていると判定された場合、レイアウトデータ生成部１０９は、ＧＵＩ部品ｃ’を移動させることなく固定してＧＵＩ部品ｃの方を移動させることを考え、Ｍｏｖ［ｃ］に−ｄ２を代入（ステップＳＴ８０６）して、これまでと逆方向へ移動させる。
【０１２０】
ステップＳＴ８０１でｆｌａｇが０より大きい場合、ＧＵＩ部品が画面に収まりきらない状態であり、移動可能な方向が限定される。このため、プリファレンス計算処理を行わず、ＧＵＩ部品ｃ’を移動させることを考え、ステップＳＴ４１０において移動距離決定処理（ｃ’，ｄ＋ｄ２）を再帰的に実行する。このあと、レイアウトデータ生成部１０９は、移動距離決定処理を終了する。
【０１２１】
図１８のフローチャートに戻ると、ステップＳＴ３０８からステップＳＴ３１３までの処理は、上記実施の形態１と同様である。
【０１２２】
以上のように、この実施の形態２によれば、基準点プロパティ、ＧＵＩ部品の位置及びサイズのプロパティから、基準点の座標を算出し、基準点のｘ座標あるいはｙ座標が同一なＧＵＩ部品を一列に並んだＧＵＩ部品群として定義するので、一列に並んだＧＵＩ部品が、ＧＵＩ部品のどの位置を揃えて並んでいるのかというところまで厳密に定義できる。また、一列に並んだＧＵＩ部品群に対して、基準点のプリファレンス値によって列の中で基準となるＧＵＩ部品を設定することができ、レイアウト調整の際に、基準となるＧＵＩ部品をなるべく移動させないでおくことができる。
【０１２３】
なお、上記実施の形態２では、ＧＵＩ部品の矩形状枠における、例えば左上の位置（ｘ座標、ｙ座標）、サイズ（幅、高さ）、及び、基準点プロパティに基づいて基準点の座標を算出してグループ化すべきＧＵＩ部品群を特定したが、レイアウト定義１０２中のプロパティ部１０５にＧＵＩ部品の位置として基準点の座標を格納しておき、この基準点の座標値と機種情報１０８とに基づいてＧＵＩ部品の左上の座標を算出し、これを用いてレイアウトデータ生成部１０９の処理を行うようにしてもよい。
【０１２４】
これにより、レイアウト定義１０２の作成で基準点を揃えるにあたり、位置のプロパティの値を揃えるだけでよく、レイアウト定義の作成作業をより容易に行うことが可能になるという効果がある。また、基準点の算出の際に誤差も発生せず、確実に基準点を揃えることもできる。
【０１２５】
実施の形態３．
本実施の形態３は、レイアウト定義におけるＧＵＩ部品のプロパティ値の全てを予め設定することなく、他のＧＵＩ部品のプロパティを参照して値を設定するようにしたものである。
【０１２６】
本実施の形態３は、上記実施の形態１と基本的な構成自体は同一であるが、レイアウト定義１０２及びこれを用いたレイアウトデータ生成部１０９の処理が異なる。具体的には、レイアウトデータ生成部１０９による画面サイズを考慮した調整処理、この画面サイズを考慮した調整処理における移動距離決定処理が上記実施の形態１と異なる。
【０１２７】
図２０は、この発明の実施の形態３によるレイアウト装置のレイアウト定義の一例を示す図であり、上記実施の形態１で示した図３中のレイアウト定義１０２のプロパティ部１０５に参照２００１，２００２を設定可能としたものである。これら参照２００１，２００２を表す「ＩＤ［０］」は、「ＩＤが０であるＧＵＩ部品の同じプロパティを参照する」ということを意味する。これによって、異なるＧＵＩ部品のプロパティに対しても同じ座標や、同じサイズを容易に設定することができる。
【０１２８】
次に動作について説明する。
図２１は、実施の形態３によるレイアウト装置の画面サイズを考慮した調整処理（横）を示すフローチャートである。図２１において、ステップＳＴ３０１からステップＳＴ３０６までの処理は、上記実施の形態１と同様である。
【０１２９】
ステップＳＴ９０１で、レイアウトデータ生成部１０９は、移動距離決定処理の初期値設定の際、レイアウト定義１０２における参照を読み出して、ＧＵＩ部品ｃ０のプロパティを参照している値に更新する。この処理で、参照しているＧＵＩ部品のプロパティの値が変更されていた場合、それに合わせることができる。このあとのステップＳＴ３０７からステップＳＴ３１３までの処理も、上記実施の形態１と同様である。
【０１３０】
以上のように、この実施の形態３によれば、参照しているＧＵＩ部品のプロパティの値が変更されていた場合であっても、変更後の値に容易に合わせることができる。例えば、いくつかのＧＵＩ部品の幅を揃えるという指定が容易にでき、さらに自由なレイアウト作成が可能となる。
【０１３１】
実施の形態４．
図２２は、この発明の実施の形態４によるレイアウト装置の構成を示すブロック図であり、図１と同一若しくはそれに相当する構成要素には同一符号を付してある。図において、本実施の形態４によるレイアウト装置は、スキン定義記憶部２２０１に保持したスキン定義２２０２を、レイアウト定義１０２及び機種情報１０８と合わせて読み込んで、表示装置１１１の画面に合わせたレイアウトを実行する。スキンとは、ＧＵＩ部品を構成する基本的な表示部品に関する情報である。このスキンを切り替えることで、ＧＵＩ部品で実現するアプリケーションソフトの表示の外観を様々に変更することができる。このスキン定義２２０２及びスキン定義記憶部２２０１は、それぞれレイアウトを変更するための情報を定義したレイアウト変更定義及びその記憶部の一例である。なお、このレイアウト変更定義には、後述するユーザ情報も含まれるものとする。
【０１３２】
なお、スキンとアプリケーションソフトとは独立している。つまり、本発明におけるスキンは、どんなアプリケーションソフトによる表示がなされてもその見た目を反映する。また、アプリケーションソフト側では、レイアウトに対してどのようなスキンが適用されるかについて関知しない。
【０１３３】
また、スキン定義２２０２を保持するスキン定義記憶部２２０１は、上記実施の形態１で図２を用いて説明したコンピュータの記憶装置２０３であるハードディスクやＲＡＭで具現化してもよい。また、本実施の形態４によるレイアウト装置との間でデータ通信が可能な他のコンピュータの記憶装置上にスキン定義記憶部２２０１を具現化し、データ通信によりスキン定義２２０２を取得するように構成してもよい。
【０１３４】
スキン定義２２０２は、上述したスキンの情報を定義した情報であり、スキンＧＵＩ部品部２２０３及びデコレーション部２２０７が設定される。また、スキンＧＵＩ部品部２２０３には、スキンＧＵＩ部品情報２２０４としてスキンプロパティ部（レイアウト変更プロパティ部）２２０５及びスキンプリファレンス部（レイアウト変更プリファレンス部）２２０６が設定される。スキンプロパティ部２２０５には、スキンが適用された際に付加されるＧＵＩ部品であるスキンＧＵＩ部品のプロパティが保持される。スキンプリファレンス部２２０６は、各スキンＧＵＩ部品のプロパティに対するプリファレンス値が設定される。
【０１３５】
デコレーション部２２０７には、デコレーションプロパティ部（レイアウト変更プロパティ部）２２０８及びデコレーションプリファレンス部（レイアウト変更プリファレンス部）２２０９が設定される。デコレーションプロパティ部２２０８は、デコレーションのプロパティを保持する。デコレーションプリファレンス部２２０９には、デコレーションのプロパティに対応するプリファレンス値を保持する。なお、デコレーションとは、ＧＵＩ部品を構成する基本的な表示部品に関する情報であるスキンのうち、前記表示部品を装飾する情報である。例えば、ＧＵＩ部品の縁取りを想定し、ＧＵＩ部品の種類ごとにＧＵＩ部品の上下左右の縁のサイズを定義している。
【０１３６】
図２３は、図２２中のレイアウト装置のスキン定義の一例を示す図である。図に示すように、スキンＧＵＩ部品部２２０３には、スキンＧＵＩ部品毎にスキンプロパティ部２２０５及びスキンプリファレンス部２２０６が設けられており、デコレーション部２２０７には、ＧＵＩ部品の種類毎にデコレーションプロパティ部２２０８及びデコレーションプリファレンス部２２０９が設けられている。図示の例では、デコレーション部２２０７において、ラベル及びアンカーというＧＵＩ部品に対して０値が設定されてデコレーションされないことが定義されており、ボタンやテキストボックスというＧＵＩ部品についてはデコレーションされることを示している。
【０１３７】
また、図２３では、デコレーションのプロパティを縁取りのサイズのみとしているが、デコレーションとして表示する画像の名称等も指定できるようにしてもよい。スキンプロパティ部２２０５及びデコレーションプロパティ部２２０８は、レイアウト変更手段であるレイアウト変更プロパティの一例である。スキンプリファレンス部２２０６及びデコレーションプリファレンス部２２０９は、レイアウト変更プロパティのプリファレンス値を保持するレイアウト変更プリファレンス部の一例である。
【０１３８】
本実施の形態４によるレイアウトデータ生成部１０９は、レイアウト定義１０２、機種情報１０８、スキン定義２２０２に基づいてレイアウトデータを生成する。具体的には、図６中のレイアウトデータ生成処理における、ステップＳＴ１０１の初期レイアウトデータ生成処理を変更して、レイアウト定義１０２に含まれるＧＵＩ部品に加え、スキン定義２２０２のスキンＧＵＩ部品があれば、それもレイアウトデータに追加される。なお、スキンＧＵＩ部品はＧＵＩ部品と同様に扱われ、スキンプロパティ及びスキンプリファレンスがＧＵＩ部品のプロパティ及びプリファレンスと同様の役割を果たす。
【０１３９】
図２４は、図２３中のスキン定義に設定されるスキンを使用したレイアウト画面の例を示す図であり、（ａ）はスキンを適用する前のレイアウトを示し、（ｂ）はスキンを適用したレイアウトでＧＵＩ部品の表示に重畳が生じている場合を示し、（ｃ）は（ｂ）における重畳を解消したレイアウトを示している。各ＧＵＩ部品は、機種情報１０８のマージンの分だけサイズが大きくなるが、図２４（ａ）に示すような装飾のないレイアウトに対してスキンを適用すると、ＧＵＩ部品全体のサイズがさらに大きくなり、図２４（ｂ）のようにＧＵＩ部品の表示に重畳が生じる。
【０１４０】
例えば、図２４（ｂ）に斜線部で示すようにＧＵＩ部品にデコレーションとしての縁取りａ，ｂができ、スキン定義２２０２のデコレーション部２２０７に指定されたサイズだけＧＵＩ部品全体のサイズが大きくなる。そこで、本実施の形態４では、上記実施の形態１と同様の方法でこの重畳を除去すべく調整を行うことにより、図２４（ｃ）に示すように重畳のないレイアウトとすることができる。この重畳の除去のため、本実施の形態４では、上記実施の形態１で説明したプリファレンス計算処理及びプリファレンス計算結果による調整処理の内容を変更している。
【０１４１】
図２５は、この実施の形態４によるレイアウト装置のプリファレンス計算処理の流れを示すフローチャートである。ここで、変更候補のプロパティのリストであるＰＬＩＳＴには、上記実施の形態１で示した４つのプロパティ（可視性、サイズ、位置、横方向のガイド）に加え、スキンにおけるデコレーションが登録される。これにより、図中のステップＳＴ６０１で、ＰＬＩＳＴのサイズは１より大きくなり、ステップＳＴ１００１の処理に移行する。
【０１４２】
プリファレンス計算部１１０は、上記実施の形態１で示したＰｖ、Ｐｓ、Ｐｐ、Ｐｌに加え、デコレーションのプロパティに対するスコアＰｄとして、ＧＵＩ部品のリストであるＬＩＳＴ中に含まれる、デコレーションされているＧＵＩ部品に対応するデコレーションのプリファレンス値の最小値を設定する（ステップＳＴ１００１）。このとき、ＬＩＳＴ中にデコレーションされているＧＵＩ部品が存在しなければ、Ｐｄの値を（プリファレンスの上限値＋１）に設定する。
【０１４３】
次に、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌ、Ｐｄをそれぞれ比較して、Ｐｖが最小であるか否かを判定する（ステップＳＴ１００２）。このとき、Ｐｖが最小であれば、可視性のプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、その変更するプロパティＰを可視性に設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の可視性のプリファレンス値をスコアとしてＳＬＩＳＴに登録する（ステップＳＴ６０８）。
【０１４４】
ステップＳＴ６０５でＰｖが最小でない場合、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌ、Ｐｄをそれぞれ比較して、Ｐｄが最小であるか否かを判定する（ステップＳＴ１００３）。このとき、Ｐｄが最小であれば、Ｐｄをプリファレンス値として持つデコレーションの対象となるＬＩＳＴ中のＧＵＩ部品を、変更するＧＵＩ部品のリストであるＣＬＩＳＴに登録し、その変更するプロパティＰをデコレーションに設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品に適用されるデコレーションのプリファレンス値をＳＬＩＳＴに登録する（ステップＳＴ１００６）。
【０１４５】
ステップＳＴ１００３でＰｄが最小でない場合、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌ、Ｐｄをそれぞれ比較して、Ｐｓが最小であるか否かを判定する（ステップＳＴ１００４）。このとき、Ｐｓが最小であれば、ステップＳＴ６０９に進んで、Ｐｓを求める際に用いたＧＵＩ部品のリストをＣＬＩＳＴに登録し、変更するプロパティＰをサイズに設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品のサイズのプリファレンス値をスコアとしてＳＬＩＳＴに登録する。
【０１４６】
ステップＳＴ１００４でＰｓが最小でない場合、プリファレンス計算部１１０は、Ｐｖ、Ｐｓ、Ｐｐ、Ｐｌ、Ｐｄをそれぞれ比較して、Ｐｐが最小であるか否かを判定する（ステップＳＴ１００５）。このとき、Ｐｐが最小であれば、ステップＳＴ６１０に進んで、Ｐｐを持つＧＵＩ部品、つまり位置のプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、変更するプロパティＰを位置に設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の位置のプリファレンス値をスコアとしてＳＬＩＳＴに登録する。
【０１４７】
一方、ステップＳＴ１００４でＰｐが最小でない、つまりＰｌが最小である場合、プリファレンス計算部１１０は、Ｐｌを持つＧＵＩ部品、つまり横方向のガイドのプリファレンス値が最小のＧＵＩ部品をＣＬＩＳＴに登録し、変更するプロパティＰを横方向のガイドに設定する。そして、ＣＬＩＳＴ中の各ＧＵＩ部品の横方向のガイドのプリファレンス値をスコアとしてＳＬＩＳＴに登録する（ステップＳＴ６１１）。
【０１４８】
次に、本実施の形態４によるプリファレンス計算結果による調整処理を説明する。
図２６は、実施の形態４によるレイアウト装置のプリファレンス計算結果による調整処理（横）を示すフローチャートである。図示の処理では、上記実施の形態１で説明したプリファレンス計算結果による調整処理に加え、ステップＳＴ１１０１で変更するプロパティＰがデコレーションであると判定された場合、ステップＳＴ１１０２でＣＬＩＳＴ中のＧＵＩ部品のデコレーションを消去する。これらの処理によって、図２４（ｃ）のようにデコレーション間での表示の重畳がないレイアウトがなされる。
【０１４９】
先ず、レイアウトデータ生成部１０９は、変更すべきプロパティＰが可視性であるか否かを判定する（ステップＳＴ５０１）。このとき、プロパティＰが可視性であれば、ＣＬＩＳＴ中のＧＵＩ部品を非表示に設定する（ステップＳＴ５０４）。プロパティＰが可視性でなければ、ステップＳＴ１１０２に進み、変更すべきプロパティＰがデコレーションであるか否かを判定する。
【０１５０】
ここで、プロパティＰがデコレーションであれば、レイアウトデータ生成部１０９は、ＣＬＩＳＴ中のＧＵＩ部品のデコレーションを消去する（ステップＳＴ１１０２）。また、ステップＳＴ１１０１でプロパティＰがデコレーションでないと判定されれば、ステップＳＴ５０３の処理に進む。以降の処理は、上記実施の形態１で図１４を用いて説明した内容と同様である。
【０１５１】
以上のように、この実施の形態４によれば、アプリケーションソフトとは独立してスキンを定義し、スキンにおいても各プロパティに対するプリファレンスを設定することで、スキンを適用した際にもプリファレンス値に基づいてレイアウトを調整できる。
【０１５２】
なお、従来のスキンを用いたレイアウト処理、例えばｉモード（登録商標）におけるアプリケーションエミュレータで用いられるスキンを変更するには、下記の参照文献にもあるように、ボタンの位置等を全て手作業で変更する必要があった。
参照文献、「はじめてのｉモードＪａｖａ（登録商標）プログラミング」：ＩＳＢＮ４−８２２２−８０８６−１、ｐｐ６６〜６９、日経ＢＰ社、２００１年
【０１５３】
また、ＷｅｂブラウザであるＯｐｅｒａ（登録商標）でもスキンが使用されるが、下記のＵＲＬでインターネット上で開示されるように、ＧＵＩ部品を任意の位置に配置するようなことはできず、自由なレイアウトに対応していない。
ｈｔｔｐ：／／ｍｙ．ｏｐｅｒａ．ｃｏｍ／ｃｏｍｍｕｎｉｔｙ／ｄｅｖ／ｓｋｉｎ／
【０１５４】
これらに対して、上記実施の形態４では、上述したようにスキンに対しても各プロパティとそのプリファレンスを設定し、このプリファレンス値に基づいて最適な調整方法を選択して自動的にレイアウトが調整されることから、自由なレイアウトを行い、スキンを適用した環境においても、本実施の形態４を適用した装置の機種毎の画面に合わせて動的にレイアウトを調整することが可能である。
【０１５５】
また、上記実施の形態４とは別に、スキン定義に色のプロパティと、そのプリファレンスを設定可能であってもよい。例えば、デコレーションのプロパティとして、色のプロパティ及びそのプリファレンス値を設定し、デコレーションされるＧＵＩ部品にも色のプロパティ及びそのプリファレンス値を設定する。
【０１５６】
この場合、図６中のステップＳＴ１０１における初期レイアウトデータ生成処理で、ＬＩＳＴにそのＧＵＩ部品と、デコレーションをＧＵＩ部品とみなして登録し、ＰＬＩＳＴには色のプロパティを登録して、プリファレンス計算処理を行い、ＬＩＳＴ中からプリファレンス値の小さい方に対応するＧＵＩ部品若しくはデコレーションをＣＬＩＳＴに登録する。これにより、ＬＩＳＴに登録したＧＵＩ部品及びデコレーションのうち、ＣＬＩＳＴに登録されている方の色のプロパティを却下し、登録されていない方の色のプロパティをＧＵＩ部品の色に設定することができる。
【０１５７】
実施の形態５．
図２７は、この発明の実施の形態５によるレイアウト装置の構成を示すブロック図であり、図１と同一若しくはそれに相当する構成要素には同一符号を付してある。図において、本実施の形態５によるレイアウト装置は、表示内容定義記憶部２７０１に保持した表示内容定義２７０２を、レイアウト定義１０２及び機種情報１０８と合わせて読み込んで、表示装置１１１の画面に合わせたレイアウトを実行する。なお、表示内容定義２７０２及び表示内容定義記憶部２７０１は、それぞれレイアウトを変更するための情報を定義したレイアウト変更定義及びその記憶部の一例である。
【０１５８】
表示内容定義２７０２には、表示内容部２７０３（レイアウト変更プロパティ部）及び表示内容プリファレンス部（レイアウト変更プリファレンス部）２７０４が設定される。表示内容部２７０３には、ＧＵＩ部品上に表示する表示内容と、その表示内容を表示するＧＵＩ部品の名前が設定される。表示内容プリファレンス部２７０４には、表示内容の重要度を表すプリファレンス値が設定される。なお、本発明での表示内容とは、ＧＵＩ部品中に表示させる情報内容をいい、テキストや画像などで具現化される。また、表示内容はプロパティであり、対応するＧＵＩ部品の同名のプロパティを設定する。
【０１５９】
また、表示内容定義２７０２を保持する表示内容定義記憶部２７０１は、上記実施の形態１で図２を用いて説明したコンピュータの記憶装置２０３であるハードディスクやＲＡＭで具現化してもよい。また、本実施の形態５によるレイアウト装置との間でデータ通信が可能な他のコンピュータの記憶装置上に表示内容定義記憶部２７０１を具現化し、データ通信により表示内容定義２７０２を取得するように構成してもよい。
【０１６０】
次に動作について説明する。
ここでは、上記実施の形態１で説明した図６のフローチャートを用いて、本実施の形態５と上記実施の形態１と相違する処理について説明する。
先ず、本実施の形態５によるレイアウトデータ生成部１０９は、図６中のステップＳＴ１０１で初期レイアウトデータ生成処理を実行する。ここで、レイアウトデータ生成部１０９は、表示内容定義記憶部２７０１から表示内容定義２７０２を読み出し、さらに表示内容定義２７０２の表示内容部２７０３に設定されるＧＵＩ部品の名前を抽出する。この後、抽出した名前に対応するＧＵＩ部品を特定して、これに対応するレイアウトデータにおけるＧＵＩ部品に対して、表示内容定義２７０２の表示内容部２７０３から読み出した表示内容を設定する。例えば、ＧＵＩ部品に表示されるテキストを表示内容定義２７０２によって設定する場合、表示内容部２７０３には、対象となるＧＵＩ部品の「名前」と、表示内容である「テキスト」のプロパティとが対になって設定されている。表示内容部２７０３の「名前」によって特定したＧＵＩ部品のテキストプロパティを表示内容部２７０３の「テキスト」に設定されている内容に変更する。
また、表示内容を設定するＧＵＩ部品を特定する際に、必ずしも名前を用いる必要はなく、ＩＤ等の他のプロパティを基に特定しても良い。
【０１６１】
次に、レイアウトデータ生成部１０９は、レイアウトを調整する処理の前処理として、表示内容プリファレンス部２７０４から読み出した表示内容のプリファレンス値を用いてプリファレンス値を変更する。例えば、ＧＵＩ部品のサイズのプリファレンス値と可視性のプリファレンス値のそれぞれに表示内容プリファレンス値を足して２で割る。これにより、表示内容があまり重要でない場合、サイズが縮小されやすくなり、非表示にもされやすくなる。逆に重要な表示内容である場合、サイズは縮小されにくく、非表示にもなりにくくなる。この後の処理は、上記実施の形態１と基本的に同様である。
【０１６２】
また、本実施の形態５によるレイアウト装置によりレイアウトを調整して表示装置１１１で表示した後に、新たな表示内容定義２７０２を当該レイアウト装置に読み込む処理を設け、この新たな表示内容定義２７０２から再度設定したプリファレンス値を用いてレイアウトを再調整するか否かを決定するように構成してもよい。
【０１６３】
以上のように、この実施の形態５によれば、ＧＵＩ部品に表示させる表示内容の重要度に応じてそれが表示されるＧＵＩ部品のプリファレンス値を変更することで、レイアウト調整の際に表示内容の重要度も考慮した調整を行うことができる。
【０１６４】
なお、上記実施の形態５では、表示内容定義記憶部２７０１に保持した内容を用いたレイアウトを実施する構成を上記実施の形態１に適用した例を示したが、上記実施の形態２から４までの構成に適用しても構わない。これにより、上記実施の形態５による効果に加えて上記実施の形態２から４で示した効果も得ることができる。
【０１６５】
実施の形態６．
図２８は、この発明の実施の形態６によるレイアウト装置の構成を示すブロック図であり、図１と同一若しくはそれに相当する構成要素には同一符号を付してある。図において、本実施の形態６によるレイアウト装置は、ユーザ情報定義記憶部２８０１に保持したユーザ情報２８０２を、レイアウト定義１０２及び機種情報１０８と合わせて読み込んで、表示装置１１１の画面に合わせたレイアウトを実行する。また、ユーザ情報定義記憶部２８０１には、ユーザ情報２８０２が設定される。ユーザ情報２８０２とは、ユーザに関する情報であり、特にユーザに最も適した画面レイアウトに調整する上で参照されるユーザによる設定情報である。例えば、ユーザの年齢などがある。このユーザ情報２８０２及びユーザ情報定義記憶部２８０１は、それぞれレイアウトを変更するための情報を定義したレイアウト変更定義及びその記憶部の一例である。
【０１６６】
また、ユーザ情報２８０２を保持するユーザ情報定義記憶部２８０１は、上記実施の形態１で図２を用いて説明したコンピュータの記憶装置２０３であるハードディスクやＲＡＭで具現化してもよい。また、本実施の形態６によるレイアウト装置との間でデータ通信が可能な他のコンピュータの記憶装置上にユーザ情報定義記憶部２８０１を具現化し、データ通信によりユーザ情報２８０２を取得するように構成してもよい。
【０１６７】
さらに、ユーザ情報２８０２は、上記実施の形態１で図２を用いて説明したコンピュータのマウス２０５やキーボード２０６などの入力手段を利用してユーザ情報定義記憶部２８０１に設定してもよく、本実施の形態６によるレイアウト装置との間でデータ通信が可能な他のコンピュータからデータ通信によりユーザ情報２８０２を設定するように構成してもよい。
【０１６８】
次に動作について説明する。
ここでは、上記実施の形態１で説明した図６のフローチャートを用いて、本実施の形態６と上記実施の形態１と相違する処理について説明する。
先ず、本実施の形態６によるレイアウトデータ生成部１０９は、図６中のステップＳＴ１０１で初期レイアウトデータ生成処理を実行する。ここで、レイアウトデータ生成部１０９は、ユーザ情報定義記憶部２８０１からユーザ情報２８０２を読み出し、ユーザ情報２８０２からレイアウト調整に必要な情報を抽出する。
【０１６９】
次に、レイアウトデータ生成部１０９は、レイアウトを調整する処理の前処理として、ユーザ情報２８０２から抽出した内容に応じてプリファレンス計算部１１０にＧＵＩ部品のプロパティのプリファレンス値を変更させ、これを反映したレイアウトデータを生成する。これにより、ユーザに最適な画面レイアウトに調整することができる。例えば、ユーザ情報２８０２から抽出した内容がユーザの年齢である場合、レイアウトデータ生成部１０９にユーザ年齢に関しての閾値を設定しておき、年齢に応じたレイアウト調整処理を実行させる。
【０１７０】
例えば年齢に関する閾値を６０才と設定し、これ以上のユーザ年齢である場合の処理として、ＧＵＩ部品のサイズが縮小されて見にくくなることを防ぐため、全てのＧＵＩ部品に対し、レイアウト定義に設定されたサイズのプリファレンス値を１．５倍し、レイアウトデータに設定する。このようにすることで、高齢者のユーザに対して、大きいＧＵＩ部品並びに大きな文字で表示することが可能となり、より使いやすい画面レイアウトを提供することができる。
【０１７１】
以上のように、この実施の形態６によれば、ユーザ情報に応じてＧＵＩ部品のプリファレンス値を変更することで、レイアウト調整の際に、ユーザの特性に合わせた調整を行うことができる。
【０１７２】
なお、上記実施の形態６では、ユーザ情報定義記憶部２８０１に保持した内容を用いたレイアウトを実施する構成を上記実施の形態１に適用した例を示したが、上記実施の形態２から５までの構成に適用しても構わない。これにより、上記実施の形態６による効果に加えて上記実施の形態２から５で示した効果も得ることができる。
また、本発明によるレイアウト変更定義は、スキン定義、表示内容定義及びユーザ情報以外のレイアウト変更に関する情報を含むものとする。
【０１７３】
実施の形態７．
本実施の形態７は、クライアント−サーバシステムで本発明の概念に従うレイアウト装置を実現するものである。例えば、図２９に示すような構成が考えられる。図２９において、ＰＣ２９０１がｗｅｂサーバ、ＰＣ２９０２がクライアントであり、これらがネットワーク２９０３で接続されている。
【０１７４】
ＰＣ２９０１，２９０２は、例えば上記実施の形態１で図２を用いて示したコンピュータ装置と同様の構成を有している。図示の例では、ＰＣ２９０１がｗｅｂサーバであり、上記実施の形態で示したレイアウト定義記憶部１０１を備える。ＰＣ２９０２は、機種情報記憶部１０７に加え、レイアウトデータ生成部１０９及びプリファレンス計算部１１０が備えられる。
【０１７５】
なお、機種情報記憶部１０７も他のＰＣに設けて、ＰＣ２９０２がデータ通信により取得するようにしてもよい。また、ＰＣ２９０２には、図１で示した表示装置１１１に相当するディスプレイ２９０４が接続され、この画面に合わせたレイアウト表示がなされる。
【０１７６】
さらに、ＰＣ２９０１，２９０２は、ネットワーク２９０３を介してデータ通信が可能である。ここでは、ｗｅｂクライアントであるＰＣ２９０２が、ネットワーク２９０３を介してｗｅｂサーバであるＰＣ２９０１からレイアウト定義１０２をダウンロードする。これにより、ＰＣ２９０２は、上記実施の形態１と同様にして、自己の機種情報１０８を機種情報記憶部１０７から読み出し、レイアウト定義１０２と合わせてレイアウトデータを生成し、ディスプレイ２９０４で画面を表示する。
【０１７７】
以上のように、この実施の形態７によれば、ネットワーク２９０３を介して通信接続可能なコンピュータの記憶装置上にレイアウト定義などの記憶部を構築し、レイアウトデータ生成に必要なときにダウンロードしてそのモニタの画面に合わせてレイアウトを調整し、表示するように構成したので、本発明を適用するにあたり必要なハードウエアの構成やスペックの増加を抑えることができる。これにより、表示装置を有するコンピュータ装置に本発明を容易に適用することができる。
【０１７８】
なお、上記実施の形態７では、上記実施の形態１で示した構成をネットワーク上の複数のコンピュータに分散して配置する例を示したが、上記実施の形態２から６までの構成に適用しても構わない。これにより、上記実施の形態７による効果に加えて上記実施の形態２から６で示した効果も得ることができる。
【０１７９】
また、上記実施の形態７では、レイアウト定義記憶部１０１をｗｅｂサーバであるＰＣ２９０１に設ける構成を示したが、本発明はこれに限定されるものではない。例えば、ＰＣ２９０２には、本発明に係る構成としてディスプレイ２９０４のみを設け、ＰＣ２９０１に対して、レイアウト定義記憶部１０１、機種情報記憶部１０７、レイアウトデータ生成部１０９及びプリファレンス計算部１１０を設ける。これにより、ＰＣ２９０１が生成したレイアウトデータを、ネットワーク２９０３を介してＰＣ２９０２が取得し、そのディスプレイ２９０４に表示するようにしてもよい。
【０１８０】
このとき、ＰＣ２９０１に設ける機種情報記憶部１０６には、クライアントであるＰＣのモニタに対応する機種情報１０８を複数保持しておく。これにより、ＰＣ２９０１側でクライアントの種類に応じて対応する機種情報１０８を用いたレイアウトデータを生成する。なお、ＰＣ２９０２側から自己を識別する情報をＰＣ２９０１に送信してレイアウトデータ要求を行い、これに応じて生成されたレイアウトデータを、ネットワーク２９０３を介してＰＣ２９０２がダウンロードしてディスプレイ２９０４に表示するようにしてもよい。
【０１８１】
このようにすることで、特にレイアウト定義記憶部１０１のみをｗｅｂサーバに備えた構成と比較して、本発明を適用するにあたり必要なハードウエアの構成やスペックを最小限に抑えることができ、クライアントＰＣの処理能力が低い場合にも容易に適用することができる。
【０１８２】
実施の形態８．
図３０は、この発明の実施の形態８によるレイアウト装置の適用例を示す図であり、携帯電話３００２のディスプレイ３００４の画面に合うレイアウトを実行する。図３０のように、サーバ３００１と携帯電話３００２は、ネットワーク３００３を介してデータ通信する機能をそれぞれ有している。
【０１８３】
また、サーバ３００１には、レイアウト定義記憶部１０１を設け、携帯電話３００２には、機種情報記憶部１０７、レイアウトデータ生成部１０９及びプリファレンス計算部１１０を設ける。これにより、サーバ３００１からネットワーク３００３を介して取得したレイアウト定義１０２と自己に設けられた機種情報１０８を用いて、携帯電話３００２側でディスプレイ３００４の画面に合わせたレイアウト調整及びその表示を実行する。
【０１８４】
特に、携帯電話などの場合、ディスプレイの画面が小さいためにＧＵＩ部品を表示できる広さが限られる。また、携帯電話の機種毎にディスプレイも異なる場合があり、これに応じて機種情報１０８が変わり、マージンの大きさやフォントサイズが異なる。このため、レイアウトが大きな問題となる。これに対して、本実施の形態８により、携帯電話の機種に応じた動的なレイアウトが可能となり、前記の問題が解決できる。
【０１８５】
また、上述の構成では、サーバ３００１にレイアウト定義記憶部１０１を設ける例を示したが、レイアウト定義記憶部１０１も携帯電話３００２に設けて、携帯電話３００２のみで本発明のレイアウト装置を具現化してもよく、同様の効果を得ることができる。
【０１８６】
この他、携帯電話３００２に機種情報記憶部１０７、レイアウトデータ生成部１０９及びプリファレンス計算部１１０を設けず、サーバ３００１にレイアウト定義記憶部１０１、携帯電話の機種に対応する機種情報１０８を複数保持する機種情報記憶部１０７、レイアウトデータ生成部１０９及びプリファレンス計算部１１０を設けて、サーバ３００１側でディスプレイ３００４の画面に合わせて生成したレイアウトデータを携帯電話３００２がダウンロードして表示する構成にしてもよい。
【０１８７】
これにより、多様な携帯電話の機種ごとに、サーバでそれに適したレイアウトを備えたレイアウトデータを生成して携帯電話に渡すことができ、携帯電話のＣＰＵ処理のリソース（メモリ、計算処理時間、電池）を使わずにその端末種類に適した画面表示を行える。また、携帯電話の計算処理能力が低い場合には、サーバ側でレイアウトデータを生成して転送する方が早く行えるという効果もある。
【０１８８】
なお、上記実施の形態８では、上記実施の形態１で示した構成を、携帯電話３００２を含むネットワーク上の複数のコンピュータに分散して配置する例を示したが、上記実施の形態２から６までの構成に適用しても構わない。これにより、上記実施の形態８による効果に加えて上記実施の形態２から６で示した効果も得ることができる。
【０１８９】
また、携帯電話に限らず、ＰＤＡなどの携帯情報端末にも適用可能であり、例えば通信機能を有するカーナビゲーション装置に適用してそのディスプレイに応じたレイアウトを生成することも可能である。
【図面の簡単な説明】
【０１９０】
【図１】この発明の実施の形態１によるレイアウト装置の構成を示すブロック図である。
【図２】実施の形態１によるレイアウト装置を具現化するハードウエア構成の一例を示す図である。
【図３】図１中のレイアウト定義記憶部に保持したレイアウト定義の一例を示す図である。
【図４】図３中のレイアウト定義によりレイアウトした結果を示す図である。
【図５】図１中の機種情報記憶部に保持した機種情報の一例を示す図である。
【図６】実施の形態１によるレイアウト装置の動作を示すフローチャートである。
【図７】初期レイアウトデータ生成処理により生成したレイアウトデータによる画面の例である。
【図８】レイアウトデータ生成処理により生成したレイアウトデータによる画面の例である。
【図９】画面サイズ無視の調整処理（縦）の流れを示すフローチャートである。
【図１０】画面サイズを考慮した調整処理（横）の流れを示すフローチャートである。
【図１１】実施の形態１による移動距離決定処理を説明するための図である。
【図１２】移動距離決定処理の流れを示すフローチャートである。
【図１３】プリファレンス計算結果による調整処理（横）の流れを示すフローチャートである。
【図１４】プリファレンス計算処理の流れを示すフローチャートである。
【図１５】レイアウト定義におけるＧＵＩ部品のレイアウト例を示す図である。
【図１６】この発明の実施の形態２によるレイアウト装置のレイアウト定義の一例を示す図である。
【図１７】基準点を用いてＧＵＩ部品を列に配置した例を示す図である。
【図１８】実施の形態２によるレイアウト装置の画面サイズを考慮した調整処理（横）を示すフローチャートである。
【図１９】実施の形態２によるレイアウト装置の移動距離決定処理を示すフローチャートである。
【図２０】この発明の実施の形態３によるレイアウト装置のレイアウト定義の一例を示す図である。
【図２１】実施の形態３によるレイアウト装置の画面サイズを考慮した調整処理（横）を示すフローチャートである。
【図２２】この発明の実施の形態４によるレイアウト装置の構成を示すブロック図である。
【図２３】スキン定義の一例を示す図である。
【図２４】スキンを使用したレイアウト画面の例を示す図である。
【図２５】この実施の形態４によるレイアウト装置のプリファレンス計算処理の流れを示すフローチャートである。
【図２６】実施の形態４によるレイアウト装置のプリファレンス計算結果による調整処理（横）を示すフローチャートである。
【図２７】この発明の実施の形態５によるレイアウト装置の構成を示すブロック図である。
【図２８】この発明の実施の形態６によるレイアウト装置の構成を示すブロック図である。
【図２９】この発明の実施の形態７によるレイアウト装置を具現化するハードウエア構成例を示す図である。
【図３０】この発明の実施の形態８によるレイアウト装置を具現化するハードウエア構成例を示す図である。
【符号の説明】
【０１９１】
１０１  レイアウト定義記憶部、１０２  レイアウト定義、１０２ａ  スクロール、１０２ｂ  画面サイズ、１０２ｃ  フォントサイズ、１０３  ＧＵＩ部品部、１０４  ＧＵＩ部品情報、１０５  プロパティ部、１０６  プリファレンス部、１０７  機種情報記憶部、１０８  機種情報、１０８ａ  表示画面の画面サイズ、１０８ｂ  フォントサイズ、１０８ｃ  マージン、１０９  レイアウトデータ生成部、１１０  プリファレンス計算部、１１１  表示装置、２０１  ＰＣ、２０２  処理装置、２０３  記憶装置、２０４  モニタ、２０５  マウス、２０６  キーボード、４０１〜４０７  破線、１００１〜１００６，１５０１〜１５０６，１７０１〜１７０３  ＧＵＩ部品、１６０１，１７０４〜１７０６  基準点、２００１，２００２  参照、２２０１  スキン定義記憶部、２２０２  スキン定義、２２０３  スキンＧＵＩ部品部、２２０４  スキンＧＵＩ部品情報、２２０５  スキンプロパティ部、２２０６  スキンプリファレンス部、２２０７  デコレーション部、２２０８  デコレーションプロパティ部、２２０９  デコレーションプリファレンス部、２７０１  表示内容定義記憶部、２７０２  表示内容定義、２７０３  表示内容部、２７０４  表示内容プリファレンス部、２８０１  ユーザ情報定義記憶部、２８０２  ユーザ情報、２９０１，２９０２  ＰＣ、２９０３，３００３  ネットワーク、２９０４，３００４  ディスプレイ、３００１  サーバ、３００２  携帯電話。
【図１】
2006331339.tif 000003
【図２】
2006331339.tif 000004
【図３】
2006331339.tif 000005
【図４】
2006331339.tif 000006
【図５】
2006331339.tif 000007
【図６】
2006331339.tif 000008
【図７】
2006331339.tif 000009
【図８】
2006331339.tif 000010
【図９】
2006331339.tif 000011
【図１０】
2006331339.tif 000012
【図１１】
2006331339.tif 000013
【図１２】
2006331339.tif 000014
【図１３】
2006331339.tif 000015
【図１４】
2006331339.tif 000016
【図１５】
2006331339.tif 000017
【図１６】
2006331339.tif 000018
【図１７】
2006331339.tif 000019
【図１８】
2006331339.tif 000020
【図１９】
2006331339.tif 000021
【図２０】
2006331339.tif 000022
【図２１】
2006331339.tif 000023
【図２２】
2006331339.tif 000024
【図２３】
2006331339.tif 000025
【図２４】
2006331339.tif 000026
【図２５】
2006331339.tif 000027
【図２６】
2006331339.tif 000028
【図２７】
2006331339.tif 000029
【図２８】
2006331339.tif 000030
【図２９】
2006331339.tif 000031
【図３０】
2006331339.tif 000032