(57)【特許請求の範囲】
【請求項１】
複数の部品が表示されたＧＵＩ画面において、いずれかの部品を操作するためのフォーカスを設定する場合、当該フォーカスを移動制御するフォーカス移動制御装置であって、
デフォルトフォーカス位置を含み、現在フォーカスを持っている部品を示すフォーカス位置を記憶するフォーカス位置記憶部と、
フォーカスを持っている部品が消失したときにＧＵＩ画面全体に対して適用するための、次にフォーカスを移動させるべき部品を決めるための部品消失ルールを記憶するルール記憶部と、
フォーカスを持っている部品が消失してフォーカス移動がなされるときには、前記フォーカス位置記憶部に記憶されている部品が次にフォーカスを移動させるべき部品を決めるハンドラを持っているかどうかを判定し、前記ハンドラを持っているときは当該ハンドラに記載された処理に従ってフォーカスを移動し、前記ハンドラを持っていないときは、前記部品消失ルールに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合は前記デフォルトフォーカス位置にフォーカスを移動する移動制御部とを備えたフォーカス移動制御装置。
【請求項２】
前記ルール記憶部は、フォーカスの移動を行うための入力があったときにＧＵＩ画面全体に対して適用するための、次にフォーカスを移動させるべき部品を決める全体ルールを記憶し、
前記移動制御部は、フォーカスの移動を行うための入力を受けて、前記フォーカス位置で示されている部品が、次にフォーカスを移動させるべき部品を決めるハンドラを持っているかどうかを判定し、前記ハンドラを持っているときは当該ハンドラに記載された処理に従ってフォーカスを移動し、前記ハンドラを持っていないときは、前記全体ルールに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合はフォーカスを移動しないよう制御することを特徴とする請求項１記載のフォーカス移動制御装置。
【請求項３】
前記ルール記憶部は、ＧＵＩ画面上の各部品が階層的に管理されている場合に、フォーカスの移動を行うための入力に対して、次にフォーカスを移動させるべき部品を決めるための階層内移動ルールを前記階層毎に記憶し、
前記移動制御部は、請求項１に記載の制御の結果、いずれかの階層内でフォーカス移動ができないときは、一つ上の階層での前記階層内移動ルールを用いてフォーカスを移動することを特徴とする請求項１記載のフォーカス移動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の部品が表示されている画面上で、いずれかの部品にフォーカスする際のフォーカス移動制御を行うフォーカス移動制御装置に関するものである。
【背景技術】
【０００２】
グラフィカルユーザインタフェース（ＧＵＩ）上では、画面上に配置されたボタンなどの部品の選択が最も基本的な動作である。部品の選択には、マウスのようなポインティングデバイスを用いて部品を直接指示する方法と、方向キーやダイヤルなどの移動方向のみを指示できる入力装置で所望の部品にフォーカスを移動した後、選択する方法がある。方向キーやダイヤルなどを用いる方法では、入力装置からの入力に応じて適切にフォーカス移動制御することが重要である。【０００３】
ところが、ＧＵＩ上の部品数が多くなったり、部品の配置が複雑になったりするにつれ、そのようなフォーカス移動制御の設定は煩雑になっていく。そこで、フォーカス移動制御の設定を含めて、ＧＵＩの構築を効率化する手法がいくつか提案されている。例えば特許文献１では、部品の数や並び、フォーカス移動順序などを予めルール化しておき、それらを元にＧＵＩを自動的に生成することで、ＧＵＩの構築を効率化する手法について開示している。また特許文献２では、画面上の部品にフォーカスを受け付けられるかどうかの属性をつけて、フォーカスを受け付けられない部品を飛ばしてフォーカスを移動する手法が開示されている。さらに特許文献３は、外部からのイベント通知に含まれるフォーカス移動情報によってフォーカスを移動し、使い勝手のよいＧＵＩを提供しようというものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−３９９６７号公報
【特許文献２】特開２０００−２００１２９号公報
【特許文献３】特開２００７−３６５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載された技術では、先にフォーカス移動制御などのルールを決めてからＧＵＩを自動生成するため、必ずしも所望のデザインのＧＵＩが作成できるとは限らない。また、特許文献２に記載された技術は、フォーカスを受け付けられない部品を飛ばすだけで、複雑に配置された部品間のフォーカス移動を実現するものではない。さらに、特許文献３に記載された技術は、主に操作性の向上を目指したもので、フォーカス移動制御の設定の効率化については言及されていない。【０００６】
この発明は、かかる問題を解決するためになされたもので、既にデザインされたＧＵＩに対するフォーカス移動設定に関しても、効率的なフォーカス移動設定を実現することのできるフォーカス移動制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明のフォーカス移動制御装置は、複数の部品が表示されたＧＵＩ画面において、いずれかの部品を操作するためのフォーカスを設定する場合、フォーカスを移動制御するフォーカス移動制御装置であって、デフォルトフォーカス位置を含み、現在フォーカスを持っている部品を示すフォーカス位置を記憶するフォーカス位置記憶部と、フォーカスを持っている部品が消失したときにＧＵＩ画面全体に対して適用するための、次にフォーカスを移動させるべき部品を決めるための部品消失ルールを記憶するルール記憶部と、フォーカスを持っている部品が消失してフォーカス移動がなされるときには、フォーカス位置記憶部に記憶されている部品が次にフォーカスを移動させるべき部品を決めるハンドラを持っているかどうかを判定し、ハンドラを持っているときは当該ハンドラに記載された処理に従ってフォーカスを移動し、ハンドラを持っていないときは、部品消失ルールに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合はデフォルトフォーカス位置にフォーカスを移動する移動制御部とを備えたものである。
【発明の効果】
【０００８】
この発明に係るフォーカス移動制御装置は、既にデザインされたＧＵＩに対するフォーカス移動設定に関しても、効率的なフォーカス移動設定を実現することができ、フォーカスを持った部品が消失した場合にも対応することができる。
【図面の簡単な説明】
【０００９】
【図１】この発明に係るフォーカス移動制御装置を適用した画面制御装置の構成図である。
【図２】この発明の実施の形態１のフォーカス移動制御装置の動作を示すフローチャートである。
【図３】この発明の実施の形態１のフォーカス移動制御装置における部品配置の一例を示す説明図である。
【図４】この発明の実施の形態２のフォーカス移動制御装置の動作を示すフローチャートである。
【図５】この発明の実施の形態２のフォーカス移動制御装置における部品配置の一例を示す説明図である。
【図６】この発明の実施の形態３のフォーカス移動制御装置の動作を示すフローチャートである。
【図７】この発明の実施の形態３のフォーカス移動制御装置における部品配置の一例を示す説明図である。
【図８】この発明の実施の形態４のフォーカス移動制御装置の動作を示すフローチャートである。
【図９】この発明の実施の形態４のフォーカス移動制御装置における部品配置の一例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、本実施の形態によるフォーカス移動制御装置を画面制御装置に適用した場合の構成図である。画面制御装置１００は、フォーカス管理装置１１０、画面制御部１２０、部品１３０ａ，１３０ｂを備えている。また、画面制御装置１００には、入力装置２００と表示部３００が接続されている。
【００１１】
入力装置２００は、矢印キーやダイヤルといった移動方向のみを指示できる装置である。例えば、矢印キーは上下左右の４方向を入力できるものが多いが、ここでの入力装置は何方向入力可能なものであってもよい。画面制御装置１００は、画面上に表示するための部品１３０ａ，１３０ｂを表示部３００に表示する。ここで、部品とは画面上に配置されうる全ての要素を指し、ボタンや画像、テキストフィールドなどが例として挙げられる。部品にはフォーカス可能なもの（例えばボタンやテキストフィールドなどユーザからの入力を受け付けるもの）と、フォーカス不可能なもの（例えば背景画像や装飾部品のようなユーザからの入力を受け付けないもの）に分けられるが、以降では説明を簡略化するため、フォーカス可能な部品のみが配置されているとして説明する。なお、各部品は固有のＩＤを持ち、一意に識別可能であるとする。図１では、二つの部品１３０ａ，１３０ｂのみが示されているが、複数個であれば部品の個数に限定はない。
【００１２】
フォーカス管理装置１１０は、入力装置２００からの入力を受けてフォーカス移動制御を行うもので、フォーカス位置記憶部１１１、全体ルール記憶部１１２、移動制御部１１３を備えている。フォーカス位置記憶部１１１は、現在どの部品がフォーカスを持っているかを部品のＩＤによって表すフォーカス位置１１１ａを格納する記憶部である。全体ルール記憶部１１２は、画面全体に一括で適用されるフォーカス移動ルールである全体ルール１１２ａを格納する記憶部である。全体ルール１１２ａに設定できるルールとしては、部品の絶対座標の位置関係に応じて移動する、部品の重なり順に応じて移動する、予め指定された順番に移動する、など全体に対して一括して適用できるルールが例として挙げられる。例えば、上下左右の４方向の入力がある環境で、部品の絶対座標の位置関係に応じて移動するというルールを全体ルール１１２ａとして設定すると、フォーカス管理装置１１０は、フォーカス位置１１１ａで示される部品から見て、入力装置２００から入力された方向にあって最も近い部品を判別し、そこにフォーカスを与えるとともに、フォーカス位置１１１ａにその部品のＩＤを保存する。
【００１３】
また、各部品（図１では部品１３０ａや部品１３０ｂ）には任意の処理が記述できるハンドラ１３１を指定でき、フォーカス移動に関するルールを設定することができる。ハンドラ１３１には、例えば、ある特定の部品を指定する、一番近くの部品を指定するなど、特定の部品に対してだけ適用できるようなルールを設定できるが、このルールは、ランダムにフォーカスを移動したり、全体ルールを拡張したりするものであってもよい。
【００１４】
フォーカス管理装置１１０の移動制御部１１３は、入力装置２００からのフォーカスの移動を行うための入力を受けて、フォーカス位置１１１ａで示されている部品が、次にフォーカスを移動させるべき部品を決めるハンドラ１３１を持っているかどうかを判定し、ハンドラ１３１を持っているときはそのハンドラ１３１に記載された処理に従ってフォーカスを移動し、ハンドラ１３１を持っていないときは、全体ルール１１２ａに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合はフォーカスを移動しないよう制御する制御部である。
【００１５】
また、画面制御部１２０は、部品１３０ａ，１３０ｂを用いて、各部品が表示される画面データを生成する制御部であり、生成した表示画面データを表示部３００に送出する。表示部３００は、表示画面データに基づいて画面表示を行うディスプレイである。
【００１６】
次に、実施の形態１のフォーカス移動制御装置の動作を説明する。図２は、その動作を示すフローチャートである。
ユーザが入力装置２００によりフォーカスの移動を行うための入力を行うと（ステップＳＴ１０１）、フォーカス管理装置１１０では、移動制御部１１３が、まず、そのときフォーカス位置１１１ａに設定されている部品にハンドラ１３１が設定されているかどうかをチェックする（ステップＳＴ１０２）。ここで、ハンドラ１３１が設定されていないときには、全体ルール１１２ａを適用するが（ステップＳＴ１０５）、ハンドラ１３１が設定されている場合には、ハンドラ１３１に書かれたルールによるフォーカス移動の計算を実施する（ステップＳＴ１０３）。その結果、フォーカス移動先が見つかった場合（ステップＳＴ１０４）には、そのままフォーカス移動を行うが（ステップＳＴ１０７）、見つからなかった場合には、全体ルール１１２ａによるフォーカス移動計算を実施する（ステップＳＴ１０５）。次に、ステップＳＴ１０５の全体ルール１１２ａによるフォーカス移動計算で、フォーカスが見つかった場合（ステップＳＴ１０６）には、フォーカスを移動する（ステップＳＴ１０７）。最終的にフォーカス移動先が見つからなかった場合（ステップＳＴ１０６）には、フォーカス移動処理を実施しない（ステップＳＴ１０８）。
【００１７】
ここで、例えばＧＵＩ開発者が、図３のように部品が配置されているときに、矢印３０６，３０７，３０８、３０９のように上下キーでフォーカスの移動を設定しなければならない場合を考える。全体ルール１１２ａとしては、部品の位置関係に応じてフォーカスを移動するルールを設定する。このようにすることで、例えば、部品３０２がフォーカスを持った状態で上キーが押されるとフォーカスは部品３０１に移動し、逆に下キーが押されたときにはフォーカスは部品３０３に移動する。ここで、デザインの都合上、部品３０４と部品３０５が重なるような状態になっており、全体ルール１１２ａでは矢印３０６，３０７，３０８の移動は実現できるが、矢印３０９の移動は実現できない。そこで、部品３０４には下キーで部品３０５にフォーカスを移動するハンドラ３１０を、部品３０５には上キーで部品３０４にフォーカスを移動するハンドラ３１１を設定することで、所望の処理を実現できる。
【００１８】
このように、実施の形態１では、ハンドラ１３１が設定されているか否か、またハンドラ１３１によってフォーカス移動先を取得できたかどうかによって、全体ルール１１２ａによるフォーカス移動とハンドラ１３１によるフォーカス移動を使い分けることができるため、おおまかには全体ルール１１２ａで、細かい例外的なところはハンドラ１３１で設定するというように、少ない手間で所望の動作を設定することができる。また、画面デザインに変更が生じた場合でも、全体ルール１１２ａはそのままに、変更した箇所のハンドラ１３１を調整するだけで対応できるなど、部品配置への対応も容易になる。さらには、プログラム作成中にフォーカス移動に関する不具合が生じた場合にでも、原因箇所の特定や修正も容易になる。
【００１９】
以上説明したように、実施の形態１のフォーカス移動制御装置によれば、複数の部品が表示されたＧＵＩ画面において、いずれかの部品を操作するためのフォーカスを設定する場合、フォーカスを移動制御するフォーカス移動制御装置であって、フォーカスの移動を行うための入力があったときにＧＵＩ画面全体に対して適用するための、次にフォーカスを移動させるべき部品を決める全体ルールと、現在フォーカスを持っている部品を示すフォーカス位置と、フォーカスの移動を行うための入力を受けて、フォーカス位置で示されている部品が、次にフォーカスを移動させるべき部品を決めるハンドラを持っているかどうかを判定し、ハンドラを持っているときはハンドラに記載された処理に従ってフォーカスを移動し、ハンドラを持っていないときは、全体ルールに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合はフォーカスを移動しないよう制御する移動制御部とを備えたので、既にデザインされたＧＵＩに対するフォーカス移動設定に関しても、効率的なフォーカス移動設定を実現することができる。
【００２０】
実施の形態２．
実施の形態１は、入力装置２００によってフォーカスを移動するものであるが、次に、フォーカスを持っている部品が消失するときのフォーカス移動方法の設定について、実施の形態２として説明する。なお、実施の形態２におけるフォーカス移動制御装置に関する図面上の構成は実施の形態１と同様であるため、図１を用いて説明する。
【００２１】
フォーカスを持っている部品が消失するとは、例えばスマートフォンで通信状況が変わった、車載機器で自動車の運行状態が変わった、などユーザの直接操作以外の要因で機器内の状態が変わったとき、フォーカスを持っていた部品が状態の変わる前のみ有効な部品であったがために、フォーカス不能になったり部品そのものが画面から消失したりすることを意味する。また、特定のボタンを選択したことにより、そのボタン自身がフォーカスできなくなったり、消失したりしたときも、フォーカスを持っている部品が消失したこととする。
【００２２】
そこで、実施の形態２では、フォーカス管理装置１１０の全体ルール１１２ａとしてフォーカスを持っている部品が消失した場合の部品消失ルールを記憶する。全体ルール１１２ａに設定できる部品消失ルールとしては、一番近くのフォーカス可能な部品にフォーカスする、重なり順で一つ手前の部品にフォーカスする、などの全体に対して一括して設定できるルールが例として挙げられる。
さらに、各部品１３０ａ，１３０ｂにはハンドラ１３１として部品自身がフォーカスを持っていてかつ消失するときのフォーカス移動ルールをハンドラとして設定することができる。ハンドラ１３１には例えば、ある特定の部品を指定する、同じ種類の部品を指定するなど、特定の部品に対してだけ適用できるような部品消失ルールを設定でき、さらに部品消失ルールは、全体ルールを拡張するものであってもよい。
【００２３】
また、フォーカス管理装置１１０には、予めデフォルトフォーカス位置を設定することができ、上記部品毎のハンドラでも部品消失ルールでも適切なフォーカス移動先が見つからなかった場合には、デフォルトフォーカス位置にフォーカスを設定することができる。なお、デフォルトフォーカス位置はフォーカス位置１１１ａとしてフォーカス位置記憶部１１１に保持されているものとする。
【００２４】
次に、実施の形態２の動作について説明する。なお、フォーカスを持った部品が消失するとき以外の動作は実施の形態１と同様であるため、実施の形態１とは異なる動作について重点的に説明する。
図４に、動作のフローチャートを示す。まず、上記のいずれかの要因によりフォーカスを持っている部品が消失すると（ステップＳＴ２０１）、フォーカス管理装置１１０の移動制御部１１３は、そのときフォーカスが当たっている部品にハンドラ１３１が設定されているかどうかをチェックする（ステップＳＴ２０２）。ここで、ハンドラ１３１が設定されていないときには全体ルール１１２ａを適用するが（ステップＳＴ２０５）、ハンドラ１３１が設定されている場合には、ハンドラ１３１に書かれたルールによるフォーカス移動の計算を実施する（ステップＳＴ２０３）。その結果、フォーカス移動先が見つかった場合（ステップＳＴ２０４）には、そのままフォーカス移動を行うが（ステップＳＴ２０７）、見つからなかった場合には、全体ルール１１２ａによるフォーカス移動計算を実施する（ステップＳＴ２０５）。次に、ステップＳＴ２０５の全体ルール１１２ａによるフォーカス移動計算で、フォーカスが見つかった場合（ステップＳＴ２０６）には、フォーカスを移動する（ステップＳＴ２０７）。最終的にフォーカス移動先が見つからなかった場合には、デフォルトフォーカス位置にフォーカスを移動する（ステップＳＴ２０８）。
【００２５】
ここで、例えば、図５のようにフォーカス可能な部品が横に４つ並んでいる状態を考える。全体ルール１１２ａとしては、フォーカスを持っている部品が消失したときは、画面上で一つ右の部品にフォーカスを移動する部品消失ルールを設定する。また、デフォルトフォーカス位置は一番左の部品５０１であるため、部品５０２がフォーカスを持った状態で消失したときには部品５０３にフォーカスが移動するが、一番右の部品５０４がフォーカスを持った状態で消失すると、フォーカスは一番左の部品５０１に移動する。ここで開発者は、部品５０４がフォーカスを持った状態で消失したときに、一番左の部品ではなく一つ左の部品５０３にフォーカスを移動しなければならないとすると、ハンドラ５０５にフォーカスを部品５０３に移動する処理を指定することによって、所望のフォーカス移動を実装することができる。
【００２６】
このように、実施の形態２では、実施の形態１において述べた効果に加え、フォーカスを持った部品が消失した場合にも対応できる。具体的には、ハンドラ１３１が設定されているか否か、またハンドラ１３１によってフォーカス移動先を取得できたかどうかによって、全体ルール１１２ａによるフォーカス移動とハンドラ１３１によるフォーカス移動を使い分けることができるため、少ない手間で所望の動作を設定することができる。また、画面デザインに変更が生じた場合でも、全体ルール１１２ａはそのままに、変更した箇所のハンドラ１３１を調整するだけで対応できるなど、部品配置への対応も容易になる。さらには、プログラム作成中にフォーカス移動に関する不具合が生じた場合にでも、原因箇所の特定や修正も容易になる。
【００２７】
なお、実施の形態１で述べたユーザの入力に対するフォーカス移動制御の設定と、実施の形態２で述べたフォーカス部品が消失したときのフォーカス移動制御の設定は、同時に用いることができ、フォーカス移動のあらゆるケースを効率的に設定することができる。
【００２８】
以上説明したように、実施の形態２のフォーカス移動制御装置によれば、フォーカスを持っている部品が消失したときにＧＵＩ画面全体に対して適用するための、次にフォーカスを移動させるべき部品を決めるための部品消失ルールを有すると共に、フォーカス位置は、デフォルトフォーカス位置を含み、移動制御部は、フォーカスを持っている部品が消失してフォーカス移動がなされるときには、フォーカス位置に記憶されている部品が次にフォーカスを移動させるべき部品を決めるハンドラを持っているかどうかを判定し、ハンドラを持っているときはハンドラに記載された処理に従ってフォーカスを移動し、ハンドラを持っていないときは、消失部品ルールに従ってフォーカスを移動できるかを判定し、移動できる場合はフォーカスを移動し、できない場合はデフォルトフォーカス位置にフォーカスを移動するようにしたので、実施の形態１の効果に加えて、フォーカスを持った部品が消失した場合にも対応することができる。
【００２９】
実施の形態３．
実施の形態１と実施の形態２では、各部品が画面上に単に配置されている場合について説明したが、ＧＵＩではしばしば部品がグループ分けされ階層的に管理されることがある。例えば、画面上の部品を意味合いや操作のステップ毎にグループ分けし、線で囲んだり色分けしたりし、グループ内にはさらに細かいグループが設定されているといった状況がある。そこで、実施の形態３ではグループの階層毎に全体ルールを設定する形態について説明する。なお、実施の形態３においてもフォーカス移動制御装置における図面上の構成は図１と同様であるため、図１を用いて説明する。
【００３０】
実施の形態３では、ＧＵＩ画面上の各部品が階層的に管理されている場合に、ユーザからの入力に対して次にフォーカスを移動させるべき部品を決めるための階層内移動ルールを全体ルール１１２ａとして階層毎に備え、移動制御部１１３は、いずれかの階層内でフォーカス移動ができないときは、一つ上の階層での階層内移動ルールを用いてフォーカスを移動するよう構成されている。
【００３１】
次に、実施の形態３の動作について説明する。図６にそのフローチャートを示す。まず、ユーザからの入力があると（ステップＳＴ３０１）、フォーカス管理装置１１０の移動制御部１１３は、実施の形態１と同様の方法で、その階層内でフォーカス移動が可能かどうかを判定する（ステップＳＴ３０２）。フォーカス移動が可能な場合はそのままフォーカス移動を実施するが（ステップＳＴ３０５）、フォーカスが移動できない場合は、一つ上の階層が存在するかを判定する（ステップＳＴ３０３）。存在する場合は一つ上の階層内でフォーカスが移動できるかどうか判定し（ステップＳＴ３０６）、存在しない場合はフォーカス移動を実施しない（ステップＳＴ３０４）。
【００３２】
ここで、例えば、図７のように、ある画面７０１の中の内側に部品のグループ７０４がある状況で、画面全体には部品どうしの位置関係によるフォーカス移動ルールが設定されており、内側のグループ７０４内には重なり順による移動ルールが階層内移動ルールとして設定されているとする。このとき、内側のグループ７０４内のルールでは、左キーを押すと一つ手前の部品（例えば部品７０６から部品７０５）にフォーカスが移動し、右キーを押すと一つ奥の部品（例えば部品７０６から部品７０７）にフォーカスが移動するように設定されている。この状態で、内側のグループ７０４内の部品にフォーカスがある状態で、左キーを押すと一つ手前の部品にフォーカスが移動するが、一番手前の部品７０５にフォーカスがある状態で左キーを押すとグループ７０４内ではさらに移動する先がない。しかし、移動制御部１１３は、その場合は一つ上の階層である画面７０１に左キーが押されたというイベントを委譲する。その結果、画面７０１の全体ルール１１２ａである部品どうしの位置関係によるフォーカス移動が適用され、内側のグループ７０４から見て左にある部品７０２にフォーカスが移動することになる。すなわち、この構成では、部品７０３にフォーカスがある状態から左キーを連続して押すと、部品７０７，部品７０６，部品７０５、部品７０２の順番にフォーカスが移動し、逆に、部品７０２にフォーカスがある状態で右キーを連続して押すと、部品７０５，部品７０６，部品７０７，部品７０３の順場にフォーカスが移動する。
【００３３】
このときの部品毎のハンドラ１３１には実施の形態１のときと同様の処理を指定できるほか、グループ内にフォーカス移動先がなかったとしても上の階層に処理を委譲しないようにする処理を入れたり、階層をまたがってフォーカスを移動する処理を入れたりすることもできる。
【００３４】
このように、実施の形態３では、階層毎に全体ルール１１２ａを設定することで、全体ルール１１２ａだけでも複雑なルールを設定することもできる。ここで、全体ルール１１２ａは階層毎に異なっていても全て同じルールが設定されていてもよい。さらに、ハンドラ１３１を使うことによって階層構造を超えたフォーカス移動も指定できる。
【００３５】
以上のように、実施の形態３のフォーカス移動制御装置によれば、ＧＵＩ画面上の各部品が階層的に管理されている場合に、フォーカスの移動を行うための入力に対して、次にフォーカスを移動させるべき部品を決めるための階層内移動ルールを階層毎に備え、移動制御部は、いずれかの階層内でフォーカス移動ができないときは、一つ上の階層での階層内移動ルールを用いてフォーカスを移動するようにしたので、部品の階層毎に階層内移動ルールを設定することによって、複雑なフォーカス移動処理であっても少ない手間で実現することができる。また、画面デザインに変更が生じた場合にも、その変更があるグループ内に閉じるものであれば、グループ内のルール設定の変更だけで対応できるため、修正が容易になる。さらには、プログラム作成中にフォーカス移動に関する不具合が生じた場合にでも、階層毎に原因を探索することで、原因箇所の特定や修正を効率的に実施できる。
【００３６】
実施の形態４．
実施の形態３では、ユーザの入力に対するフォーカス移動に関して部品が階層的に管理されているときの場合を説明したが、フォーカスを持っている部品が消失したときのルール設定も階層毎に設定することができる。即ち、実施の形態４は、実施の形態２の構成に対して実施の形態３で説明した階層内移動ルールを設定したものである。また、実施の形態４においてもフォーカス移動制御装置における図面上の構成は図１と同様であるため、図１を用いて説明する。
【００３７】
次に、実施の形態４の動作について説明する。図８にフローチャートを示す。まず、フォーカスを持っている部品が消失すると（ステップＳＴ４０１）、移動制御部１１３は実施の形態２と同様の方法で、その階層内でフォーカス移動が可能かどうかを判定する（ステップＳＴ４０２）。フォーカス移動が可能な場合はそのままフォーカス移動を実施するが（ステップＳＴ４０５）、フォーカスが移動できない場合は、一つ上の階層が存在するかを判定する（ステップＳＴ４０３）。存在する場合は一つ上の階層内でフォーカスが移動できるかどうか判定し（ステップＳＴ４０６）、ステップＳＴ４０３において一つ上の階層が存在しない場合は、デフォルトフォーカス位置にフォーカス移動を実施する（ステップＳＴ４０４）。なお、少なくとも最上層では、デフォルトフォーカス位置は消失しない部品を予め定めておくものとする。
【００３８】
ここで、例えば、図９のように、ある画面９０１の中の内側のグループ９０４がある状況で、画面９０１の全体ルール１１２ａ（階層内移動ルール）には、フォーカスを持っている部品が消失したときには一番近くの部品にフォーカスを移動し、内側のグループ９０４には一つ左の部品にフォーカスを移動するという設定がなされていたとする。さらに、グループ９０４のデフォルトフォーカス位置は部品９０５で、画面９０１のデフォルトフォーカス位置は部品９０２であるとする。この状態で、内側のグループ内の部品のうち部品９０７がフォーカスを持った状態で消失したときには、左の部品である部品９０６にフォーカスを移動できるが、部品９０５がフォーカスを持った状態で消失したときには、部品９０５には左側に部品がなく、かつ部品９０５自身がデフォルトフォーカス位置であるため、グループ内ではフォーカスを移動する先がない。しかし、移動制御部１１３は、その場合は一つ上の階層である画面９０１に左キーが押されたというイベントを委譲する。その結果、画面９０１の全体ルール１１２ａ（階層内移動ルール）が適用され、内側のグループ９０４から見て一番近い部品９０３にフォーカスが移動することになる。
【００３９】
このときの部品毎のハンドラ１３１には実施の形態２のときと同様の処理を指定できるほか、階層をまたがってフォーカスを移動する処理や、グループ内にフォーカスの移動先がなかったときの委譲先を変更するような処理を入れることができる。
【００４０】
以上説明したように、実施の形態４のフォーカス移動制御装置によれば、ＧＵＩ画面上の各部品が階層的に管理されている場合に、フォーカスの移動を行うための入力に対して次にフォーカスを移動させるべき部品を決めるための階層内移動ルールを階層毎に備え、移動制御部は、実施の形態２の制御の結果、いずれかの階層内でフォーカス移動ができないときは、一つ上の階層での階層内移動ルールを用いてフォーカスを移動するようにしたので、部品の階層毎に全体ルールを設定することによって、複雑なフォーカス移動処理であっても少ない手間で実現することができる。また、画面デザインに変更が生じた場合にも、その変更があるグループ内に閉じるものであれば、グループ内のルール設定の変更だけで対応できるため、修正が容易になる。さらには、プログラム作成中にフォーカス移動に関する不具合が生じた場合にでも、階層毎に原因を探索することで、原因箇所の特定や修正を効率的に実施できる。
【００４１】
なお、実施の形態３で述べたユーザの入力に対するフォーカス移動制御の設定と、実施の形態４で述べたフォーカス部品が消失したときのフォーカス移動制御の設定は、同時に用いることができ、フォーカス移動のあらゆるケースを効率的に設定することができる。
【００４２】
また、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００４３】
以上のように、この発明に係るフォーカス移動制御装置は、複数の部品が配置されたＧＵＩ画面上でいずれかの部品に対するフォーカスを移動する際の移動制御の構成に関するものであり、ＧＵＩ画面を制御する画面制御装置に用いるのに適している。
【符号の説明】
【００４４】
１００  画面制御装置、１１０  フォーカス管理装置、１１１  フォーカス位置記憶部、１１１ａ  フォーカス位置、１１２  全体ルール記憶部、１１２ａ  全体ルール、１１３  移動制御部、１２０  画面制御部、１３０ａ，１３０ｂ  部品、１３１  ハンドラ、２００  入力装置、３００  表示部。
【図１】
0005959669.tif 000002
【図２】
0005959669.tif 000003
【図３】
0005959669.tif 000004
【図４】
0005959669.tif 000005
【図５】
0005959669.tif 000006
【図６】
0005959669.tif 000007
【図７】
0005959669.tif 000008
【図８】
0005959669.tif 000009
【図９】
0005959669.tif 000010