JP2015114799A - 情報処理装置、制御方法、プログラム及び記憶媒体 - Google Patents

情報処理装置、制御方法、プログラム及び記憶媒体 Download PDF

Info

Publication number
JP2015114799A
JP2015114799A JP2013255670A JP2013255670A JP2015114799A JP 2015114799 A JP2015114799 A JP 2015114799A JP 2013255670 A JP2013255670 A JP 2013255670A JP 2013255670 A JP2013255670 A JP 2013255670A JP 2015114799 A JP2015114799 A JP 2015114799A
Authority
JP
Japan
Prior art keywords
screen
transition
stack
information
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013255670A
Other languages
English (en)
Inventor
中川 賢一郎
Kenichiro Nakagawa
賢一郎 中川
廣田 誠
Makoto Hirota
誠 廣田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013255670A priority Critical patent/JP2015114799A/ja
Publication of JP2015114799A publication Critical patent/JP2015114799A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 本発明は、多数の画面によって構成されるGUIの操作性を向上させることを目的とする。【解決手段】 ディスプレイに表示可能な複数の画面を、画面遷移により切り替えて表示させる情報処理装置であって、ユーザ操作に応じたイベントを取得し、前記ディスプレイに表示させる画面を示す情報を、当該画面を表示させるために実行された画面遷移に対して予め設定された優先度とを対応付けて蓄積するスタックに対して、前記取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されている場合、前記既に蓄積されている前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報より後に前記スタックに追加された情報を削除する処理を行い、前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる。【選択図】図5

Description

