(57)【要約】【課題】同時に画面表示する組合せから画面の優先度を決定して、アクセラレータキーの割当を行うことで、適切にアクセラレータキーの割り当てをすることができる仕組みを提供すること。【解決手段】アクセラレータキーを設定することが可能な情報処理装置であって、アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する優先度決定手段と、前記優先度決定手段で決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定するアクセラレータキー設定手段とを備えることを特徴とする。【選択図】図１５
2013134622.tif 000002
【特許請求の範囲】
【請求項１】
アクセラレータキーを設定することが可能な情報処理装置であって、
アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する優先度決定手段と、
前記優先度決定手段で決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定するアクセラレータキー設定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記アプリケーション画面を有するアプリケーションを実行することにより、同時に表示されたアプリケーション画面の組合せを登録する登録手段を更に備え、
前記優先度決定手段は、前記登録されたアプリケーション画面の組合せで、表示頻度の高いアプリケーション画面を高い優先度に決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセラレータキー設定手段は、アプリケーション画面ごとに設定し、設定対象のアプリケーション画面より優先度の高いアプリケーション画面で設定されていないアクセラレータキーを設定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記アプリケーション画面の構成を定義する画面定義ファイルを読み込む読込手段を更に備え、
前記アクセラレータキー設定手段は、前記画面定義ファイルから取得したアプリケーション画面の画面要素の表示に用いる文字列内の文字を使用してアクセラレータキーを設定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記アクセラレータキー設定手段で設定されたアクセラレータキーを、前記アプリケーションで利用可能にするべく、前記読込手段で読み込んだ画面定義ファイルに書き込む書込手段
を更に備えることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記アクセラレータキー設定手段でアクセラレータキーを設定することができない場合に、前記画面要素の表示に用いる文字列を代替する文字列を取得する文字列取得手段と、
前記文字列取得手段で取得した代替する文字列を表示する代替文字列表示手段と
を更に備えることを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記代替文字列表示手段で表示した文字列から変更する文字列を選択する文字列選択手段と、
前記画面要素の表示に用いる文字列を、前記文字列選択手段で選択された文字列に変更する変更手段と
を更に備えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記アクセラレータキー設定手段は、前記変更手段で画面要素の表示に用いる文字列が変更された場合に、再度所定のルールに従って、アクセラレータキーを設定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
アクセラレータキーを設定することが可能な情報処理装置の処理方法であって、
前記情報処理装置が、
アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する優先度決定ステップと、
前記優先度決定ステップで決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定するアクセラレータキー設定ステップと
を備えることを特徴とする情報処理装置。
【請求項１０】
アクセラレータキーを設定することが可能な情報処理装置で実行可能なプログラムであって、
前記情報処理装置を
アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する優先度決定手段と、
前記優先度決定手段で決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定するアクセラレータキー設定手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
アプリケーションのアクセラレータキーを設定するための情報処理装置とその処理方法及びプログラムに関する。
【背景技術】
【０００２】
デスクトップＰＣ用アプリケーションのＧＵＩでは、メニューやボタンなどの画面部品に対して、マウスを用いなくても、アクセラレータキー（例えば、Ａｌｔ＋アルファベットキーの組み合わせ）を用いて機能にアクセスできることが求められる。
【０００３】
そのため、ＧＵＩアプリケーションの開発においては、画面設計の際に、メニュー、ボタン、テキストボックスなどの各機能に対して１つずつアクセラレータキーの割り当てが行われている。
【０００４】
一般的に、アクセラレータキーの割り当てには以下の制約がある。
【０００５】
（１）同一画面内で重複しない
（２）使用することができるキーは、原則的にアルファベットの２６文字
（３）英語版のＵＩで使われている文言（英語表記）の中から文字を選ぶ
【０００６】
このような制約があるため、機能に割り当てたアクセラレータキーの管理や重複チェック、自動割り当てを行う仕組みが存在する。（例えば、特許文献１）
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第６１１４９７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、以下のような問題がある。
【０００９】
（１）近年のアプリケーション開発手法では、画面部品のまとまりをユーザコントロールとして作成し、同一の入力項目を持つ複数の画面ではユーザコントロールを共有し、開発工数を削減する手法がとられる。そのような場合、それぞれの利用シーンでアクセラレータキーが重複しないことを確認しなければならない。
（２）通常のアクセラレータキーは単語の先頭の文字を用いるが、それで重複せずに割り当てができることはまれであるため、単語内の他の文字を使うなどの対策が必要になる。
【００１０】
画面設計者は、上記の制約を満たすよう、アクセラレータキーの割り当てを行う必要があるが、アプリケーションが大規模化、複雑化することによって、目視や手作業による割り当てではアクセラレータキーの一意性を担保することが困難になりつつあった。
【００１１】
また、特許文献１の仕組みでは、「カテゴリ（Ｃａｔｅｇｏｒｙ）−機能（Ｆｕｎｃｔｉｏｎ）」という粗い分類で行われており、実際のアプリケーションの画面配置や動作まで考慮されていないため、不都合が生じる場合があった。
【００１２】
そこで、本発明は、同時に画面表示する組合せから画面の優先度を決定して、アクセラレータキーの割当を行うことで、適切にアクセラレータキーの割り当てをすることができる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的を達成するためのアクセラレータキーを設定することが可能な情報処理装置であって、アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する優先度決定手段と、前記優先度決定手段で決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定するアクセラレータキー設定手段とを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、同時に画面表示する組合せから画面の優先度を決定して、アクセラレータキーの割当を行うことで、適切にアクセラレータキーの割り当てをすることができる。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置のハードウェア構成の一例を示すハードウェア構成図。
【図２】本実施形態における機能ブロック構成の一例を示す図。
【図３】ＧＵＩアプリケーションのＵＩ定義ファイルの一例。
【図４】アクセラレータキーを付与する評価対象アプリケーションである、ファイラーアプリケーションの画面の例。
【図５】評価対象アプリケーションにおける、プルダウンメニューの一例。
【図６】評価対象アプリケーションである、ファイラーアプリケーションにおける、ＰＤＦプレビューの画面の例。
【図７】ＵＩ定義ファイルＩＯ部によって評価された画面部品のリスト。
【図８】画面部品組み合わせ評価部の処理の一例を示すフローチャート。
【図９】アクセラレータキー割り当て部の全体処理の一例を示すフローチャート。
【図１０】アクセラレータキー処理の一例を示すフローチャート。
【図１１】画面部品組合せデータベースの一例を示す図。
【図１２】同一画面部品抽出後の画面部品組合せデータベースの一例を示す図。
【図１３】画面部品の出現頻度評価結果の一例を示す図。
【図１４】アクセラレータキー割り当てツールの一例を示す画面。
【図１５】本実施形態を用いた発明に適用可能な機能ブロック図
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施形態を詳細に説明する。なお、以下、グラフィカルユーザインターフェースをＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略）として記載する。
【００１７】
図１は、本発明における情報処理装置のハードウェア構成の一例を示すハードウェア構成図である。
【００１８】
図１において、１０１はＣＰＵで、システムバス１０５に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ１０２あるいは補助記憶装置１１２には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００１９】
１０３はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＯＭ１０２あるいは補助記憶装置１１２からＲＡＭ１０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００２０】
また、１０５は入力コントローラで、キーボード（ＫＢ）１０９やマウス１１０等のポインティングデバイス等からの入力を制御する。１０６はビデオコントローラで、ディスプレイ２１１等の表示器への表示を制御する。なお、ディスプレイの種類はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
【００２１】
１０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の補助記憶装置１１２へのアクセスを制御する。
【００２２】
１０８はネットワークコントローラで、ネットワーク（例えば、図１に示したネットワーク１１３）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００２３】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ１０１は、ディスプレイ２１０上のマウスカーソル等でのユーザ指示を可能とする。
【００２４】
本発明を実現するための後述する各種プログラムは、補助記憶装置１１２に記録されており、必要に応じてＲＡＭ１０３にロードされることによりＣＰＵ１０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、補助記憶装置１１２に格納されており、これらについての詳細な説明も後述する。なお、補助記憶装置１１２は、例えば、ハードディスクや外部メモリ等の記憶部である。
【００２５】
図２は、本実施形態における機能ブロック構成の一例を示す図である。
【００２６】
アクセラレータキー割り当てＧＵＩ２０１は、画面設計者が評価対象アプリケーション２０７内で使用するアクセラレータキーの割り当て、管理を指示するためのＧＵＩ制御部である。
【００２７】
アクセラレータキー割り当て部２０２は、アクセラレータキー割り当てＧＵＩ２０１からの指示を受けて、評価対象アプリケーション２０７内で使用するアクセラレータキーの割り当て、管理を行う。
【００２８】
ＵＩ定義ファイルＩＯ部２０３は、ＵＩ定義ファイル２０４に記述された画面部品定義およびそこで使用されるアクセラレータキーの割り当て情報を読み取り、およびアクセラレータキー割り当て部２０２が割り当てたアクセラレータキー情報をＵＩ定義ファイル２０４に書き戻す機能を持つ。なお、ＵＩ定義ファイル２０４の一例を示す図は図３である。また、ＵＩ定義ファイルを解析し、画面部品ごとに内部ＩＤを振る機能を有する。
【００２９】
ＵＩ定義ファイル２０４は、評価対象アプリケーション２０７で使用する画面部品及びそこで使用されるアクセラレータキーの割り当て情報が記述されている。
【００３０】
シソーラス２０５は、評価対象アプリケーション２０７のＧＵＩで使用している文言では、どうしても一意なアクセラレータキーを割り当てられない場合、類義語を検索して代替案を提示するためのデータベースである。データそのものは既存に存在するシソーラス辞書等で利用するデータであり、様々なデータベースを利用できる。シソーラスとは、同義語や意味上の類似関係、包含関係などによって分類されたデータである。また、シソーラス２０５は外部のサーバに記憶されていてもよい。
【００３１】
画面部品組合せデータベース２０６は、評価対象アプリケーション２０７の利用において、同一画面内で同時に表示されうる画面部品の組み合わせを格納したデータベースである。なお、画面部品組合せデータベース２０６の一例を示す図は、図１１である。これは画面部品組み合わせ評価部２０８によって構築されるが、画面設計書を元に手作業で構築してもよい。
【００３２】
評価対象アプリケーション２０７は、アクセラレータキーを割り当てる対象となる、開発中のアプリケーションである。本実施例では、ファイラーアプリケーションを例にとって後述する。
【００３３】
画面部品組み合わせ評価部２０８は、評価対象アプリケーション２０７に組み込む形で使用され、評価対象アプリケーション２０７の実行中に、同時に表示されている画面部品の組み合わせを評価し、画面部品組合せデータベース２０６に蓄積する機能を持つ。なお、ここでは評価対象アプリケーション２０７に組み込む形で画面部品組み合わせ評価部２０８を記載しているが、評価対象アプリケーション２０７に組み込まないことも可能である。つまり、少なくとも、アクセラレータキー割り当てＧＵＩ２０１、アクセラレータキー割り当て部２０２、ＵＩ定義ファイルＩＯ部２０３を有するツールとしての本発明に画面部品組み合わせ評価部２０８が含まれる。
【００３４】
図３は、本発明が対象とする、ＧＵＩアプリケーションのＵＩ定義ファイルの一例である。
【００３５】
本実施例ではＵＩ定義ファイルはＸＭＬで記述され、ＸＭＬの要素が画面部品に対応する。
【００３６】
３０１はメインウィンドウを表す要素で、ｗｉｄｇｅｔというタグで表現されている。画面部品の種類はｃｌａｓｓという属性で定義され、ＱＭａｉｎＷｉｎｄｏｗ、ＱＭｅｎｕ、ＱＰｕｓｈＢｕｔｔｏｎなどの種類がある。
【００３７】
３０２はメニューを表す要素である。ここではアクセラレータキーはｓｔｒｉｎｇという子要素で定義される。項目名に＆（＆ａｍｐ）を含めると、その次の文字がアクセラレータキーとして定義される。３０３はボタンを表す要素である。
【００３８】
なお、本実施例ではＸＭＬ形式で記述されているが、その他の形式のテキストファイル、バイナリファイル、リレーショナルデータベースなど、ＵＩ定義ファイルＩＯ部２０３を通して読み取りおよび書き込みができれば形式を問わない。
【００３９】
図４は、本発明を適用して開発する評価対象アプリケーション２０７のＧＵＩの一例である。本発明は開発するアプリケーションのジャンルは問わないが、本実施例では、ファイラーアプリケーションを用いて説明する。ファイラーとは、ファイルマネージャーとも呼ばれ、ファイルシステムを扱うためのユーティリティソフトウェアである。
【００４０】
４００は、該ファイラーアプリケーションのメインウィンドウである。４０１は、該ファイラーアプリケーションのメインメニューである。メニューには、４０１のメインメニューには、「Ｆｉｌｅ」「Ｅｄｉｔ」「Ｖｉｅｗ」「Ｔｏｏｌ」「Ｈｅｌｐ」のメニューが存在する。それぞれの項目には、アクセラレータキーが付加され、下線で表示されている。
【００４１】
４０２は、ファイルシステムの階層構造を表すツリービューである。４０３は、ディレクトリの中身を参照するためのリストビューである。ツリービュー４０２で選択したディレクトリ内に存在するファイルおよびディレクトリが表示される。各ファイルおよびディレクトリはアイコンで表示され、視覚的に種類が判別できるようになっている。
【００４２】
４０４は、ディレクトリ内の画像ファイルである。例えば、ＪＰＧの拡張子を持ち、画像であることが分かるアイコンがつけられている。４０５は、ディレクトリ内のＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイルである。例えば、ＰＤＦの拡張子を持ち、書類であることが分かるアイコンがつけられている。
【００４３】
４０６は、ファイルプロパティ画面部品である。リストビュー４０３にて、任意のファイルをマウスクリックなどの手段で選択すると、ウィンドウ右に表示される。ここでは、ファイル名、不可視属性など、すべてのファイルに共通の属性を閲覧、編集できる。画面部品内の要素であるラベル４０７（Ｎａｍｅ）、チェックボックス４０８（Ｒｅａｄ  Ｏｎｌｙ）、チェックボックス４０９（Ｈｉｄｄｅｎ）には、アクセラレータキーが付加され、下線で表示されている。
【００４４】
４１０は、４００のプレビュー画面に表示される画像プレビュー画面部品である。リストビュー４０３にて、画像ファイルをマウスクリックなどの手段で選択すると、ファイルの画像が表示される。ここでは、画像の内容確認、拡大、縮小、回転が行える。画面部品内のそれぞれの項目「Ｚｏｏｍ  Ｉｎ」「Ｚｏｏｍ  Ｏｕｔ」「Ｒｏｔａｔｅ  Ｌｅｆｔ」「Ｒｏｔａｔｅ  Ｒｉｇｈｔ」には、アクセラレータキーが付加され、下線で表示されている。
【００４５】
図５は、メインメニュー４０１におけるＥｄｉｔメニューを開いた際に表示される。プルダウンメニューの一例である。プルダウンメニュー５０１内のそれぞれの項目「Ｕｎｄｏ」「Ｒｅｄｏ」「Ｃｕｔ」「Ｃｏｐｙ」「Ｐａｓｔｅ」「Ｍｏｖｅ  ｔｏ」「Ｓｅｌｅｃｔ  Ａｌｌ」には、アクセラレータキーが付加され、下線で表示されている。
【００４６】
図６は、４００のプレビュー画面に表示されるＰＤＦプレビュー画面部品６０１である。リストビュー４０３にて、ＰＤＦファイルをマウスクリックなどの手段で選択すると、表示される。ここでは、表紙の内容確認、拡大、縮小、印刷が行える。画面部品内のそれぞれの項目には、アクセラレータキーが付加され、下線で表示されている。
【００４７】
なお、図６の６０１と図４の４１０は選択されたファイルの種類によって表示される画面の例であり、同じ領域に表示される画面である。
【００４８】
図７は、ＵＩ定義ファイルＩＯ部２０３がＵＩ定義ファイルを解析して抽出した画面部品のリストである。画面部品とは、メニュー、パネルなど、必ず同時に表示される画面要素の単位である。
【００４９】
なお本実施形態では、アクセラレータキーの割り当てのため、ツリービュー４０２や、リストビュー４０３など、アクセラレータキーを含まない画面部品は含まないように構成されている。また、画面部品のリストは別途ユーザによって生成されて記憶されているものであってもよい。
【００５０】
図８は、画面部品組み合わせ評価部２０８の動作を表したフローチャートである。
【００５１】
画面部品組み合わせ評価部２０８は、スタティックライブラリ、又はダイナミックリンクライブラリとして、評価対象アプリケーション２０７の一部として動作する。
【００５２】
一般に、ＧＵＩを持つアプリケーションはイベントループと呼ばれるループ処理を実行し、この中でマウスクリックやキー入力などのイベントの発生を検知し、そのイベントに対応するイベントハンドら関数を呼び出すことによって動作する。画面部品組み合わせ評価部２０８は、このイベントループに処理を追加することで、ＵＩ定義ファイルに記述された各画面部品の表示状態を監視し、同一画面内に表示されている画面部品の組み合わせ、すなわちアクセラレータキーの重複をチェックする必要がある画面部品の組み合わせを評価する。
【００５３】
イベントループはＳ８０１から開始する。Ｓ８０２において、評価対象アプリケーション２０７のバイナリがデバッグビルド構成でビルドされているかどうかをチェックする。Ｓ８０２に置いて、デバックビルドと判定される場合にはＳ８０６へ処理を移し、リリースビルドの場合にはＳ８０３へ処理を移す。
【００５４】
通常のアプリケーションの開発はデバッグビルド、リリースビルドの２つの構成で行われ、リリースビルドでは、変数の監視、画面部品の組み合わせ評価など、処理速度の低下を招き、かつ製品としてのアプリケーションには不要なデバッグ機能は動かないようにするのが一般的である。
【００５５】
Ｓ８０３、Ｓ８０４は、通常のアプリケーションのイベントループで行われる処理である。Ｓ８０３はアプリケーション固有の処理、Ｓ８０４はウィンドウのクローズなど、アプリケーションの終了判定部分である。アプリケーションに終了指示が出された場合、Ｓ８０５に遷移し、イベントループとアプリケーションは終了する。
【００５６】
Ｓ８０６では、図３のＵＩ定義ファイルに定義されている各画面部品の状態をチェックし、画面の表示から消えた、もしくは新しく画面に表示された画面部品がないかをチェックする。画面部品の表示状態に変化がない場合は、通常のアプリケーション処理のＳ８０３に戻る。
【００５７】
Ｓ８０７では、この時点で可視状態になっている画面部品のＩＤをリストを作成する。このリストを画面部品組合せと呼ぶ。例えば、図４の画面状態では、この画面部品組合せは［１，６，７］となる。
【００５８】
Ｓ８０８では、Ｓ８０７で抽出された画面部品組合せを画面部品組合せデータベース２０６から検索する。図１１は画面部品組合せデータベースの一例であるが、これによれば、画面部品組合せ［１，６，７］は組合せＩＤ５として登録されている。
【００５９】
Ｓ８０９では、Ｓ８０８で組合せＩＤが見つかったかどうかをチェックする。見つかっていた場合は通常のアプリケーション処理Ｓ８０３に戻る。
【００６０】
Ｓ８１０では、Ｓ８０７で抽出された画面部品組合せが画面部品組合せデータベース２０６内に存在しなかった場合、該画面部品組合せに新規ＩＤを振って登録する。
【００６１】
このようにして、同一アプリケーション内でアクセラレーターが重複する可能性のある画面部品の組み合わせを抽出する。この過程をより確実にするためには、評価対象アプリケーション２０７のシステムテストにおいて、ＧＵＩのテストの網羅率を上げることが望ましい。
【００６２】
図９は、アクセラレータキー割り当て部２０２の動作を示したフローチャートである。本実施例では、アクセラレータキー割り当てＧＵＩ２０１を起動することによって実行される。
【００６３】
処理はＳ９０１から開始し、Ｓ９０２では、画面部品組み合わせデータベース２０６をＲＡＭ１０３にロードする。
【００６４】
Ｓ９０３では、画面部品ＩＤを出現頻度降順でソートしたリストを作成する。具体的には、画面部品組み合わせデータベース２０６の件数をカウントし、レコード数の多い画面部品ＩＤを出現頻度の高い画面具品として評価する。例えば、一番レコード数の多い画面部品ＩＤは「１」である。出願頻度について図１２と図１３を用いて説明する。
【００６５】
図１２は、図１１の画面部品組合せデータベースから、画面部品ＩＤ６を含む行を抽出した場合の図である。この行数から、画面部品ＩＤ６の出現頻度は３と評価される。
【００６６】
図１３は、同様にして各画面部品の出現頻度を評価した図である。これを画面部品ＩＤの出現頻度順リスト１３０１とする。
【００６７】
Ｓ９０４からＳ９１２では、Ｓ９０３で作成された画面部品ＩＤの出現頻度順リスト１３０１を降順でループし、それぞれの画面部品について処理を行う。
【００６８】
Ｓ９０５では、現在のループＳ９０４が対象としている画面部品について、画面部品組み合わせデータベース２０６から、当該画面部品ＩＤが含まれる組合せＩＤを抽出する。図１２から、例えば、画面部品ＩＤ６が含まれる組合せＩＤは［２，５，６］であることが分かる。
【００６９】
Ｓ９０６からＳ９１１では、Ｓ９０５で作成した組み合わせＩＤリストについてループする。
【００７０】
Ｓ９０７では、Ｓ９０４で現在対象にしている画面部品について、ＵＩ定義ファイルから画面要素を抽出する。画面要素とは、ラベル、ボタン、メニューなど、アクセラレータキーを持ちうる画面の構成要素である。画面部品ＩＤ６に含まれる画面要素はラベル４０７、チェックボックス４０８、チェックボックス４０９である。また、図３で説明したように抽出される要素である。
【００７１】
Ｓ９０８からＳ９１０では、Ｓ９０７で作成した画面要素のリストについてループする。
【００７２】
Ｓ９０９では、Ｓ９０８で対象としている画面要素について、アクセラレータキーの割り当てを行う。アクセラレータキーの割り当ての詳細な処理については、図１０を用いて説明する。
【００７３】
Ｓ９１３にてすべての画面要素についてアクセラレータキーの割り当てが終了する。
【００７４】
図１０は、図９におけるＳ９０９内部の処理の詳細である。
【００７５】
Ｓ１００１でアクセラレータキーの割り当て処理をスタートし、Ｓ１００２では、現在対象としている画面要素が、アクセラレータキーの割り当て対象外としてマークされているかどうか確認する。このマークはアクセラレータキー割り当て部２０２が内部で管理しているもので、過去にアクセラレータキー割り当て部２０２を実行した実績がある場合、Ｓ１０１７によって保存される。割り当て対象外としてマークされていた場合は、Ｓ１００３に遷移し、当該画面要素に対するアクセラレータキーの割り当てを終了する。また、アクセラレータキーの割り当て対象外としてマークされていない場合は、Ｓ１００７の判定のために、Ｓ１００４で「１」を「ｉ」に代入する。
【００７６】
Ｓ１００５では、Ｓ９０６で対象にしている組み合わせＩＤにおいて、Ｓ９０４で対象にしている画面部品内部およびそれより優先度の高い画面部品とアクセラレータキーの重複があるかどうかチェックする。例えば、図１１の１１０１を参照すると、画面部品ＩＤ６について、組合せＩＤ５について評価している場合、画面部品ＩＤ６より出現頻度の高い画面部品はＩＤ１であるので、画面部品ＩＤ１および画面部品ＩＤ６について、重複がないことをチェックする。
【００７７】
重複は、例えば、画面部品ＩＤ１「Ｈｅｌｐ」と画面部品ＩＤ６の要素の「Ｈｉｄｄｅｎ」（図４の４０９）は先頭の単語が「Ｈ」であるため重複と判定される。
【００７８】
Ｓ１００６では、Ｓ１００５において重複が見つかったか、又はアクセラレータキーがまだ割り当てられていないかをチェックする。すでにアクセラレータキーが割り当て済みで、かつＳ１００５において重複が確認されなかった場合は、Ｓ１０１８に遷移し、ＵＩ定義ファイルにアクセラレータキー割り当て結果を書き戻した後、終了する。例えば画面部品ＩＤ６の要素の「Ｈｉｄｄｅｎ」では、「Ｈ」ではなく、「ｄ」がアクセラレータキーとして割り当てられ、ＵＩ定義ファイルに記憶される。
【００７９】
Ｓ１００８からＳ１０１５では、アクセラレータキー割り当てにおける複数のルールを、望ましい順に実行し、割り当てを行う。割り当て時には都度Ｓ１００５に戻り、重複をチェックする。重複が見られなかったらＳ１０１８に遷移し終了する。すなわち、Ｓ１００８〜Ｓ１００５はの処理は、画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定する処理である。
【００８０】
Ｓ１００８では、当該画面要素の先頭の単語の最初の文字を割り当てる。もっとも望ましいアクセラレータキー割り当て方法である。例えば、画面部品ＩＤ６の要素の「Ｎａｍｅ」（図４の４０７）は、優先度の高い画面の画面部品ＩＤ１の要素でアクセラレータキー「Ｎ」が割り当てられていないので、ここで「Ｎ」がこの画面要素のアクセラレータキーに割り当てられる。
【００８１】
Ｓ１００９では、２番目以降の各単語の最初の文字を割り当てる。単語が１語しかない場合、このステップはスキップされる。例えば、「Ｒｏｔａｔｔｅ  Ｌｅｆｔ」で「Ｌ」が割り当てられる。
【００８２】
Ｓ１０１０では、最初の単語内の子音を割り当てる。例えば画面部品ＩＤ６の要素の「Ｈｉｄｄｅｎ」（図４の４０９）で「ｄ」が割り当てられる。
【００８３】
Ｓ１０１１では、最初の単語内の母音を割り当てる。Ｓ１０１０を先に実行することにより、母音より子音を優先する。
【００８４】
Ｓ１０１２では、２番目以降の各単語の子音を割り当てる。
【００８５】
Ｓ１０１３では、２番目以降の各単語の母音を割り当てる。Ｓ１０１２を先に実行することにより、母音より子音を優先する。
【００８６】
Ｓ１０１５では、現在使用されている単語からは重複なくアクセラレータキーを割り当てられないと判断し、単語の代替案を提示するために、シソーラス２０５から代替の単語を検索しアクセラレータキー割り当てＧＵＩ２０１を通じてユーザ（画面設計者）に提示する。代替の単語の提示は、図１４の１４０３で表示される。これにより、アクセラレータキーが割り当てられない場合のユーザへの負担を軽減することができる。
【００８７】
Ｓ１０１６において、ユーザが代替語の提示を受け入れなかった場合は、Ｓ１０１７において、当該画面要素のアクセラレータキーを解除し、アクセラレータキー割り当て対象外の画面要素としてマークする。この情報は補助記憶装置１１２に記憶され、次回のアクセラレータキー割り当て部２０２起動時にＳ１００２で参照される。
【００８８】
Ｓ１０１８では、ここまでの処理で確定したアクセラレータキーをＵＩ定義ファイルＩＯ部２０３を通してＵＩ定義ファイル２０４に反映する。
【００８９】
本実施例では、画面部品ＩＤ６（プロパティ画面部品４０６）における、画面要素であるチェックボックス４０９「Ｈｉｄｄｅｎ」にて、ラベルが１語であり、画面部品ＩＤ６より優先度の高い画面部品ＩＤ１（メインメニュー４０１）内の「Ｈｅｌｐ」にて「Ｈ」のアクセラレータキーが使用済みであることから、Ｓ１００８，Ｓ１００９ではアクセラレータキーの割り当てができず、Ｓ１０１０で「Ｄ」のアクセラレータキーが割り当てられている。
【００９０】
図１４は、アクセラレータキー割り当てＧＵＩ２０１の一例である。
【００９１】
起動時に、アクセラレータキー割り当ての対象とするＵＩ定義ファイル２０４と、画面部品組合せデータベース２０６を読み込んだ後は、半自動的に割り当てが行われ、必要に応じてユーザの確認、選択を仰ぐ。
【００９２】
テーブルビュー１４０１には出現頻度の高い画面部品の従って既に設定されたアクセラレータキーのリストが表示される。要素の名前（Ｌａｂｅｌ）と要素に設定されたアクセラレータキーが対応して表示される。
【００９３】
テーブルビュー１４０２には現在対象としている画面部品内で使用されている画面要素とそれに対応するアクセラレータキーのリストが表示される。１４０２の例は、画面部品ＩＤ６（プロパティ画面部品４０６）の画面要素「Ｎａｍｅ」「Ｒｅａｄ  Ｏｎｌｙ」「Ｈｉｄｄｅｎ」にアクセラレータキーが割り当てられた際の例である。
【００９４】
リストビュー１４０３では、テーブルビュー１４０２で選択された単語に対して、Ｓ１０１５で提示された代替語彙を表示する。画面設計者はこの中から代替語彙を選んでＵＩで使用する文言を変更することができる。
【００９５】
ボタン１４０４は、アクセラレータキーを解除し、当該画面要素をアクセラレータキー割り当て対象外としてマークする。Ｓ１０１７のステップに対応する。
【００９６】
ボタン１４０５は、ＯＫボタンであり、テーブルビュー１４０２に表示されたアクセラレータキーを登録するためのボタンである。
【００９７】
次の本実施形態を用いた発明に適用可能な機能ブロック図について図１５を用いて説明する。
【００９８】
優先度決定部１５０１は、アクセラレータキーを設定するアプリケーション画面の表示する組合せから、アクセラレータキーを設定するためのアプリケーション画面の優先度を決定する機能部である。また、後述する登録部１５０３で登録されたアプリケーション画面の組合せで、表示頻度の高いアプリケーション画面を高い優先度に決定するものである。
【００９９】
アクセラレータキー設定部１５０２は、優先度決定部１５０１で決定された画面の優先度に従って、当該画面に表示する文字列を基に所定のルールに従って、アクセラレータキーを設定する機能部である。また、アクセラレータキーの設定はアプリケーション画面ごとに設定し、設定対象のアプリケーション画面より優先度の高いアプリケーション画面で設定されていないアクセラレータキーを設定するものである。また、後述の読込部１５０４で読み込まれた画面定義ファイルから取得したアプリケーション画面の画面要素の表示に用いる文字列内の文字を使用してアクセラレータキーを設定するものである。更に、後述する変更部１５０９で画面要素の表示に用いる文字列が変更された場合に、再度所定のルールに従って、アクセラレータキーを設定するものである。
【０１００】
登録部１５０３は、アプリケーション画面を有するアプリケーションを実行することにより、同時に表示されたアプリケーション画面の組合せを登録する機能部である。
【０１０１】
読込部１５０４は、アプリケーション画面の構成を定義する画面定義ファイルを読み込む機能部である。
【０１０２】
書込部１５０５は、アクセラレータキー設定部１５０２で設定されたアクセラレータキーを、アプリケーションで利用可能にするべく、読込部１５０４で読み込んだ画面定義ファイルに書き込む機能部である。
【０１０３】
文字列取得部１５０６は、アクセラレータキー設定部１５０２でアクセラレータキーを設定することができない場合に、画面要素の表示に用いる文字列を代替する文字列を取得する機能部である。
【０１０４】
代替文字列表示部１５０７は、文字列取得部１５０６で取得した代替する文字列を表示する機能部である。
【０１０５】
文字列選択部１５０８は、代替文字列表示部１５０７で表示した文字列から変更する文字列を選択する機能部である。
【０１０６】
変更部１５０９は、画面要素の表示に用いる文字列を、文字列選択部１５０８で選択された文字列に変更する機能部である。
【０１０７】
以上の手順により、画面に表示されている時間の長い、出現頻度の高い画面部品ほど自然なアクセラレータキーが割り当てられ、かつその割り当て処理を確実かつ容易に行うことができる。
【０１０８】
特に、同時に画面表示する組合せから画面の優先度を決定して、アクセラレータキーの割当を行うことで、適切にアクセラレータキーの割り当てをすることができる。
【０１０９】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１１０】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１１】
また、本発明におけるプログラムは、図８〜図１０に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図８〜図１０の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図８〜図１０の各装置の処理方法ごとのプログラムであってもよい。
【０１１２】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１３】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１１４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１１５】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１７】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１８】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１９】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１２０】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１５０１  優先度決定部
１５０２  アクセラレータキー設定部
１５０３  登録部
１５０４  読込部
１５０５  書込部
１５０６  文字列取得部
１５０７  代替文字列表示部
１５０８  文字列選択部
１５０９  変更部
【図１】
2013134622.tif 000003
【図２】
2013134622.tif 000004
【図３】
2013134622.tif 000005
【図４】
2013134622.tif 000006
【図５】
2013134622.tif 000007
【図６】
2013134622.tif 000008
【図７】
2013134622.tif 000009
【図８】
2013134622.tif 000010
【図９】
2013134622.tif 000011
【図１０】
2013134622.tif 000012
【図１１】
2013134622.tif 000013
【図１２】
2013134622.tif 000014
【図１３】
2013134622.tif 000015
【図１４】
2013134622.tif 000016
【図１５】
2013134622.tif 000017