(57)【要約】【課題】描画領域の大きさに応じてその描画領域に描画すべき文字列をすべて描画することができるようにする。【解決手段】ユーザ端末１０は、ラベルが付され、属性に描画すべき文字列を含むキーが記述されたキーストリングを受け付け、キーストリングに記述されているキーを取得し、キーについて描画領域を決定する。ユーザ端末１０は、描画領域内に、文字列をすべて描画することが可能な最大のフォントサイズを算出し、算出した最大のフォントサイズで描画領域内に文字列を描画する。【選択図】図１
2009064397.tif 000002
【特許請求の範囲】
【請求項１】
画面に文字列を描画するシステムであって、
描画すべき文字列と、前記文字列を描画する描画領域を前記画面の大きさに基づいて決定するための情報である領域指定情報とを含むキー情報を取得するキー情報取得部と、
前記キー情報に含まれる前記領域指定情報に基づいて前記描画領域を決定する描画領域決定部と、
前記描画領域内に、前記キー情報に含まれる前記文字列をすべて描画することが可能な最大のフォントサイズを算出するフォントサイズ算出部と、
前記最大のフォントサイズで前記描画領域内に前記文字列を描画する文字列描画部と、
を備えることを特徴とする文字列描画システム。
【請求項２】
請求項１に記載の文字列描画システムであって、
複数の前記キー情報がツリー構造を構成し、
前記描画領域決定部は、前記ツリー構造のルートである前記キー情報であるルートキー情報について、前記画面の全てを前記描画領域として決定し、前記ルートキー情報以外の前記ツリー構造を構成する前記キー情報のそれぞれについて、各前記キー情報についての前記描画領域が、当該キー情報の親についての前記描画領域内に含まれるように、前記領域指定情報に基づいて前記描画領域を決定すること、
を特徴とする文字列描画システム。
【請求項３】
請求項１に記載の文字列描画システムであって、
前記画面に文字を描画可能な最大のフォントサイズである最大サイズと、前記画面に文字を描画可能な最小のフォントサイズである最小サイズとを取得するシステムサイズ取得部を備え、
前記フォントサイズ算出部は、
前記最大サイズをｆｓ１とし、前記最小サイズをｆｓ０とし、（ｆｓ０＋ｆｓ１）÷２で求められるフォントサイズをｆｓとし、
前記ｆｓと前記ｆｓ０との差が所定値以下になるまで、前記ｆｓにより前記文字列を前記描画領域の幅を超えないように描画する場合に必要となる領域の高さｔｈを算出し、前記描画領域の高さｈが前記ｔｈを超える場合、前記ｆｓ０に前記ｆｓを設定し、前記ｈが前記ｔｈを超えない場合、前記ｆｓ１に前記ｆｓを設定して、
前記ｆｓを前記最大のフォントサイズとして算出すること、
を特徴とする文字列描画システム。
【請求項４】
請求項３に記載の文字列描画システムであって、
前記キー情報にはフォントサイズが含まれ、
前記フォントサイズ算出部は、前記キー情報に含まれる前記フォントサイズで前記キー情報に含まれる前記文字列を前記描画領域内に描画できるか否かを判定し、描画できる場合には、前記キー情報に含まれる前記フォントサイズを前記最大のフォントサイズとし、描画できない場合には、前記Ｆを前記最大のフォントサイズとすること、
を特徴とする文字列描画システム。
【請求項５】
画面に文字列を描画する方法であって、
コンピュータが、
描画すべき文字列と、前記文字列を描画する描画領域を前記画面の大きさに基づいて決定するための情報である領域指定情報とを含むキー情報を取得し、
前記キー情報に含まれる前記領域指定情報に基づいて前記描画領域を決定し、
前記描画領域内に、前記キー情報に含まれる前記文字列をすべて描画することが可能な最大のフォントサイズを算出し、
前記最大のフォントサイズで前記描画領域内に前記文字列を描画すること、
を備えることを特徴とする文字列描画システム。
【請求項６】
画面に文字列を描画するためのプログラムであって、
コンピュータに、
描画すべき文字列と、前記文字列を描画する描画領域を前記画面の大きさに基づいて決定するための情報である領域指定情報とを含むキー情報を取得するステップと、
前記キー情報に含まれる前記領域指定情報に基づいて前記描画領域を決定し、
前記描画領域内に、前記キー情報に含まれる前記文字列をすべて描画することが可能な最大のフォントサイズを算出し、
前記最大のフォントサイズで前記描画領域内に前記文字列を描画すること、
を備えることを特徴とする文字列描画システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列表示システム、文字列表示方法、およびプログラムに関する。
【背景技術】
【０００２】
画面の記述言語としてＨＴＭＬ（HyperText Markup Language）が知られている。ＨＴＭＬでは、タグにより文章の構造や文字列の装飾などを定義している。ＨＴＭＬにより記述されたウェブページは、ウェブブラウザにより解釈されて画面に描画される。
【０００３】
ＨＴＭＬで記述されたウェブページは一画面に描画することが想定されていない。したがって、ユーザはウェブページを閲覧するためには画面をスクロールする必要があった。この不便を解消するために、例えば特許文献１では、ウェブページの一部の要素を優先的に表示するようにしている。
【特許文献１】特開２００６−２０９５５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の表示装置では、一画面に全ての情報を表示することはできない。また、ＨＴＭＬでは、フレームなどにより、あるウェブページに他のウェブページを組み入れる仕組みも提供されているが、ＨＴＭＬでは、文字列の描画領域に応じたフォントサイズをデザインすることは考慮されていないため、あるウェブページで他のウェブページを組み入れるために指定されたフレームの大きさが、他のウェブページのデザイナが想定していた大きさよりも小さい場合には、小さな描画領域に大きな文字が描画されることになり、他のウェブページの全てが描画されず、あるいは、ユーザがフレームをスクロールしなくては他のウェブページの全てを閲覧することができない。
【０００５】
本発明は、このような背景を鑑みてなされたものであり、描画領域の大きさに応じてその描画領域に描画すべき文字列をすべて描画することのできる文字列描画システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明のうち、請求項１に記載の発明は、画面に文字列を描画するシステムであって、描画すべき文字列と、前記文字列を描画する描画領域を前記画面の大きさに基づいて決定するための情報である領域指定情報とを含むキー情報を取得するキー情報取得部と、前記キー情報に含まれる前記領域指定情報に基づいて前記描画領域を決定する描画領域決定部と、前記描画領域内に、前記キー情報に含まれる前記文字列をすべて描画することが可能な最大のフォントサイズを算出するフォントサイズ算出部と、前記最大のフォントサイズで前記描画領域内に前記文字列を描画する文字列描画部と、を備えることとする。
【０００７】
本発明の文字列描画システムによれば、描画領域への文字列の描画には、全ての文字列を描画可能な最大のフォントサイズが用いられる。すなわち、描画領域に応じてなるべく大きなフォントサイズで文字列を描画することができる。したがって、文字列の一覧性を確保しつつ、なるべく見易い表示を行うことができる。
【０００８】
また、画面の大きさが変わった場合でも、なるべく大きな文字を描画して視認性を高めることができる。したがって、ＨＴＭＬのフレームのように、ある画面の中に他の画面を表示するような場合でも、描画領域に合わせてフォントサイズが調整されるので、文字列の一覧性を維持しつつ、文字の視認性も確保することができる。
【０００９】
また、画面の大きさに基づいてキー情報についての描画領域が決定され、その描画領域にキー情報に含まれる文字列が描画されるので、複数のキー情報を表示する場合にも、全て１画面に表示することが可能である。よって、キー情報の一覧性を確保することができる。
【００１０】
また、本発明のうち請求項２に記載の発明は、請求項１に記載の文字列描画システムであって、複数の前記キー情報がツリー構造を構成し、前記描画領域決定部は、前記ツリー構造のルートである前記キー情報であるルートキー情報について、前記画面の全てを前記描画領域として決定し、前記ルートキー情報以外の前記ツリー構造を構成する前記キー情報のそれぞれについて、各前記キー情報についての前記描画領域が、当該キー情報の親についての前記描画領域内に含まれるように、前記領域指定情報に基づいて前記描画領域を決定することとする。
【００１１】
この場合、ツリー構造のデータを採用することにより、ルートのキー情報に画面全体の描画領域を割り当て、各キー情報には、親の描画領域の全部または一部を、そのキー情報の描画領域として割り当てることができる。したがって、画面の構成は、画面を分割した状態をツリー構造として表現すればよいので、容易に画面構成を記述することができる。
【００１２】
また、本発明のうち請求項３に記載の発明は、請求項１に記載の文字列描画システムであって、前記画面に文字を描画可能な最大のフォントサイズである最大サイズと、前記画面に文字を描画可能な最小のフォントサイズである最小サイズとを取得するシステムサイズ取得部を備え、前記フォントサイズ算出部は、前記最大サイズをｆｓ１とし、前記最小サイズをｆｓ０とし、（ｆｓ０＋ｆｓ１）÷２で求められるフォントサイズをｆｓとし、前記ｆｓと前記ｆｓ０との差が所定値以下になるまで、前記ｆｓにより前記文字列を前記描画領域の幅を超えないように描画する場合に必要となる領域の高さｔｈを算出し、前記描画領域の高さｈが前記ｔｈを超える場合、前記ｆｓ０に前記ｆｓを設定し、前記ｈが前記ｔｈを超えない場合、前記ｆｓ１に前記ｆｓを設定して、前記ｆｓを前記最大のフォントサイズとして算出することとする。
【００１３】
また、本発明のうち請求項４に記載の発明は、請求項３に記載の文字列描画システムであって、前記キー情報にはフォントサイズが含まれ、前記フォントサイズ算出部は、前記キー情報に含まれる前記フォントサイズで前記キー情報に含まれる前記文字列を前記描画領域内に描画できるか否かを判定し、描画できる場合には、前記キー情報に含まれる前記フォントサイズを前記最大のフォントサイズとし、描画できない場合には、前記Ｆを前記最大のフォントサイズとすることとする。
【００１４】
この場合、上限のフォントサイズをキー情報に指定しておくことで、それ以上大きな文字にならないように設定することができる。したがって、例えば、あまり大きな文字ではデザイン的に美しくないと判断される場合や、あまり大きな文字では、かえって視認性が落ちると判断される場合などに、文字の大きさの上限を制限することができる。よって、文字列の視認性を確保しつつ、文字列が表示されるデザインの柔軟性を確保することができる。
【発明の効果】
【００１５】
本発明によれば、描画領域の大きさに応じてその描画領域に描画すべき文字列をすべて描画することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施形態に係る描画システムについて説明する。  
本実施形態の描画システムは、文字列を画面に描画するものである。なお、描画システムはもちろん、文字列以外にも、動画像や静止画像などを描画するようにすることもできるし、線や多角形などの描画を行うようにすることもできるが、本実施形態では、簡単のため、文字列のみを描画するものとする。
【００１７】
描画システムは、画面に描画すべき文字列をツリー構造に記述したデータに基づいて文字列の描画を行う。ツリー構造を構成するノードをキーという。また、ひとまとまりの複数のキーをキーセットという。各キーセットは、１つのファイルに格納され、キーセットが格納されるファイルをキーセットファイルという。
【００１８】
図１は、キーセットファイルの一例を示す図である。図１に示すように、キーセットファイル１において、キーセットは、ツリー構造のルートとなるキーを示すラベルに続いて、同階層のキーをブレース（中括弧）でまとめ、深さ優先順に記述したデータ（以下、キーストリングという。）により表現される。
【００１９】
図１に示すように、キーのラベル（本発明の領域指定情報に該当する。後述するように、ラベルに応じてキーの描画領域が決定される。すなわち、ＲやＣのラベルが付されたキーには、親の描画領域を分割した領域が割り当てられ、Ｓｅのラベルが付されたキーには、描画領域が割り当てられず、その他のキーには親の描画領域がそのまま割り当てられる。）には「Ｋ」「Ｓｅ」「Ｕ」「Ｒ」「Ｃ」などがある。
【００２０】
「Ｋ」のラベルは、キーセットのルートになるキーを示す。Ｋのラベルが付されたキー（以下、Ｋキーという。）には、キーセットの名前（以下、キーセット名という。）が属性として設定される。キーの属性は、ラベルに続く括弧内に記述される。キーセットファイル１の例では、「Ｋ（“＿Ｅｘ１”）」と記述されている。これは「＿Ｅｘ１」というキーセット名がＫキーの属性として設定されていることを示す。
【００２１】
「Ｓｅ」のラベルは、文字列を描画する際のフォントサイズや、描画領域の余白の大きさなどのスタイルを設定するためのキーを示す。Ｓｅのラベルが付されたキー（以下、スタイルキーという。）に引き続くブレース内には、スタイルの設定が記述される。スタイルの設定は、１つ以上のスタイルのまとまり（以下、スタイルセットという。）の名称（以下、スタイルセット名という。）に対応付けて、設定項目となるスタイルの名称（以下、スタイル名という。）とその値とが「＝」で対応付けられた形で記述される。キーセットファイル１の例では、「＠ａ」というスタイルセット名に対応付けて、「〜ｍｏｄｅ」というスタイル名に「ａｕｔｏ」という値が設定されており、「〜ｆｏｎｔｓｉｚｅ」というスタイル名に「２４」という値が設定されている。なお、スタイルキーに設定されたスタイルは、文字列の描画の際に参照される。
【００２２】
「Ｕ」のラベルは、キーセットに割り当てられた描画領域全体に対応するキーを示す。Ｕのラベルが付されたキー（以下、Ｕキーという。）の子孫となるキーには、Ｕキーに対応する描画領域の少なくとも一部が割り当てられる。
【００２３】
Ｕキーの子孫となるキーには、「Ｒ」「Ｃ」または「Ｉ」のラベルが付される。なお、その他のラベルを付したキーをＵキーの子孫とすることも可能であるが、本実施形態では簡単のために、Ｕキーの子孫には「Ｒ」「Ｃ」または「Ｉ」のいずれかのラベルが付されるものとする。
【００２４】
Ｒのラベルが付されたキー（以下、Ｒキーという。）およびＣのラベルが付されたキー（以下、Ｃキーという。）を、レイアウトキーと呼ぶ。レイアウトキーは、親のキーに割り当てられている描画領域を分割することを示す。Ｒキーは、親のキーに割り当てられた描画領域を行（Ｒｏｗ）に分割することを示し、Ｃキーは、列（Ｃｏｌｕｍｎ）に分割することを示す。
【００２５】
レイアウトキーには、属性として文字列およびスタイルセット名を設定することができる。キーセットファイル１では、例えば、Ｕキーの子となる４つのＲのラベルが設定されたキー（以下、Ｒキーという。）の最初のものには、文字列「ＳａＬＡ  インタプリタ」と、スタイルセット名「＠ａ」とが属性として設定されている。
【００２６】
レイアウトキーは、兄弟のキーの数に応じて、兄弟のキーと等分に親の描画領域を分割する。例えば、キーストリングが「Ｕ｛ＲＲ｝」である場合には、Ｕキーが示す描画領域は上下に２分割され、キーストリングが「Ｕ｛ＣＣＣ｝」である場合には、Ｕキーが示す描画領域は左右に３分割される。キーセットファイル１の例のように「Ｕ｛ＲＲＲＲ｝」と指定されている場合には、Ｕキーが示す描画領域は上下に４分割される。なお、同一階層には、ＲキーおよびＣキーは混在しないものとする。
【００２７】
「Ｒ」または「Ｃ」の後には数値を記述するようにしてもよい。この場合、ラベルの後の数値は、描画領域の分割比を示す。すなわち、キーストリングが「Ｕ｛Ｒ３Ｒ｝」である場合、Ｕキーが示す描画領域は、上４分の３の領域と、下４分の１の領域とに分割される。
【００２８】
レイアウトキーの属性として文字列が指定されている場合には、指定された文字列が分割された描画領域に描画される。レイアウトキーの属性にスタイルセット名が指定されている場合には、そのスタイルセット名に対応するスタイルの設定に従って文字列が描画される。
【００２９】
「Ｉ」のラベルは、他のキーセットを連結するためのキーを示す。Ｉのラベルが付されたキー（以下、Ｉキーという。）がキーストリングに含まれている場合には、Ｉキーの属性に設定されているキーセット名（本実施形態において、キーセットファイルのファイル名は、キーセット名に一致するものとする。）またはＵＲＬ（Uniform Resource Locator）が示すキーセットファイルが読み出され、読み出されたキーセットファイル中の含まれるキーがＩキーの子として連結される。
【００３０】
例えば、「Ｋ（“Ａ”）｛Ｕ｛ＲＲ｛Ｉ（“Ｂ”）｝｝｝」というキーストリングにより記述されるキーセットＡと、「Ｋ（“Ｂ”）｛Ｕ｛ＣＣ｝｝」というキーストリングにより記述されるキーセットＢとが存在する場合、キーセットＢがキーセットＡに連結されて、キーストリングは「Ｕ｛ＲＲ｛Ｉ｛Ｕ｛ＣＣ｝｝｝｝」となる。この場合、キーセットＢのＣキーは、キーセットＡの描画領域（Ｕキーが示す）を、上下に２分割した下側２分の１を、左右に２分割したもの、すなわち上下左右に４分割した描画領域が割り当てられる。このように、本実施形態の描画システムでは、レイアウトキーに割り当てられる描画領域は、親のキーに割り当てられている描画領域に応じて大きさが変わることを想定している。
【００３１】
以下、描画システムの詳細について説明する。
【００３２】
＝＝システム構成＝＝
図２は、本実施形態の描画システムの全体構成を示す図である。  
本実施形態の描画システムは、ユーザ端末１０およびキーセット提供サーバ２０を含んで構成されている。ユーザ端末１０およびキーセット提供サーバ２０は、通信ネットワーク３０を介して互いに通信可能に接続される。通信ネットワーク３０は、例えば、インターネットやＬＡＮ（Local Area Network）であり、イーサネット（登録商標）、フレームリレー網、公衆電話回線網、無線通信網などにより構築される。
【００３３】
ユーザ端末１０は、ユーザが操作する、例えば、パーソナルコンピュータやワークステーション、ＰＤＡ（Personal Digital Assistance）、携帯電話、ＰＯＳ（Point Of Sales）端末などのコンピュータである。ユーザ端末１０には、キーセットがキーストリングとして記述されたファイル（以下、キーセットファイルという。）が記憶され、キーセットファイルに含まれるキーストリングに基づいて文字列が描画される。
【００３４】
キーセット提供サーバ２０は、キーセットファイルを提供する、例えば、パーソナルコンピュータやワークステーションなどのコンピュータである。キーセット提供サーバ２０は、ユーザ端末１０からのリクエストに応じてキーセットファイルをユーザ端末１０に送信する。本実施形態では、キーセット提供サーバ２０は、Ｗｅｂサーバの機能を有し、ＨＴＴＰ（HyperText Transfer Protocol）に従ってキーセットファイルを送信するものとする。
【００３５】
ユーザはユーザ端末１０を操作し、キーセット提供サーバ２０にアクセスしてキーセットファイルを取得し、ユーザ端末１０がキーセット提供サーバ２０から取得したキーセットファイルに含まれるキーストリングに基づいて文字列を描画することもできる。
【００３６】
また、キーストリングにＩキーが含まれており、Ｉキーに、キーセット提供サーバ２０に記憶されているキーセットファイルへのＵＲＬが指定されている場合には、ユーザ端末１０は、ＵＲＬを指定したリクエストをキーセット提供サーバ２０に送信し、キーセット提供サーバ２０から応答されるキーセットファイルを受信し、受信したキーセットファイルに含まれるキーストリングをＩキーの子として連結することもできる。
【００３７】
＝＝ハードウェア＝＝
図３は、ユーザ端末１０およびキーセット提供サーバ２０のハードウェア構成を示す図である。同図に示すように、ユーザ端末１０およびキーセット提供サーバ２０はそれぞれ、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、通信インタフェース１０４、入力装置１０５、出力装置１０６を備えている。
【００３８】
記憶装置１０３は、各種のプログラムやデータを記憶する、例えば、ハードディスクドライブやＣＤ−ＲＯＭドライブ、フラッシュメモリなどである。ＣＰＵ１０１は、記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより各種の機能を実現する。通信インタフェース１０４は、通信ネットワーク３０に接続するためのインタフェースである。通信インタフェース１０４は、例えば、イーサネット（登録商標）に接続するためのアダプタや、電話回線網に接続するためのモデム、無線通信器などである。
【００３９】
入力装置１０５は、データの入力を受け付ける、例えば、キーボードやマウス、タッチパネルなどである。出力装置１０６は、データを出力する、例えば、ディスプレイやプリンタなどである。
【００４０】
＝＝キーセット提供サーバ２０＝＝
図４は、キーセット提供サーバ２０の機能ブロック図である。  
上述したように、キーセット提供サーバ２０は、一般的なウェブサーバとしての機能を提供するウェブ処理部２１１およびキーセットファイル記憶部２１２を備えている。
【００４１】
キーセットファイル記憶部２１２には、キーセットファイルが記憶される。本実施形態では、キーセットファイル記憶部２１２には、「ｎｅｗｓ．ｈｔｍｌ」というファイル名のキーセットファイル２が記憶されており、キーセット提供サーバ２０が提供するキーセットファイル２のＵＲＬは「http://server/news.html」であるものとする。
【００４２】
なお、ウェブ処理部２１１は、キーセット提供サーバ２０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。また、キーセットファイル記憶部２１２は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現される。キーセットファイル記憶部２１２は、例えば、キーセット提供サーバ２０で動作するオペレーティングシステムが提供するファイルシステムのディレクトリとして実現することができる。
【００４３】
＝＝ユーザ端末１０＝＝
図５は、ユーザ端末１０の機能ブロック図である。  
ユーザ端末１０は、キーセット描画処理部１１１、キーストリングパーサ１１２、入出力インタフェース１１３、マネージャコントローラ１１４、ファイルマネージャ１１５、ウェブマネージャ１１６、キーセット記憶部１５１、キーセットファイル記憶部１５２を備えている。
【００４４】
なお、キーセット描画処理部１１１、キーストリングパーサ１１２、入出力インタフェース１１３、マネージャコントローラ１１４、ファイルマネージャ１１５、およびウェブマネージャ１１６は、ユーザ端末１０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。また、キーセット記憶部１５１およびキーセットファイル記憶部１５２は、メモリ１０２や記憶装置１０３が提供する記憶領域として実現される。
【００４５】
キーセットファイル記憶部１５２は、キーセットファイルを記憶する。本実施形態では、キーセットファイル記憶部１５２には、図１に示すキーセットファイル１が記憶されているものとするが、もちろんその他のキーセットファイルが記憶されてもよい。キーセットファイル記憶部１５２は、例えば、ファイルシステムのディレクトリとして実現することができる。
【００４６】
ファイルマネージャ１１５は、ファイル名の指定を受け付けて、指定されたファイル名が示すキーセットファイルをキーセットファイル記憶部１５２から読み出す。  
ウェブマネージャ１１６は、ＵＲＬを受け付けて、ＵＲＬが示すキーセットファイルをキーセット提供サーバ２０から取得する。ウェブマネージャ１１６は、受け付けたＵＲＬを設定したＨＴＴＰリクエストをキーセット提供サーバ２０に送信し、キーセット提供サーバ２０からＨＴＴＰリクエストに対するレスポンスとして送信されるキーセットファイルを受信する。
【００４７】
マネージャコントローラ１１４は、ファイルマネージャ１１５やウェブマネージャ１１６を制御する。マネージャコントローラ１１４は、キーセット名を受け付け、受け付けたキーセット名に応じて、ファイルマネージャ１１５またはウェブマネージャ１１６にキーセット名を与えて呼び出し、キーセットファイルを取得する。マネージャコントローラ１１４は、例えば、キーセット名が「ｈｔｔｐ：／／」で始まっていれば、ウェブマネージャ１１６を呼び出し、それ以外であればファイルマネージャ１１５を呼び出すようにすることができる。
【００４８】
なお、本実施形態では、ファイルマネージャ１１５がファイルシステムからのファイルの読み出しを行い、キーセット提供サーバ２０からＨＴＴＰによるキーセットファイルの受信をウェブマネージャ１１６が行うものとしたが、例えば、ＦＴＰサーバからキーセットファイルを取得するＦＴＰマネージャや、電子メールによりキーセットファイルを受信する電子メールマネージャ、キーボードなどの入力装置１０５から直接キーストリングの入力を受け付けて、受け付けたキーストリングを含むキーセットファイルを生成する入力装置マネージャなどを設けるようにすることもできる。
【００４９】
キーストリングパーサ１１２は、キーセットファイル記憶部１５２に記憶されているキーセットファイル１を読み出し、読み出したキーセットファイル１に含まれているキーストリングを解析して、ツリー構造のキーを示すデータ（以下、キーツリー構造体という。）を生成する。キーストリングパーサ１１２は、生成したキーツリー構造体をキーセット記憶部１５１に記憶する。なお、キーツリー構造体は、例えば、各キーをメモリ上のオブジェクトとして表現し、オブジェクト間の親子関係は、ポインタや参照により表現することができる。
【００５０】
また、キーストリングパーサ１１２は、キーストリングにＩキーが含まれている場合には、Ｉキーの属性として設定されているキーセット名を与えてマネージャコントローラ１１４を呼び出す。キーストリングパーサ１１２は、マネージャコントローラ１１４からキーセットファイルを取得し、取得したキーセットファイルに含まれているキーストリングを解析して、キーツリー構造体を生成し、生成したキーツリー構造体のルートが、Ｉキーの子になるように接続する。
【００５１】
図６は、図１に示したキーセットファイル１をキーストリングパーサ１１２が解析した結果である、キーツリー構造体４０の構造を説明する図である。キーツリー構造体４０には、Ｉキー４１が含まれており、Ｉキー４１の子として、Ｋキー４２が連結されている。Ｋキー４２以下のキーツリー構造体４０は、キーセット提供サーバ２０が提供するキーセットファイル２のキーストリングを解析した結果である。
【００５２】
また、キーストリングパーサ１１２は、キーセットファイル１に含まれるスタイルキーに基づいて、スタイルの設定名ごとのスタイルを管理するテーブル（以下、スタイル管理表５０という。）を生成する。図７は、スタイル管理表５０の構成例を示す図である。スタイル管理表５０には、スタイルセット名に対応付けて、スタイル名とその値とが格納される。なお、スタイル管理表５０には、設定可能なスタイル名のデフォルト値が、スタイルセット名が「デフォルト」として設定されるものとする。
【００５３】
キーセット描画処理部１１１は、キーセット記憶部１５１に記憶されたキーツリー構造体に基づいて、文字列を出力装置１０６に出力する。なお、キーセット描画処理部１１１の処理の詳細については後述する。
【００５４】
入出力インタフェース１１３は、入力装置１０５からのデータの入力や、出力装置１０６へのデータの出力、マネージャコントローラ１１４との間のデータのやり取りなどを制御する。
【００５５】
＝＝文字列の出力処理＝＝
以下、ユーザ端末１０における文字列の出力処理について説明する。なお、以下の処理では、予めキーストリングパーサ１１２によりキーツリー構造体４０およびスタイル管理表５０が生成されているものとする。また、本実施形態では、所定のフォントにより文字列が描画されるものとする。
【００５６】
図８は、ユーザ端末１０による文字列の出力処理の流れを示す図である。  
キーセット描画処理部１１１は、キーツリー構造体４０のルートとなるキーをｋｅｙ変数に設定する（Ｓ５０１）。キーセット描画処理部１１１は、出力装置１０６に描画可能な最大の描画領域を取得し、取得した描画領域の幅および高さをそれぞれｗおよびｈとする（Ｓ５０２）。本実施形態では、描画領域は矩形であり、矩形の左上を基準座標（０，０）として、「（Ｘ座標，Ｙ座標，幅，高さ）」で表現するものとする。
【００５７】
キーセット描画処理部１１１は、描画領域（０，０，ｗ，ｈ）をｋｅｙに設定する（Ｓ５０３）。なお、キーセット描画処理部１１１は、例えば、キーの属性に描画領域を設定する。  
キーセット描画処理部１１１は、ｋｅｙのラベルが「Ｓｅ」でなければ（Ｓ５０４：ＮＯ）、後述するｋｅｙの描画処理を実行する（Ｓ５０５）。  
キーセット描画処理部１１１は、キーツリー構造体４０においてｋｅｙを基準に、深さ優先順に次のキーが含まれている場合には（Ｓ５０６：ＹＥＳ）、次のキーをｋｅｙとして（Ｓ５０７）、ｋｅｙのラベルが「Ｓｅ」でなければ（Ｓ５０４：ＮＯ）、ｋｅｙの描画処理を行う（Ｓ５０５）。
【００５８】
以上のようにして、キーセット描画処理部１１１は、キーツリー構造体４０に含まれるスタイルキー以外のキーのそれぞれについて、深さ優先順にステップＳ５０５の描画処理を行うことになる。したがって、キーセット描画処理部１１１は、キーツリー構造体４０に含まれるスタイルキーを除く全てのキーについて描画処理を行うことができる。すなわち、キーセットファイル１および連結されるキーセットファイル２に記述されたスタイルキーを除く全てのキーが描画される。
【００５９】
図９は、図８のステップＳ５０５におけるｋｅｙの描画処理の流れを示す図である。  
まず、キーセット描画処理部１１１は、ｋｅｙに設定されている描画領域を、キーツリー構造体４０においてｋｅｙの子となるキー（以下、子キーという。）のそれぞれに設定する（Ｓ５２０）。  
次に、キーセット描画処理部１１１は、ｋｅｙの子キーの中に、レイアウトキーが含まれているかどうかを判断し（Ｓ５２１）、レイアウトキーが子キーに含まれていない場合には（Ｓ５２１：ＮＯ）、処理を終了する。
【００６０】
キーセット描画処理部１１１は、ｋｅｙの子キーにレイアウトキーがある場合には（Ｓ５２１：ＹＥＳ）、ｋｅｙに設定されている描画領域のＸ座標、Ｙ座標、幅、および高さをそれぞれ、ｘ、ｙ、ｗ、ｈとする（Ｓ５２２）。キーセット描画処理部１１１は、子キーの中のレイアウトキーの数をカウントしてｎとする（Ｓ５２３）。キーセット描画処理部１１１は、ｗをｎで割った商をｃｗとし（Ｓ５２４）、ｈをｎで割った商をｃｈとする（Ｓ５２５）。キーセット描画処理部１１１は、変数ｍを０として（Ｓ５２６）、次の子キーが存在する間（Ｓ５２７：ＹＥＳ）、以下の処理を行う。
【００６１】
キーセット描画処理部１１１は、次の子キーをｃｋとして（Ｓ５２８）、ｃｋのラベルが「Ｃ」であれば（Ｓ５２９：Ｃ）、ｘ＋ｍ×ｃｗの演算結果をｃｘとして（Ｓ５３０）、領域（ｃｘ，ｙ，ｃｗ，ｈ）を描画領域としてｃｋに設定する（Ｓ５３１）。  
ｃｋのラベルが「Ｒ」であれば（Ｓ５２９：Ｒ）、キーセット描画処理部１１１は、ｙ＋ｍ×ｃｈの演算結果をｃｙとして（Ｓ５３２）、領域（ｘ，ｃｙ，ｗ，ｃｈ）を描画領域としてｃｋに設定する（Ｓ５３３）。
【００６２】
以上のようにして、ｃｋがＣキーの場合、ｋｅｙの描画領域をＸ軸方向にｎ分割した描画領域がｃｋに設定され、ｃｋがＲキーの場合、ｋｅｙの描画領域をＹ軸方向にｎ分割した描画領域がｃｋに設定される。
【００６３】
一方、キーセット描画処理部１１１は、ｃｋのラベルが「Ｃ」および「Ｒ」のいずれでもない場合は（Ｓ５２９：その他）、ステップＳ５２７からの処理を繰り返す。  
キーセット描画処理部１１１は、後述のｃｋの描画処理を行い（Ｓ５３４）、ｍをインクリメントして（Ｓ５３５）、ステップＳ５２７からの処理を繰り返す。
【００６４】
以上のようにして、ｋｅｙの子キーのすべてに描画領域が設定され、子キーがレイアウトキーである場合には、描画領域をＸ軸方向またはＹ軸方向に分割した領域が設定されることになる。
【００６５】
上記図９の処理は、キーツリー構造体４０を構成するスタイルキーを除く全てのキーについて行われる。したがって、本実施形態の描画システムによれば、キーツリー構造体４０に含まれるスタイルキーを除く各キーには、キーツリー構造体４０のルートに割り当てられた描画領域の全部または一部が割り当てられ、割り当てられた描画領域に、後述する文字列の描画が行われる。よって、１画面にキーツリー構造体４０の全体が描画されることになる。
【００６６】
図１０は、図９のステップＳ５３４におけるｃｋの描画処理の流れを示す図である。  
キーセット描画処理部１１１は、ｃｋの属性に設定されている文字列をｔとし（Ｓ５４１）、ｃｋの属性に設定されているスタイルセット名をｓｎとする（Ｓ５４２）。
【００６７】
キーセット描画処理部１１１は、スタイル管理表５０から、スタイルセット名がｓｎと一致し、かつ、スタイル名が「〜ｍｏｄｅ」であるレコードの値を取得してｍｄとし、ｓｎおよび「〜ｍｏｄｅ」に対応する値がスタイル管理表５０に設定されていない場合にはデフォルトの「〜ｍｏｄｅ」の値をｍｄとする（Ｓ５４３）。
【００６８】
キーセット描画処理部１１１は、ｍｄが「ａｕｔｏ」であれば（Ｓ５４４：ＹＥＳ）、スタイル管理表５０から、スタイルセット名がｓｎと一致し、かつ、スタイル名が「〜ｆｏｎｔｓｉｚｅ」であるレコードの値を取得してｆｓとし、ｓｎおよび「〜ｆｏｎｔｓｉｚｅ」に対応する値がスタイル管理表５０に登録されていない場合には、デフォルトの「〜ｆｏｎｔｓｉｚｅ」の値をｆｓとする（Ｓ５４５）。
【００６９】
キーセット描画処理部１１１は、ｃｋに設定された描画領域に、ｆｓのフォントサイズでｔを描画できるかどうかを判定し（Ｓ５４６）、描画できなければ（Ｓ５４６：ＮＯ）、後述のフォントサイズの決定処理を行う（Ｓ５４７）。  
また、キーセット描画処理部１１１は、ｍｄが「ａｕｔｏ」でない場合にも（Ｓ５４４：ＮＯ）、フォントサイズの決定処理を行う（Ｓ５４７）。  
キーセット描画処理部１１１は、以上のようにして決定されたｆｓのフォントサイズで、ｃｋに設定されている描画領域にｔを描画する（Ｓ５４８）。
【００７０】
図１１は、図１０のステップＳ５４７のフォントサイズの決定処理の流れを示す図である。
【００７１】
キーセット描画処理部１１１は、ユーザ端末１０が処理可能な最小のフォントサイズを取得してｆｓ０とし（Ｓ５６１）、ユーザ端末１０が処理可能な最大のフォントサイズをｆｓ１とする（Ｓ５６２）。なお、ユーザ端末１０が処理可能な最大または最小のフォントサイズは、例えば、ユーザ端末１０で動作しているオペレーティングシステムに問合わせることで取得することができる。また、キーセット描画処理部１１１は、出力装置１０６から出力可能な描画領域のサイズとピクセルサイズとを取得して、最大または最小のフォントサイズを算出するようにしてもよい。
【００７２】
キーセット描画処理部１１１は、（ｆｓ０＋ｆｓ１）÷２で求められる値をｆｓとし（Ｓ５６３）、ｆｓとｆｓ０との差が所定値以下である場合には（Ｓ５６４：ＹＥＳ）、処理を終了する。なお、所定値は例えば、ユーザ端末１０で動作するオペレーティングシステムが取り扱い可能なフォントサイズの刻み（例えば０．５ポイントなど）とすることができる。
【００７３】
ｆｓがｆｓ０と一致しない場合（Ｓ５６４：ＮＯ）、キーセット描画処理部１１１は、ｗの幅で、ｆｓのフォントサイズにより、ｔを単一行または複数行に描画した場合に必要となる領域の高さを算出してｔｈとする（Ｓ５６５）。ｔｈの算出には、一般的な文字列の表示処理における領域の計算式を用いることができる。例えば、キーセット描画処理部１１１は、ｔに含まれる全ての文字についてｆｓのフォントサイズで描画する場合の文字幅および文字高を算出し、文字幅の合計がｗを超えないようにｔを部分文字列に分解し、各部分文字列に含まれる文字高の最大値の合計をｔｈとして算出することができる。
【００７４】
キーセット描画処理部１１１は、ｈがｔｈよりも大きい場合（Ｓ５６６：ＹＥＳ）、ｆｓをｆｓ０とし（Ｓ５６７）、ｈがｔｈ以下の場合（Ｓ５６６：ＮＯ）、ｆｓをｆｓ１として（Ｓ５６８）、ステップＳ５６３からの処理を繰り返す。
【００７５】
以上のようにして、ｃｋに設定された描画領域に描画可能な最大のフォントサイズを求めることができる。
【００７６】
図１２は、以上の処理によりキーツリー構造体４０が描画された画面６０の一例を示す図である。図１２の例では、出力装置１０６がディスプレイなどの表示装置であり、表示装置の画面上にキーツリー構造体４０が描画された例を示す。
【００７７】
画面６０は、上下４つの行６１〜６４に分割され、最上段の行６１にはＲキーの属性に設定されていた文字列「ＳａＬＡ  インタプリタ」が表示されている。キーセットファイル１において行６１に対応するＲキーには、「〜ｍｏｄｅ」が「ａｕｔｏ」であり、「〜ｆｏｎｔｓｉｚｅ」が「２４」であるスタイルセット「＠ａ」が設定されており、図１２の例では、行６１内で表示可能な最大のフォントサイズではなく、指定されたフォントサイズで表示されることを示している。
【００７８】
行６２は、キーセット提供サーバ２０から取得されたキーセットファイル２に記述されていた３つのＲキーに応じてさらに３分割され、行６２内の行６５には、キーセットファイル２に記述されていたＲキーの属性の文字列が表示されている。
【００７９】
行６３および行６４はそれぞれ、キーセットファイル１に記述されていたＣキーにより３列に分割されており、各文字列の長さに応じて、描画領域に表示可能な最大のフォントサイズで文字列が表示されている。例えば、行６３の列６６には、改行文字を含めて２２文字の文字が表示され、行６４の列６７には、４文字の文字が表示されているが、列６６の文字の方が小さいフォントサイズで表示されている。
【００８０】
このように、本実施形態の描画システムによれば、画面の大きさに基づいて各キーについての描画領域が決定され、その描画領域に文字列が描画される。したがって、キーツリー構造体４０を構成する全てのキーのうち、表示すべき文字列が属性として設定されているものを、１画面に表示することが可能である。これにより、画面でのキーの一覧性を確保することができる。
【００８１】
また、各キーについての文字列の描画には、全ての文字列を描画可能な最大のフォントサイズが用いられる。すなわち、描画領域に応じてなるべく大きなフォントサイズで文字列を描画することができる。したがって、各キーについて、文字列の一覧性を確保しつつ、なるべく見易い表示を行うことができる。また、画面の大きさが変わった場合でも、なるべく大きな文字を描画して視認性を高めることができる。したがって、あるキーセットファイル１に記述されたキーセットに、他のキーセットファイル２のキーセットが、Ｉキーにより連結される場合、キーセットファイル２に割り当てられた描画領域に合わせてフォントサイズが調整されるので、文字列の一覧性を維持しつつ、文字の視認性も確保することができる。
【００８２】
また、本実施形態の描画システムによれば、キーはツリー構造を構成し、ツリー構造のルートに画面全体の描画領域を割り当て、各キーには、親の描画領域の全部または一部を、そのキー情報の描画領域として割り当てることができる。したがって、画面の構成は、画面を分割した状態をツリー構造として表現すればよいので、画面のデザイナは、容易に画面構成をキーストリングとして記述することができる。
【００８３】
また、本実施形態の描画システムによれば、スタイルとして「〜ｍｏｄｅ」を「ａｕｔｏ」に設定しておくことで、「〜ｆｏｎｔｓｉｚｅ」に指定されたフォントサイズで文字列が全て描画可能な場合にはそのフォントサイズで、描画できない場合には描画領域に合わせたフォントサイズで文字列が描画される。したがって、例えば、あまり大きな文字ではデザイン的に美しくないと判断される場合や、あまり大きな文字では、かえって視認性が落ちると判断される場合などに、文字の大きさの上限を制限することができる。よって、文字列の視認性を確保しつつ、文字列が表示されるデザインの柔軟性を確保することができる。
【００８４】
なお、本実施形態では、描画システムはユーザ端末１０とキーセット提供サーバ２０とを含んで構成されるものとしたが、ユーザ端末１０のみで構成することもできる。この場合、ユーザ端末１０は、ユーザ端末１０に記憶されているキーセットファイルのみを表示することができる。逆に、複数のキーセット提供サーバ２０を含むように構成することもできる。
【００８５】
また、本実施形態では、ファイルとしてキーセットが格納されているものとしたが、ファイルの形態をとらずに、例えばデータベースのレコードとして格納されていてもよい。
【００８６】
また、本実施形態では、文字列を表示するフォントは固定されているものとしたが、スタイルとしてフォントを指定することもできる。この場合、キーセット描画処理部１１１は、図１０のステップＳ５４６や図１１のステップＳ５６５の前に、ｃｋの属性に設定されているスタイルセット名に対応するフォント名またはデフォルトのフォント名を取得するようにして、取得したフォント名と、ｆｓのフォントサイズによりｔを描画した場合の領域を算出するようにする。
【００８７】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００８８】
【図１】キーセットファイル１の一例を示す図である。
【図２】本実施形態の描画システムの全体構成を示す図である。
【図３】ユーザ端末１０およびキーセット提供サーバ２０のハードウェア構成を示す図である。
【図４】キーセット提供サーバ２０の機能ブロック図である。
【図５】ユーザ端末１０の機能ブロック図である。
【図６】キーツリー構造体４０の構造を説明する図である。
【図７】スタイル管理表５０の構成例を示す図である。
【図８】ユーザ端末１０による文字列の出力処理の流れを示す図である。
【図９】図８のステップＳ５０５におけるｋｅｙの描画処理の流れを示す図である。
【図１０】図９のステップＳ５３４におけるｃｋの描画処理の流れを示す図である。
【図１１】図１０のステップＳ５４７のフォントサイズの決定処理の流れを示す図である。
【図１２】キーツリー構造体４０が描画された画面６０の一例を示す図である。
【符号の説明】
【００８９】
１      キーセットファイル
２      キーセットファイル
１０    ユーザ端末
２０    キーセット提供サーバ
３０    通信ネットワーク
４０    キーツリー構造体
５０    スタイル管理表
６０    画面
１０１  ＣＰＵ
１０２  メモリ
１０３  記憶装置
１０４  通信インタフェース
１０５  入力装置
１０６  出力装置
２１１  ウェブ処理部
２１２  キーセットファイル記憶部
１１１  キーセット描画処理部
１１２  キーストリングパーサ
１１３  入出力インタフェース
１１４  マネージャコントローラ
１１５  ファイルマネージャ
１１６  ウェブマネージャ
１５１  キーセット記憶部
１５２  キーセットファイル記憶部
２１１  ウェブ処理部
２１２  キーセットファイル記憶部
【図１】
2009064397.tif 000003
【図２】
2009064397.tif 000004
【図３】
2009064397.tif 000005
【図４】
2009064397.tif 000006
【図５】
2009064397.tif 000007
【図６】
2009064397.tif 000008
【図７】
2009064397.tif 000009
【図８】
2009064397.tif 000010
【図９】
2009064397.tif 000011
【図１０】
2009064397.tif 000012
【図１１】
2009064397.tif 000013
【図１２】
2009064397.tif 000014