本実施形態は、装置に搭載されるグラフィカルユーザインタフェース(GUI)を扱う技術に関する。
近年、一つの組み込み装置に搭載される機能が増えたことにより、ディスプレイに表示させるためにその装置に搭載されるグラフィカルユーザインタフェース(以後GUI)を構成する画面(表示画像)の数も大多数となっている。例えば、パーソナルコンピュータ(以後PC)に接続し、PCからドキュメントを印刷することができるプリンタにおいても、多機能化が進み、今や100から1000画面に及ぶ数の画面を用いる必要が生じている。ディスプレイにこのうち1つの画面を表示させた状態から、さらに別の画面に表示する内容を遷移させることを画面遷移という。特に、予め設計された順序にそって行われる画面遷移を「順遷移」というのに対し、ユーザ操作に応じて、それまで順遷移してきた画面を遡って表示させる画面遷移を「逆遷移」という。プリンタ等では、一般的に物理ボタンやタッチ操作によって「戻る」に相当するコマンドが入力されたことに応じて逆遷移が行われることが多い。
特許文献1では、画面間の遷移の流れや、画面遷移のトリガーとなるイベントとの関係を定義する設計データを、画面遷移図で表現する手法を開示している。画面遷移図はGUI開発の段階で設計ツール等を利用して作成することができる。そして、実機上ではこの画面遷移図通りに動作させることもできる。
特許第3729640号
従来、逆遷移を実現するためには、順遷移において遷移した画面を示す履歴情報を保持し、逆遷移する指示が入力された場合には、保持してきた履歴を1つ遡ることで、表示すべき画面を特定することが多い。しかしながら、多様な機能を搭載した情報処理装置では、画面遷移がループを構成したり、順遷移によって1つのGUI画面に遷移する経路が複数存在したりする場合があるため、一連の画面遷移の中で同一の画面を複数回表示させることがある。履歴を1つ溯るだけでは必ずしもユーザが意図した遷移が実現できるとは限らない。
本発明は、上記課題を鑑みてなされたものであり、多数の画面によって構成されるGUIを搭載する情報処理装置の操作性を向上させることを目的とする。
本発明は上記課題に鑑みてなされたものであり、ディスプレイに表示可能な複数の画面を、画面遷移により切り替えて表示させる情報処理装置であって、ユーザ操作に応じたイベントを取得する取得手段と、前記ディスプレイに表示させる画面を示す情報を、当該画面を表示させるために実行された画面遷移に対して予め設定された優先度とを対応付けて蓄積するスタックに対して、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面を示す情報と、既にスタックに蓄積されている情報とに基づいて、情報の追加または削除の処理を行うスタック制御手段と、前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる表示制御手段とを備え、前記スタック制御手段は、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されている場合、前記既に蓄積されている前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報より後に前記スタックに追加された情報を削除することを特徴とする。
本発明によれば、多数の画面によって構成されるGUIを搭載する情報処理装置の操作性が向上する。
情報処理装置のハードウェア構成と外観の一例を示す図 情報処理装置のGUIに係る画面遷移図の一例を示す図 画面遷移をXMLで記述した例を示す図 情報処理装置が実行するGUIの表示制御処理の流れを示すフローチャート 画面遷移の実行処理の流れの詳細を示すフローチャート 外部イベントと画面遷移イベントの対応関係を示すデータの一例を示す図 実施形態における画面遷移図の一例を示す図 本実施形態において蓄積されるスタックの変化の例を示す図 画面遷移に画面の階層構造に基づく優先度が付与された画面遷移図の一例を示す図
以下、図面を参照しながら本発明の好適な実施例について説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
<第1の実施形態>
第1の実施形態では、本実施形態を適用する情報処理装置の一例として、プリンタを挙げて説明する。ただし、プリンタに限らず、携帯端末やデジタルカメラ、テレビジョンなどGUIを搭載する様々な情報処理装置に、本実施形態は適応可能である。
図1(a)は、本実施形態における情報処理装置100のハードウェア構成図である。同図において、CPU(中央処理装置)101は、情報処理装置100の制御プログラムを実行して各種処理のための演算や論理判断などを行い、システムバス109に接続された各構成要素を制御する。ROM102は、プログラムメモリであって、後述する各種処理手順を含むCPU101による制御のためのプログラムを格納する。RAM103は、CPU101のワークエリア、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを提供するために用いられる。本実施形態では特に、CPU101によって画面遷移が実行される際に、遷移先の画面を示す情報と、画面遷移の優先度とを対応づけて蓄積するスタックがRAM103に生成され、記憶される。タッチパネルディスプレイ105は、入力装置であるタッチパネルと出力装置であるディスプレイ装置が一体化したデバイスである。タッチパネルディスプレイ105は、人の手などでタッチされた場合にその接触部分を検出し、各タッチパネル上に設定される座標平面上で、タッチされている位置を1つの座標点に特定する。接触部分が面積を有する場合にはその重心あるいは中心の座標を特定する。以下、当該点をタッチ位置と言う。なお、タッチ位置は、独立しているとみなされる接触部分(例えば、複数の指でタッチされた場合、接触部分は複数存在する)のそれぞれについて検出可能とする。タッチの検出方式は、抵抗膜方式、静電容量方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。また、情報処理装置の表面に接触していない、近接した状態でのユーザの指などの位置情報を検出できる検出手段を用いて得られた近接状態での位置(近接位置)情報を、タッチ位置と同等に考慮することも可能である。本実施形態では、ディスプレイの表示領域上で、検出されたタッチ位置あるいは近接位置に相当する位置に表示されたGUI部品を特定し、当該部品に対応付けられた操作を実行するための指示を取得する。取得した指示は、順遷移が実行されるトリガーとなる場合がある。操作パネル106は、タッチパネルディスプレイ105とは別に設けられた物理ボタン等による操作部である。本実施形態では、逆遷移を実行する指示は、ユーザが操作パネル106に設けられた「戻る」ボタンを押下することによって入力される。記憶装置107は本実施形態に係るデータやプログラムを記憶しておくためのハードディスクやネットワークで接続された外部記憶装置などである。本実施形態では特に、ディスプレイに表示可能な複数の画面の内容を定義する画面データ、各画面の遷移に関してイベントや優先度を定義する画面遷移データ、及び画面を構成するパーツとなる画像情報など、情報処理装置100が利用する各種データを格納する。本実施形態では、順遷移あるいは逆遷移の指示が入力されたことに応じてCPU101が記憶装置107に記憶された画像データに基づいて、表示画像を生成しタッチパネルディスプレイ105に出力することで、ディスプレイの表示制御を行う。印刷装置108は、タッチパネルディスプレイ105に表示されたGUIに対する操作や、ネットワークで接続された他の装置からの指示に従って出力対象データを取得し、当該データを媒体に印刷出力するデバイスである。なお、本実施形態では、印刷装置108は情報処理装置100に内蔵された形態を例示するが、インタフェースを介して接続された外部装置として構成しても構わない。タッチパネルディスプレイ105、操作パネル106、記憶装置107、印刷装置108のそれぞれに対して入出力される信号は、各種入出力用のインタフェース104を介してシステムバス109に通知される。
本実施形態は、CPU101が、ROM102に格納されたプログラムをRAM103に展開し、後述する各フローチャートに従った処理を実行することで実現されている。ただし、複数の中央処理装置を組み合わせて処理を実行させても構わない。また例えば、CPU101を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、後述するフローチャートの各処理に対応させた演算部や回路を構成すればよい。
図1(b)は情報処理装置100の外観の一例を表す図である。図1(b)は、情報処理装置100を俯瞰した状態であり、装置の上面にタッチパネルディスプレイ105及び操作パネル106(点線で示す矩形部分)が設置されていることを示す。なお、本実施形態において、ディスプレイの表示領域の全体に表示される画像を1つの画面として扱う。ただし、特定のアプリケーションウィンドウの中に表示される画像を1画面として扱うことも可能である。このように、本実施形における「画面」は、画面遷移の要求に応じて、画面表示装置であるディスプレイに出力される表示画像に対応するもので、ディスプレイの表示領域を示すものではない。
ここで、本実施形態における画面遷移の概念とその実行方法について説明する。情報処理装置100のような組み込み機器に搭載されるGUIの構成は、概念上、Home画面(初期画面ともいう)をルートとする木構造として設計される。Home画面とは、装置を起動した(またはスリープから復帰させた)ことに応じて最初に表示される画面であり、全ての画面の入り口とみなすことができる。多くの場合、このHome画面には、その下の階層(機能)へのリンクや設定画面へのリンク等がシンプルに配置される。例えば、図1(b)はプリンタ100のタッチパネルディスプレイ105に、Home画面が表示されている例である。ユーザは、このタッチパネルに直接タッチすることや、カーソルキー110と決定キー111を操作することで、このHome画面から下位の階層の画面に遷移する操作を入力することが可能である。例えば、「Print」の書かれたラベル上でタッチすると、そのPrint機能に関する画面に遷移する要求(遷移要求)が発行され、その画面に遷移することができる。このようにユーザは、画面階層を下位に降りていくことで、より具体的に機能を表現した画面に遷移することが可能となる。この遷移は順遷移に相当する。なお順遷移を指示するユーザ操作は、GUI上の操作だけに限らず、例えばプリンタのカートリッジ交換のために筐体のカバーが開けられた場合なども含む。またこの他、順遷移は、1回の遷移の度にユーザの操作入力を必要としない場合(例えば所定時間毎に画面の切り替えが実行される場合)なども含む。一方で情報処理装置100では、順遷移してきた経路をさかのぼり、一つ前の画面に戻る逆遷移も行うことが可能である。本実施形態では、物理ボタンとして筐体上に実現された「戻る」ボタン112が押下されたことにより、逆遷移の指示が入力される。この逆遷移がユーザから指示されると、システムはこれまで辿ってきた画面遷移を逆向きに辿るようにして、ディスプレイ105に表示させる画面を遷移させる。このような逆遷移は遷移履歴を表現するデータ構造が必要であり、本実施形態では、スタックを利用することで実現する。具体的には、システム起動時に遷移履歴生成処理として、スタックの生成を行う。そして、順遷移による遷移時には、指示された遷移先の画面ID(各画面に対して与えられた唯一の識別情報)を、このスタックにPush(順次先頭に追加)する。さらに、逆遷移による遷移を実行する際にはスタックから1つ分の画面IDをPopし(削除し)、Pop後のスタックの先頭(Top)にある画面IDが示す画面を、遷移先の画面として決定する。ここでスタックの先頭とは、後入れ先だし形構造のスタックにおいて、蓄積差入れている情報の中で最後にPushされた情報、すなわち最新の情報の位置をいう。本実施形態では、スタックの先頭のことをスタックのTopとも表現する。
また、本実施形態では、木構造のうちどの階層の画面を表示していても、例えばHome画面など、特定の画面への遷移指示を入力可能な物理ボタン(詳細メニューボタン113や簡易メニューボタン114)が設置される。このようなボタンを用意することで、どのような深い階層の画面を表示していたとしても、単一の操作でHome画面に戻ることができるため、ユーザの利便性が高まる。
次に、図2を参照して、本実施形態の情報処理装置100が画面遷移を実行するための設計データを説明する。図2は、設計データを示す画面遷移図である。画面遷移図は、GUIの開発の段階で、設計ツール等を利用して作成することができる。そして、実機上でこの画面遷移図通りに画面遷移を動作させることで、複数の画面を切り替えて表示させることができる。
まず、図2の画面遷移図の意味を説明する。画面遷移図において、各画面は縁取りされた矩形で表現する。例えば、図2の画面遷移図には4つの画面207、208、209、210、212が存在し、これらの画面間の遷移の流れと、画面遷移を指示するイベントとの関係が示されている。図中の矢印202、203、204、205、213は画面間の遷移の流れを示しており、特定の画面で後述の画面遷移イベント(遷移要求)を受信した場合に、画面が切り替わること(画面遷移)が表現されている。例えば、画面207を表示している状態において、Guideというイベントを受信すると、画面208に画面遷移することを示す。このように、画面遷移図で記載された流れに沿った画面遷移は、順遷移である。図2においてInitial flag206は、装置の起動時に最初に表示される画面を表すフラグである。つまり図2の画面遷移図においては、このInitial flag206が指し示した画面207が、最初に表示される(Home画面に相当する)ことが示される。また、Detailed_Home201及びSimple_Home211のように、画面群を囲う矩形から特定の画面に伸びる矢印に対応する遷移は、この矩形内に含まれるどの画面からでも、そのイベント発生時に当該矢印の先の画面に遷移することを表す。
図2により表現されている画面遷移図を動作させた際の動きの具体例を説明する。まず、Initial flag206が示すHome画面である画面207が表示される。そして、その画面でGuideイベント302が発生すると、画面208に遷移する。さらにその状態で、「次へ」と書かれたラベルがタッチされることにより、Nextイベントが発生すると、Guide2 Screen209に遷移する。さらにNextイベントが発生すると画面210に遷移し、さらにNextイベントが発生すると画面208に戻る。つまり、画面遷移がGuideモードを表現する画面208〜210へ進むと、Nextイベントが発生し続ける間はこれらの画面208〜210を順遷移し続けることを表している。本実施形態は、Simple Home Screen(画面212)は、第2のHome画面である。この第2のHome画面は、よりシンプルな構成のメニューを提示することで、一部の機能のみを利用するユーザや情報処理装置100を使い慣れないユーザに対し、目的に沿った容易な操作を可能とするHome画面である。本実施形態では、図1(b)の簡易メニューボタン114が押下されることにより、Simple_Home211イベントが発生し、階層のいずれの画面を表示している時でも画面212に遷移できる。さらに「ガイドを見る」というラベルがタッチされた場合にはGuide213のイベントが発生し、画面208に順遷移する。
画面208〜210のように、画面遷移のループが発生する場合、単純にスタックを1つ溯る逆遷移を行うと、ユーザの意図と乖離した結果を生じさせる場合がある。例えば、図2の状態遷移図では、画面207から画面208に遷移した後、順遷移ではGuide2 Screen209、Guide2 Screen210、画面208の遷移をループする。ここで2回目以降に画面208が表示された段階でユーザが「戻る」ボタン112を押下し逆遷移を指示したとする。画面208はガイド表示のHome画面である。この場合、ユーザはGuideのループに入る前の画面、すなわち画面207に戻ることを期待している可能性が高い。しかしながら、履歴を1つ溯る(スタックの最後をPopした上で、Topの画面IDに基づいて遷移する)処理で逆遷移を実行すると、Guide2 Screen210への遷移が実行される。以降「戻る」ボタン112を押し続けて、Guide2 Screen209、画面208の画面をループした回数だけ表示させなければ、所望とする画面207に戻ることができない。ループを遡ることだけを避けるのであれば、2回目に画面208が表示されるとき、スタックの中から、1回目に画面208を表示した後に記憶された情報を削除してしまうことで、逆遷移に応じて遷移する画面を、ループに入る直前の画面とすることができる。しかしながら、図2の画面遷移図に従っている場合、2回目以降に画面208が表示されたときの直前に表示されていた画面は、必ずしもループ内の画面であるとは限らない。つまり、ループの途中でユーザが簡易メニューボタン114を押下することにより、Simple Home Screen212への遷移が発生し、さらに「ガイドを見る」がタッチされたことに応じて画面208が表示される場合がある。この段階でユーザが「戻る」ボタン112を押下し逆遷移を指示した場合、意図されるのはSimple Home Screen212への逆遷移である可能性が高い。このように、一連の画面遷移の中で同一画面が複数回表示された場合、逆遷移指示に応じて遷移すべき先は、履歴上の連続関係だけで一意に決定することが困難である。
本実施形態は、このように画面遷移がループする場合や複数の経路から同一の画面への遷移が可能な場合に対応し、逆遷移指示に応じて遷移すべき先を特定するため、スタックに、順遷移において経由した画面IDに対応づけて画面遷移の付加情報を保持する。本実施形態で画面遷移の付加情報とは、順遷移で実行される画面遷移画面間の繋がりが、逆遷移される場合の優先度を示す。逆遷移を行う際に、複数の遷移先の候補があった場合には優先度の高い画面が選択されるようにスタックを制御することで、ユーザに違和感を与える可能性を回避し、ユーザが所望とする画面への画面遷移を実現する。
なお、画面遷移図は、XMLとして表現することも可能である。図3は、図2の画面遷移図をXMLで表現したものである。このXMLでは、画面遷移を<Screens>というタグ301で表現する。また、画面を<Screen>というタグ303、遷移を<Transition>というタグ302で表現することができる。このようにXMLでデータ化することにより、ソフトウェアを使ったデータの読み書きが容易になるという利点がある。
図4は、本実施形態の情報処理装置100が実行するGUIの表示制御処理のメインの流れを示すフローチャートである。本実施形態では、情報処理装置100の電源が起動されたことに応じ、図4のフローチャートが開始される。
ステップS401において、CPU101は、外部イベントの取り込みを行う。この処理では、タッチパネル105、操作パネル106といった入力デバイスに対する操作に応じて発行される外部イベントを取得する。例えば、タッチパネルをユーザが指でタッチしたClickイベントや、装置筐体に取り付けられた物理ボタンの押下イベントがこれら外部イベントに相当する。
ステップS402において、CPU101は、取り込まれた外部イベントに応じた画面遷移イベントを取得する。画面遷移イベントを取得するとは、画面データ(107)や特定の変換テーブル(図13)を用い、取り込まれた外部イベントに対応する画面遷移を引き起こす画面遷移イベントを特定する処理である。例えば、図2の画面遷移に従う場合、画面間に引かれた矢印が画面遷移イベントに相当する。つまり、「次へ」とラベルに対してユーザのタッチがあったことをClickイベントという外部イベントとして取り込み、表示されている画面に基づいて、対応する画面遷移イベントであるGuideイベントを取得する。取得された画面遷移イベントが、別の画面への画面遷移のトリガーとなる。本実施形態は、外部イベントに対応する画面遷移イベントを取得する処理は、外部イベントと、その時点で表示している画面の画面データ、及び事前に用意された対応付け関係情報に基づいて行う。図6を参照して、外部イベントに対応する画面遷移イベントを取得する処理を説明する。例えば、図6(a)はDetailed Home Screen207の画面の一例であり、図6(b)の画面データ602は、XMLで記述した画面データの例である。画面データとは、その画面を表示するのに必要なGUIの構成の情報が記述されたデータであり、例えばその画面で利用するGUI部品(ラベルやビットマップ画像)の種別や、配置される位置等が規定される。図6のDetailed Home Screen207の例において、ユーザがタッチパネル上のx=170、y=110の座標をタッチし、Clickという外部イベントを発生させたとする。この画面データ602によると、この画面は5つの<Bitmap>からなる画面であることがわかる。さらに、Clickが発生したx=170、y=110の座標は“guide.bmp”が置かれた領域であることがわかる(タグ603)。画面データには、<OnClick>タグ604のように、領域内で外部イベントが発生した場合に、発生させる画面遷移イベントを記述しておくことが可能である。ここでは、この“guide.bmp”上でClickイベントが発生した場合は、“Guide”という画面遷移イベントを発生させることが記述されている。このように、外部イベントであるClickが発生した場合は、そのイベントが発生した画面上の位置によって、異なる画面遷移イベントを取得することが可能となる。さらに、本実施形態では、図6(c)のようなテーブルを用い、表示されている画面に寄らず発生する外部イベントに基づいて、画面遷移イベントを取得する。図6(c)のテーブルでは、左列の外部イベントを検知した場合に、右列の画面遷移イベントを取得するという対応関係が定義されている。例えば操作パネル106において、「戻る」ボタン112が押下された場合、行605に定義された対応関係を参照することで、逆遷移を要求する画面遷移イベントを取得する。なお逆遷移を要求するイベントとは、一つ前の画面に戻る逆遷移を実行することを指示することである。
なお、図6の例では、1つの入力イベントに対し、1回の画面遷移が起こる画面遷移イベントの例示しかないが、これに限る必要はない。例えば、30秒毎に3画面が連続表示されるような、複数画面に跨る順遷移をイベントとして用意することもできる。
図4のフローチャートでは、次にステップS403において、CPU101が、取り込まれた外部イベントに基づいて画面遷移イベントが取得できたか否かを判定する。上述したようにして、取り込まれた外部イベントに基づいて画面遷移イベントが取得できたと判定される場合には(ステップS403でYes)には、ステップS504に進む。一方、タッチされた位置に画面遷移イベントが定義されていないなど、取り込まれた外部イベントに基づいて画面遷移イベントが取得できない場合(ステップS403でNo)には、ステップS401に戻り、次の外部イベントを取り込む。
ステップS404では、CPU101が、スタック制御と、画面遷移を実行する。情報処理装置100は、電源を切られる、あるいはスリープモードに移行するなどに応じて、ディスプレイ105において画面表示が不要となるまで、図4のフローチャートの処理を繰り返す。ディスプレイ105において画面表示が不要となった場合は、割り込み処理として画面表示を終了させる。
次に図5は、ステップS404において実行される画面遷移の実行処理の流れの詳細を示すフローチャートである。
ステップS501では、CPU101が、取得された画面遷移イベントが逆遷移を要求するものかを判定する。逆遷移を要求するイベントである場合(ステップS501でYes)、ステップS502に進む。逆遷移を要求するイベントではない場合(ステップS501でNo)、ステップS505に進む。
ステップS502では、CPU101が、RAM103上に生成されている画面遷移スタックに、複数の画面IDが存在するかどうか、すなわち逆遷移が可能かを判定する。スタックに複数の画面IDが存在する場合(ステップS502でYes)には、ステップS503に進む。ステップS503では、CPU101が、スタックから最新の1画面分(この時点で表示されている画面に相当する)の画面IDをPopする。そしてステップS504において、CPU101が、ディスプレイ105に表示させる画面を、スタックのTopとなる画面IDに基づいて特定し、当該IDの画面データを記憶装置107から取得し、ディスプレイ105に出力することで画面遷移を実行させる。これにより、逆遷移を要求する画面遷移イベントが起きる度に、一つ前に表示していた画面が表示されるようになる。一方、スタックに複数の画面IDが存在しない場合(ステップS502でNo)は、本フローを抜け図4のフローチャートにリターンする。例えば、逆遷移を繰り返し、既に、装置の起動直後に表示したHome画面まで戻ってきた場合、逆遷移イベントが入ってきても逆遷移は行わない。
ステップS505では、CPU101が、記憶装置107に記憶された画面遷移データに基づいて、現在表示中の画面において、取得された画面遷移イベントが発生した場合に、どの画面にどの優先度で遷移するかを決定する。
ここで、画面遷移データとは、前もって設計された画面遷移のルールを記述したデータである。画面遷移データは、図7のような画面遷移図、あるいは図3(b)のようなXMLで表現することもできる。本実施形態では、図7の画面遷移図を利用する。図7の画面遷移図には、画面遷移のパターン(矢印)のそれぞれに優先度(矩形内の数値)が付与されていることが特徴である。この優先度は、その画面遷移が、ユーザの意図に沿っているとみなせる度合いを示す付加情報であり、予め(画面遷移を設計する時点で)設計者によって決められている。ステップS505において、CPU101は、画面遷移データに基づいて、その時点で入力されることが可能な画面遷移をリストアップする。具体的には、画面遷移イベントが発行された時点でディスプレイ105に表示中の画面から伸びる矢印に相当する遷移と、表示中の画面に依存せずに指示されることが可能な遷移、すなわち画面遷移図の外枠の矩形から伸びている矢印に相当する遷移である。例えば、表示中の画面が画面207であれば、Guideという画面遷移イベントが入力されたことに応じて、画面207から伸びる方向の遷移と画面207を包んだ矩形から伸びる遷移を全てリストアップする。この例では、3つの遷移<Guide202、Detailed_Home201、Simple_Home211>がリストアップされる。なお、図3(b)のXML表現された画面遷移データでは、“Detailed Home Screen”を示す<Screen>タグ311の子要素である<Transition>タグ312がリストアップの対象である。さらに、自分の先祖の要素が直下の子要素として持つ<Transition>タグ313、314もリストアップされる。CPU101は、リストアップした画面遷移の中で今回変換したGuideという画面遷移イベントに対応した遷移を探索する。この例ではGuide202が、指示された画面遷移として決定される。また、この画面遷移の優先度は、図7のGuide202に付けられた優先度である「1」である。
次に、ステップS306では、CPU101が、取得された画面遷移イベントに指示された遷移先の画面IDが、スタック内に既に存在しているかを判定する。指示された遷移先の画面IDがスタックに存在しない場合(ステップS506でNo)、ステップS510に進む。一方指示された遷移先の画面IDがスタックに存在する場合(ステップS506でYes)、ステップS507に進む。
ステップS507では、今回指示された画面遷移の優先度と、既にスタックに存在する遷移先と同一の画面を示す画面IDに対応付けられた優先度を比較する。そして、ステップS508は、CPU101は、比較の結果、今回指示された画面遷移の優先度よりも、スタックに既に存在する、遷移先と同一画面の画面IDに対応付けられた優先度が大きいかを判定する。スタックに存在する、遷移先と同一画面の画面IDに対応付けられた優先度の方が大きい場合(S508でYes)、ステップS509に進む。スタックに存在する、今回指示された画面遷移の優先度の方が大きい場合(S508でNo)、ステップS510に進む。
ステップS509では、CPU101が、スタックに存在する遷移先と同一画面の画面IDより後にPushされた画面IDを全てPopする。そして、ステップS504へ進み、スタックのTopの画面IDに応じた画面遷移を実行する。ステップS510では、遷移先の画面IDと、その遷移の優先度を対応付けてスタックにPushする。そして、ステップS504に進み、スタックのTopの画面IDに応じた画面遷移を実行する。
図8(a)は、図7の画面遷移図に従ってGUIの画面遷移を実行する情報処理装置100において、Guide202、Next203、Next204、Next205という画面遷移を指示するイベントが連続して発生した場合の、スタックを示す。
まず、スタック801は、装置の起動に応じてHome画面である画面207が表示された段階で生成されるスタックを示す。ここでは、スタックにHome画面の画面IDである“Detailed Home Screen”とそのInitial flagに付けられた優先度である「0」が格納される。次に、画面遷移イベントによりGuide202という画面遷移が指示されると、スタックはスタック802のように変化する。すなわちディスプレイ105に表示される画面は画面208に遷移し、スタックには遷移した画面のIDの“Guide1 Screen”とGuide202の遷移の優先度である「1」が対応付けられ、Pushされる。さらに、画面遷移イベントに応じてNext203という画面遷移が指示されると、スタック802のように、画面IDの“Guide2 Screen”が優先度「0」と関連付けられてスタックにPushされる。さらに、画面遷移イベントに応じてNext204という画面遷移が指示されると、スタック803のように、画面IDの“Guide2 Screen”がそれぞれ優先度「0」と関連付けられてスタックにPushされる。
本実施形態では、この段階で画面遷移イベントによりNext205の画面遷移が指示されると、画面208に遷移することを試みる。このとき、スタック802には遷移先と同一の画面の画面ID“Guide1 Screen”が既に存在する。従って、優先度の比較処理を行う。このケースでは、スタック中で画面ID“Guide1 Screen”に付けられた優先度が「1」、今回の遷移の優先度が「0」であるため、スタック中の画面IDに対応付けられた優先度の方が大きい。従ってスタック中で、画面ID“Guide1 Screen”から後にPushされた画面IDを全てPopする。それによりスタックは、スタック805のようになる。そして画面遷移は、スタック805のTopの画面ID“Guide1 Screen”が示す画面208に遷移する。
本実施形態では、この段階で「戻る」ボタン112が押下され逆遷移イベントが発生した場合、スタックのTopにある画面ID“Guide1 Screen”をPopする。そして、Pop後のスタックのTopとなる画面ID“Detailed Home Screen”が示す画面207を、遷移先の画面として決定する。つまり、画面208〜210のような画面遷移のループを何度通ったとしても、このループを辿って戻る必要がなく、簡単に上位階層であるHome画面に戻ることができる。
図8(b)は、図7の画面遷移図を実行するシステムにおいて、Guide202、Simple_Home201、Guide213という画面遷移を指示するイベントが連続して発生した場合のスタックの様子を示している。
まず、スタック806は、Home画面である画面207を表示した段階で、画面ID“Detailed Home Screen”とそのInitial flagに付けられた優先度である「0」が格納されている。Guide202の遷移を指示する画面遷移イベントが発生すると、画面208に遷移し、スタック807のように、スタックには画面ID“Guide1 Screen”とその優先度である「1」がPushされる。本実施形態では、この段階でSimple_Home211の遷移を指示する画面遷移イベントが発生すると、画面212に画面遷移し、スタックには画面ID“Simple Home Screen”と優先度「0」とがPushされる。次に、画面遷移イベントによりGuide213の画面遷移が指示されると、画面208への遷移を試みる。このとき、スタック807には、既に画面ID“Guide1 Screen”が既に存在する。優先度を比較すると、このケースでは、スタック中で画面ID“Guide1 Screen”に付けられた優先度が「1」、今回の遷移の優先度も「1」であるため、スタック中の優先度と今回の遷移の優先度が同じである。従って、スタック809のように、今回の画面遷移イベントが指示する遷移先の画面208と、その優先度である「1」が対応付けられてスタックにPushされる。そして、ディスプレイ105に表示される画面は画面208に遷移する。
本実施形態では、この段階で「戻る」ボタン112が押下され逆遷移イベントが発生した場合、スタックからTopにある画面ID“Guide1 Screen”をPopする。そして、Pop後のスタックのTopとなる画面ID“Simple Home Screen”が示す画面212を、遷移先の画面として決定する。つまり、同一画面を表示させるのが2回目以降であったとしても、異なる経路から同一画面に遷移してきた場合には、直近の画面に戻ることができる。
以上説明したように、本実施形態によれば、多数の画面で構成されるGUIを操作して画面遷移を行う際に、スタックに画面IDと画面遷移の優先度を保持する。そして、優先度を用いた判断処理により、画面遷移中に同一の画面を複数回経由した後で行われる逆遷移の指示に対して、重複する画面を繰り返し表示させることを省略して最少の回数で上位画面に戻るか、表示中の画面の直前の画面に戻るかを制御する。これにより、多様な機能を有するGUIにおいて、ユーザに要求される操作の回数を低減するなど操作性を向上させることができる。さらに、逆遷移指示に対して表示を省略すべき画面の情報は、スタックからPopしてしまうので、スタックの情報量が膨大になることを抑えることができる。
第1の実施形態では、画面遷移の優先度は、画面遷移の設計時点に設計者が手動で指定した。ただし、優先度の付与を情報処理装置100が行う変形例を適応することもできる。
例えば、図9のように階層構造をもつ複数の画面で構成された画面遷移図を設計者が設計したとする。図の上段から下段への遷移は、ある機能を表現する画面(上位概念)からサブ(下位概念)の機能を表現する画面に遷移することを意味している。同じ段の横への遷移は、同じ概念間の機能を切り替えて表示する遷移である。このように表現された画面遷移図では、CPU101が画面遷移図上での画面の配置情報を解析し、下の遷移には優先度を「1」に設定し、左右の遷移には優先度を「0」に設定することを自動で行うことが可能である。もちろん、画面遷移図の左から右に機能/サブ機能と展開するような画面間遷移図においては、右への遷移には優先度として「1」を、上下の遷移には優先度として「0」を設定することも可能である。
一般的に画面遷移図を作成する手法として、機能/サブ機能を上下(場合によって左右)で表現することはよく行わるものである。本変形例では、この記述方法を利用することで優先度の設定を自動付与するため、画面遷移設計時の設計者の工数を削減することが可能となる。なお、遷移への優先度の自動付与は設計時に行う事も、(実機上での)画面遷移の実行時に行うこともできる。自動付与が設計時の場合には、設計ツールは自動付与の結果を設計者に表示するモードや修正させるモードを備えてもよい。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101 CPU
102 ROM
103 RAM
105 タッチパネルディスプレイ
106 操作パネル

Claims (16)

  1. ディスプレイに表示可能な複数の画面を、画面遷移により切り替えて表示させる情報処理装置であって、
    ユーザ操作に応じたイベントを取得する取得手段と、
    前記ディスプレイに表示させる画面を示す情報を、当該画面を表示させるために実行された画面遷移に対して予め設定された優先度とを対応付けて蓄積するスタックに対して、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面を示す情報と、既にスタックに蓄積されている情報とに基づいて、情報の追加または削除の処理を行うスタック制御手段と、
    前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる表示制御手段とを備え、
    前記スタック制御手段は、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されている場合、前記既に蓄積されている前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報より後に前記スタックに追加された情報を削除する
    ことを特徴とする情報処理装置。
  2. 前記スタック制御手段は、前記取得手段によって取得されたイベントが、前記ディスプレイに表示されている画面の前に表示されていた画面への遷移を指示するイベントである場合、前記スタックの先頭に保持されている前記対応づけ情報を削除し、
    前記表示制御手段は、前記削除が行われた後のスタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる
    ことを特徴とする請求項1に記載の情報処理装置。
  3. さらに、前記ディスプレイに表示可能な複数の画面に対して予め定義された、各画面への画面遷移のトリガーとなるイベントと、該画面遷移のそれぞれに設定された優先度を示す情報を記憶する記憶手段を備え、
    前記スタック制御手段は、前記取得手段によって取得されたイベントが、前記記憶手段が記憶した情報に定義された画面遷移のトリガーとなるイベントに対応する場合、前記記憶手段に記憶された情報に基づいて、前記取得手段が取得したイベントをトリガーとして実行される画面遷移の遷移先の画面を特定し、当該画面遷移の優先度を、前記特定された画面を示す情報に対応づけてスタックに追加する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記スタック制御手段は、前記取得手段によって取得されたイベントが、前記記憶手段が記憶した情報に定義された画面遷移のトリガーとなるイベントに対応し、かつ、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されていない場合に、前記記憶手段に記憶された情報に基づいて、前記取得手段が取得したイベントをトリガーとして実行される画面遷移の遷移先の画面を特定し、当該画面遷移の優先度を、前記特定された画面を示す情報に対応づけてスタックに追加する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記スタック制御手段は、前記取得手段によって取得されたイベントが、前記記憶手段に記憶された情報に含まれる前記画面遷移のトリガーとなるイベントに対応し、かつ、前記取得手段によって取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されている場合、前記スタックにおいて前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報の後に前記スタックに蓄積された情報を削除する
    ことを特徴とする請求項3に記載の情報処理装置。
  6. 前記スタック制御手段は、前記取得手段によって取得されたイベントをトリガーとする画面遷移に予め設定された優先度と、前記スタックにおいて前記遷移先と同一の画面を示す情報に対応付けられた優先度を比較した結果に応じて、前記既に蓄積されていた前記遷移先を示す情報の後に前記スタックに蓄積された情報を削除する
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記スタック制御手段は、前記比較した結果が、前記取得手段によって取得されたイベントをトリガーとする画面遷移に予め設定された優先度の方が高いことを示す場合は、前記既に蓄積されていた前記遷移先を示す情報の後に前記スタックに蓄積された情報を削除しない
    ことを特徴とする請求項6に記載の情報処理装置。
  8. さらに、前記ディスプレイに表示可能な複数の画面に対して予め定義された各画面への画面遷移に基づいて、該画面遷移のそれぞれに優先度を設定する設定手段を備えることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記設定手段は、前記ディスプレイに表示可能な階層構造を構成する複数の画面に対して予め定義された各画面への画面遷移に基づいて、上位概念の画面から下位概念の画面への遷移時に優先度を高く、同じ概念間での画面遷移の場合には優先度を低く設定することを特徴とする請求項8に記載の情報処理装置。
  10. ディスプレイに表示可能な複数の画面を、画面遷移により切り替えて表示させる情報処理装置の制御方法であって、
    取得手段により、ユーザ操作に応じたイベントを取得する取得工程と、
    スタック制御手段により、前記ディスプレイに表示させる画面を示す情報を、当該画面を表示させるために実行された画面遷移に対して予め設定された優先度とを対応付けて蓄積するスタックに対して、前記取得されたイベントをトリガーとする画面遷移の遷移先の画面を示す情報と、既にスタックに蓄積されている情報とに基づいて、情報の追加または削除の処理を行うスタック制御工程と、
    表示制御手段により、前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる表示制御工程とを備え、
    前記スタック制御工程では、前記取得されたイベントをトリガーとする画面遷移の遷移先の画面と同一の画面を示す情報が、既に前記スタックに蓄積されている場合、前記既に蓄積されている前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報より後に前記スタックに追加された情報を削除する
    ことを特徴とする情報処理装置の制御方法。
  11. 請求項10に記載の制御方法をコンピュータに実行させるための制御プログラム。
  12. 請求項11に記載の制御プログラムを格納したコンピュータが読み取り可能な記憶媒体。
  13. ディスプレイに表示可能な複数の画面に対して予め定義された、各画面への画面遷移のトリガーとなるイベントと、該画面遷移のそれぞれに設定された優先度を示す情報を記憶する記憶手段と、
    ユーザ操作に応じたイベントを取得する取得手段と、
    前記記憶手段に記憶された情報に基づいて、前記取得手段が取得したイベントをトリガーとして実行される画面遷移の遷移先の画面を特定し、当該画面遷移の優先度を、前記特定された画面を示す情報に対応づけてスタックに追加する追加手段と、
    前記取得手段が取得したイベントをトリガーとして実行される画面遷移の遷移先と同一の画面を示す情報が、既に前記スタックに蓄積されている場合に、前記スタックにおいて前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報の後に前記スタックに追加された情報を削除し、
    前記取得手段が取得したイベントが、前記ディスプレイに表示されている画面の前に表示されていた画面への遷移を指示するイベントである場合、前記スタックの先頭に保持されている情報を削除する削除手段と、
    前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる表示制御手段とを備えることを特徴とする情報処理装置。
  14. 記憶手段により、ディスプレイに表示可能な複数の画面に対して予め定義された、各画面への画面遷移のトリガーとなるイベントと、該画面遷移のそれぞれに設定された優先度を示す情報を記憶する記憶工程と、
    取得手段により、ユーザ操作に応じたイベントを取得する取得工程と、
    追加手段により、前記記憶手段に記憶された情報に基づいて、前記取得されたイベントをトリガーとして実行される画面遷移の遷移先の画面を特定し、当該画面遷移の優先度を、前記特定された画面を示す情報に対応づけてスタックに追加する追加工程と、
    削除手段により、前記取得されたイベントをトリガーとして実行される画面遷移の遷移先と同一の画面を示す情報が、既に前記スタックに蓄積されている場合に、前記スタックにおいて前記遷移先と同一の画面を示す情報に対応付けられた優先度に応じて、前記既に蓄積されていた前記遷移先を示す情報の後に前記スタックに追加された情報を削除し、
    前記取得されたイベントが、前記ディスプレイに表示されている画面の前に表示されていた画面への遷移を指示するイベントである場合、前記スタックの先頭に保持されている情報を削除する削除工程と、
    表示制御手段により、前記スタックの先頭に保持されている情報が示す遷移先の画面を、前記ディスプレイに表示させる表示制御工程とを有することを特徴とする情報処理装置の制御方法。
  15. 請求項14に記載の制御方法をコンピュータに実行させるための制御プログラム。
  16. 請求項15に記載の制御プログラムを格納したコンピュータが読み取り可能な記憶媒体。
JP2013255670A 2013-12-11 2013-12-11 情報処理装置、制御方法、プログラム及び記憶媒体 Pending JP2015114799A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013255670A JP2015114799A (ja) 2013-12-11 2013-12-11 情報処理装置、制御方法、プログラム及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013255670A JP2015114799A (ja) 2013-12-11 2013-12-11 情報処理装置、制御方法、プログラム及び記憶媒体

Publications (1)

Publication Number Publication Date
JP2015114799A true JP2015114799A (ja) 2015-06-22

Family

ID=53528562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013255670A Pending JP2015114799A (ja) 2013-12-11 2013-12-11 情報処理装置、制御方法、プログラム及び記憶媒体

Country Status (1)

Country Link
JP (1) JP2015114799A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109361948A (zh) * 2018-10-30 2019-02-19 深圳Tcl数字技术有限公司 界面管理方法、智能终端及可读存储介质
US10372311B2 (en) * 2013-04-05 2019-08-06 Denso Corporation Display control device
CN113489916A (zh) * 2021-06-24 2021-10-08 浙江大华技术股份有限公司 画面叠加的处理方法、装置、系统、电子装置和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372311B2 (en) * 2013-04-05 2019-08-06 Denso Corporation Display control device
CN109361948A (zh) * 2018-10-30 2019-02-19 深圳Tcl数字技术有限公司 界面管理方法、智能终端及可读存储介质
CN113489916A (zh) * 2021-06-24 2021-10-08 浙江大华技术股份有限公司 画面叠加的处理方法、装置、系统、电子装置和存储介质

Similar Documents

Publication Publication Date Title
US9766739B2 (en) Method and apparatus for constructing a home screen in a terminal having a touch screen
CN105706428B (zh) 提供消息的方法以及支持所述方法的用户设备
JP2000227828A (ja) グラフィカル・ユーザ・インターフェイスを備えた情報処理システム
JP2014149833A (ja) マルチタスキング運用のための画面表示方法及びこれをサポートする端末機
US11435870B2 (en) Input/output controller and input/output control program
JP2012208439A (ja) 投影装置、投影方法及び投影プログラム
KR102205283B1 (ko) 적어도 하나의 어플리케이션을 실행하는 전자 장치 및 그 제어 방법
CN104243749B (zh) 图像形成装置及图像形成装置的控制方法
JP2013164746A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
US20140292697A1 (en) Portable terminal having double-sided touch screens, and control method and storage medium therefor
JP2016126657A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2011138436A (ja) 画像処理装置及び同装置の表示制御方法並びに表示制御プログラム
JP6025473B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2008234082A (ja) 画面データ生成装置、画像処理装置、画面データ生成方法及び記録媒体
US8982397B2 (en) Image processing device, non-transitory computer readable recording medium and operational event determining method
JP2015114799A (ja) 情報処理装置、制御方法、プログラム及び記憶媒体
JP2013012063A (ja) 表示制御装置
US20140165011A1 (en) Information processing apparatus
JP2014238700A (ja) 情報処理装置、表示制御方法、及びコンピュータプログラム
US10691293B2 (en) Display device and computer-readable non-transitory recording medium with display control program stored thereon
JP6209868B2 (ja) 情報端末、情報処理プログラム、情報処理システム、及び情報処理方法
JP2007066077A (ja) Gui生成方法、gui生成装置、コンピュータプログラム及び記憶媒体
JP2010191720A (ja) コンピュータプログラム
JP5853778B2 (ja) 印刷設定装置、印刷設定方法、印刷設定プログラムおよび記録媒体
JP5721315B2 (ja) コンピュータプログラム