JPH05224904A - グラフィカル・ユーザインターフェースの編集装置 - Google Patents

グラフィカル・ユーザインターフェースの編集装置

Info

Publication number
JPH05224904A
JPH05224904A JP4024017A JP2401792A JPH05224904A JP H05224904 A JPH05224904 A JP H05224904A JP 4024017 A JP4024017 A JP 4024017A JP 2401792 A JP2401792 A JP 2401792A JP H05224904 A JPH05224904 A JP H05224904A
Authority
JP
Japan
Prior art keywords
editing
gui
event
mode
graphical user
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
JP4024017A
Other languages
English (en)
Inventor
Hiroshi Ichiji
宏 伊知地
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP4024017A priority Critical patent/JPH05224904A/ja
Publication of JPH05224904A publication Critical patent/JPH05224904A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】汎用のOS上に構築されるGUIを通じてGU
Iの新たな設計や編集を行う場合であっても、効率の良
い、柔軟性に富んだGUI編集を可能にするGUIの編
集装置を提供する。 【構成】このGUIの編集装置は、複数のGUI部品を
管理するブラウザ、これら部品を単位要素として編集さ
れるGUIデータを管理する編集データ管理部、そして
入力装置を通じてのユーザ入力をGUIのイベントとし
て受け取り、この受け取ったイベントを解析してブラウ
ザ及び編集データ管理部の処理態様を決定する編集動作
解析部を具えて構成される。各GUI部品はその属性と
して、構造や存在条件等を示す型や、イベントについて
のこの型により与えられる制約条件を有する。編集動作
解析部では、各GUI部品の型や、型により与えられる
制約条件をもとに、都度のイベントの適否を型推論し、
その結果、該当する部品についての制約条件が満たされ
ないと判断されるとき、そのイベントに対応するユーザ
入力を無効とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ワークステーション
やパーソナルコンピュータ等に環境提供されたグラフィ
カル・ユーザインターフェースを通じて新たなグラフィ
カル・ユーザインターフェースの構築、或いは編集を行
うグラフィカル・ユーザインターフェースの編集装置に
関し、特に、汎用のOS(オペレーティングシステム)
上で、こうしたユーザインターフェースの、効率よい、
しかも柔軟性に富んだ構築、編集を可能ならしめる編集
装置の具現に関する。
【0002】
【従来の技術】ワークステーションやパーソナルコンピ
ュータ等に視覚的な操作環境を提供するグラフィカル・
ユーザインターフェース(以下、GUIと略称する)
は、これらワークステーションやパーソナルコンピュー
タ等を通じての知的生産を著しく高め得る手段或いは技
術として、近年、大いに注目を集めている。
【0003】例えば、 ◆「GMW(ギブ・ミー・モア・ウィンドウズ)ウィン
ドウ・システム上のアプリケーション構築について」大
谷浩司 他著 コンピュータソフトウェア Vol.17 No.1 (1990,1,16) P.45-60 ◆「ヒューマンインタフェースの最先端」日本ソフトウ
ェア科学会 平成2年1月18日発行 P.29-46 「グラフィカルなユーザ・インターフェースと
その開発環境について」萩谷昌己著 ◆「User Interface Management Systems(ユーザ・イ
ンターフェース・マネージメント・システムズ)」 G.
E.Pfaff(ジー・イー・ファフ)編 Springer-Verlag(スプリンガー出版)1983,11,1-3 P.9-20「Report on Dialogue Specification To-ols
(リポート・オン・ダイアログ・スペシフィケーション
・ツールズ)」 M.Green(エム・グリーン)著 ◆「Human-Computer Interface Development: C-oncept
s and Systems for ItsManagement(フューマン−コン
ピュータ・インターフェース・デベロップメント:コン
セプト・アンド・システムズ・フォー・イッツ・マネー
ジメント)」 H.REX HARTSON(エイチ・レックス・ハートソン)DEBOR
AH HIX(デボアー・ヒックス)共著 ACM Computing Surveys Vol.21 No.1 1989,3 P.5-92 等々は何れも、GUIについて考察された文献であり、
この他にも、様々な形で、GUIに関する研究や開発が
進められている。
【0004】ところで、このようなGUIとしては、こ
れまでも、「Star(スター:ゼロックス社)」などに見
られるようないくつかの実用されている技術もあるが、
そのほとんどは、OS(オペレーティングシステム)自
体に組み込まれていてユーザ自身による改良やカスタマ
イズの困難なシステムであったり、また、UNIX(ユ
ニックス)等の汎用OS上でこうしたGUI環境を提供
するX(エックス)ウィンドウにしても、その開発環境
として標準になりつつあるいくつかのGUIシステムを
見る限りにおいては、 ( 1)ユーザの誤った操作を有効に保護することができな
い。例えば、こうしたGUI環境を通じて新たなGUI
を設計或いは編集する場合に、現実には有り得ないよう
な部品(GUI部品)の配置が指定されたような場合で
もこれをGUIデータとして受け入れてしまう。
【0005】( 2)GUIにあっては通常、マウスやキー
ボード等の入力装置を通じてのユーザ入力をイベントと
して受け取り、この受け取ったイベントを解析して、予
め定義された何らかの処理を実行することとなるが、こ
のイベントに対する解釈の仕方が固定されていて、多様
の処理を定義するためには、イベントの発生のさせ方も
多様に定義する必要がある。すなわちユーザにしてみれ
ば、操作を進めていく過程において多様の入力方法が強
いられることとなる。
【0006】( 3)各GUI部品毎に決められたサイズの
メモリ領域を割り当てて、そのメモリ領域の中に必要な
データを格納するようにしていることから、もしも異な
るGUI環境を通じて新たなGUIの設計或いは編集を
行おうとする場合には、その利用するGUI環境での部
品に合わせて編集装置自体を修正する必要がある。
【0007】( 4)また、GUI定義言語の構造も、GU
I環境毎に固定されていることから、異なるGUI環境
を通じて新たなGUIの設計或いは編集を行おうとする
場合にはやはり、その利用するGUI環境での部品に合
わせて編集装置自体を修正する必要がある。
【0008】( 5)新たに定義したGUI構築用部品をG
UI部品のデータベースに登録するためには、その定義
した部品の属性名と属性値とをユーザがいちいちタイプ
入力しなければならず、その手続が面倒である。
【0009】等々、実用上は、また汎用性を考える場合
には、尚多くの問題を抱えている。
【0010】
【発明が解決しようとする課題】上述のように、従来の
GUI開発環境にあっては、たとえそれが、汎用OS上
での構築が可能なものであっても、上記( 1)〜( 5)とし
て挙げたような多くの課題を残すものであり、特にその
汎用性を考える上では、これらの早急な解決が望まれて
いる。
【0011】この発明は、こうした実情に鑑みてなされ
たものであり、汎用のOS上に構築されるGUIを通じ
てGUIの新たな設計や編集を行う場合であっても、上
記の課題を解決して、効率の良い、柔軟性に富んだGU
I編集を可能にするGUIの編集装置を提供することを
目的とするものである。
【0012】すなわちこの発明は、ユーザの誤った操作
を効果的に保護することのできるGUIの編集装置を提
供することを目的とする。
【0013】またこの発明は、GUI部品のサイズやG
UI定義言語によって規定されることなく、より多くの
GUI構築環境下で汎用的にGUI編集を行うことので
きるGUIの編集装置を提供することを目的とする。
【0014】またこの発明は、新たに設計、或いは編集
したGUI構築用部品のGUI部品データベースへの登
録手続を大幅に簡略することのできるGUIの編集装置
を提供することを目的とする。
【0015】またこの発明は、最小限のイベントに対し
て、より多様の処理を定義することのできるGUIの編
集装置を提供することを目的とする。
【0016】
【課題を解決するための手段】こうした目的を達成する
ために、この発明では、複数のGUI部品を管理するブ
ラウザ手段と、これら部品を単位要素として構成、編集
されるGUIデータを管理する編集データ管理手段と、
入力装置を通じてのユーザ入力をGUIのイベントとし
て受け取り、この受け取ったイベントを解析して前記ブ
ラウザ手段及び編集データ管理手段の処理態様を決定す
る編集動作解析手段と、を具えるGUI開発環境を前提
として、前記ブラウザ手段により管理される各GUI部
品に対しその属性として、これら部品の構造や存在条件
が各々所定の変数または該変数の式として定義された
型、若しくは前記イベントについてのこの型により与え
られる制約条件を設定するとともに、前記編集動作解析
手段には、 ( a)前記各GUI部品の編集条件が前記型、若しくは型
により与えられる制約条件をもとに、前記イベントとし
て仮定される編集内容の別に、その推論規則として記述
定義された推論ベース。 ( b)前記受け取ったイベントがこの推論ベースをもとに
型推論される当該GUI部品についての編集条件を満た
すとき、該イベントについて予め定義された処理指令を
前記編集データ管理手段に対して送出し、同受け取った
イベントがこの推論ベースをもとに型推論される当該G
UI部品についての編集条件を満たし得ないとき、当該
イベントに対応するユーザ入力を無効とする制御手段。
をそれぞれ具えるようにする。
【0017】またこの発明では、同GUI開発環境の前
提のもとに、前記編集データ管理手段に対し、 ( c)前記編集されるGUIデータを、前記GUI部品の
持つ属性に従って、その種類の別、及び前記型の集合に
分類し、これを木構造のデータとして管理する階層管理
手段。を設けるようにする。
【0018】またこの発明では、同GUI開発環境の前
提のもとに、前記編集データ管理手段には、 ( d)前記編集動作解析手段を通じたユーザ入力の解析に
基づく部品移動指令によって取り込まれる前記GUI部
品に対してその都度独自の識別子を設定する識別子設定
手段。を設け、前記ブラウザ手段には、 ( e)前記編集動作解析手段を通じたユーザ入力の解析に
基づく部品登録指令によって前記GUIデータが取り込
まれたとき、該データに対してGUI部品毎に設定され
た前記識別子に基づき、これら識別子によって識別され
る各部品の属性、及び前記型を前記編集データ管理手段
から併せ受け取り、当該GUIデータに含まれる部品と
その属性、及び型を、自ら管理する部品データベースに
追加する部品データベース管理手段。を設けるようにす
る。
【0019】また更に、この発明では、同GUI開発環
境を前提として、前記編集動作解析手段に、各異なる編
集内容に対応した複数の解析モードを設定するととも
に、同編集動作解析手段に対して、 ( f)少なくとも各該当する解析モードにおいて仮定され
るイベントの内容及びそのイベントに応じて処理すべき
内容並びに同イベントの後に遷移されるべき解析モード
が、各々所定の変数または該変数の式として表される型
として定義されて、これら各イベントに応じた処理内容
並びに各解析モードの遷移条件が、この型をもとにした
推論規則として記述定義された推論ベース。 ( g)前記イベントを受け取る都度、この推論ベースをも
とに型推論される結果に基づいて当該解析モードでの対
応する処理態様を決定する処理態様決定手段。 ( h)同推論ベースをもとに型推論される結果に基づい
て、都度の解析モードをその該当する解析モードへと遷
移するモード遷移手段。をそれぞれ設けるようにする。
【0020】
【作用】上記のように、各GUI部品に対して、その構
造や存在条件、或いは「横に置いたり、重ね合わせたり
することのできる部品の種類」などを定めた制約条件を
型として定義するとともに、編集動作解析手段に対し
て、各種イベントが、各々該当するGUI部品について
の上記制約条件を含む編集条件を満たすか否かを型推論
するための推論ベース( a)を設け、この推論ベースによ
る型推論の結果に応じて、都度のイベントに対応するユ
ーザ入力を有効とするか、または無効とするかを判断す
るようにすることで、少なくともユーザの誤操作に基づ
くようなGUI編集データのバグ等は回避され、GUI
データとしての品質も好適に保たれるようになる。
【0021】また特に、このようなイベント(ユーザ入
力)の適否判断を、型推論によって実現するようにした
ことで、各種GUI部品の定義や上記制約条件の設定、
更にはそのためのプログラミング等が極めて容易になる
とともに、推論ベース( a)自体も、予め定義される変数
や関数、及びこれらを用いた式によって簡潔に、しかも
視認性よく記述されるため、編集動作解析手段そのもの
の設計が非常に容易で効率のよいものとなる。また同様
の理由により、後に仕様を変更したり追加したりする場
合の対処も極めて容易である。
【0022】また上記階層管理手段( c)によるように、
編集データ管理手段において編集、管理されるGUIデ
ータを、GUI部品各々の持つ属性に従って、その種類
別、及び前記型の集合に分類し、これらを木構造のデー
タとして管理するようにすることで、そのGUIデータ
としての汎用性が著しく高められるようになる。すなわ
ち、該GUIデータのこうした構造さえ判別できるGU
I開発環境であれば、如何なる環境のものであっても、
こうしたGUIデータ或いはGUI部品を流用すること
が可能となる。
【0023】なおこの場合、上記管理する木構造のデー
タを更にS式(Symbolic expression :シンボリック・
エクスプレッションの略。人工知能用言語である「LI
SP(リスプ)」において多く用いられる)の形式で保
存するようにすれば、上記GUIデータやGUI部品
の、より一層汎用的な利用が可能となる。
【0024】また、上記識別子設定手段( d)及び部品デ
ータベース管理手段( e)によるように、編集データ管理
手段において、その取り込まれるGUI部品に対し識別
子を設定するようにし、ブラウザ手段において、この編
集データ管理手段との情報授受に基づき、その取り込ま
れるGUIデータから、上記識別子によって識別される
部品、及びその属性並びに前記型を採取してこれらをそ
の管理する部品データベースに追加するようにすること
で、ユーザがいちいち当該部品に関する部品登録のため
の記述を行わなくとも、半自動的に、すなわち部品登録
のためのイベントを前記編集動作解析手段に解釈させる
だけの操作を通じて、所望とされる部品のデータベース
登録が実現されるようになる。
【0025】また、編集動作解析手段に対して、上記の
ように「モード」といった概念を適用し、これが上記モ
ード遷移用の推論ベース( f)を通じた型推論のもとに、
イベントが発生される都度、その内容に応じて遷移(変
換)されるようにすることで、同一のイベント、すなわ
ち同一のユーザ入力内容に対する処理内容を多岐に定義
することができるようになる。すなわちこのことは、G
UI編集装置としてのより多くの機能が、ユーザによる
最小限の入力操作を通じて、円滑に実現されるようにな
ることを意味する。
【0026】なお、このモード自動遷移にかかる動作
も、型推論によって実現されるようにしたことで、モー
ド変換用のテーブル、並びにそれを参照して実行するた
めの手続、等々といったものを事細かにプログラムする
必要がなくなり、その開発効率は大幅に向上されるよう
になる。すなわちこの場合も、上記の推論ベース( f)に
定義される各種モード変換態様等は、型として予め定義
される変数や関数、及びこれらを用いた式によって簡
潔、且つ視認性よく記述されるため、こうした機能を実
現する編集動作解析手段自身の設計を、非常に容易で効
率のよいものとすることができるようになる。
【0027】
【実施例】図1に、この発明にかかるGUI(グラフィ
カル・ユーザインターフェース)の編集装置の一実施例
を示す。
【0028】この実施例では便宜上、GUIの部品とし
て、汎用OSであるUNIX上でのGUI構築環境の1
つとして知られているXウィンドウシステム・バージョ
ン11の、Athena Widget(アテナ・ウィ
ジェット)を使用する場合について説明する。
【0029】すなわち図1において、GUI1は、表示
装置DDの制御プログラムとして、表示装置DD上にA
thena Widgetで定義されたGUI編集用の
画面を視覚的に表示制御するXウィンドウシステムから
なる。そしてこのGUI1では、これら表示情報に対す
るキーボードやマウスなどの図示しない入力装置を通じ
てユーザ入力があった場合、これをイベントとして受け
取って、そのイベント内容を、編集装置本体である処理
装置2にメッセージとして通知する。実施例の編集装置
では、以下に説明する全ての処理が、このGUI1(X
ウィンドウシステム)との間でのメッセージ通信を通じ
て実行される。図2に、このGUI1による表示装置D
Dを通じての表示制御画面の一例を示す。
【0030】因みにこの図2に示す画面において、11
は、GUI部品(widget)表示用のウィンドウで
あるブラウザエリア、12は、GUIデータの編集(設
計)用のウィンドウである編集用エリア、13a、13
b及び13cは、各々「edit(エディット)」メニ
ュー、「file(ファイル)」メニュー、及び「ma
in(メイン)」メニューをプルダウン表示させるため
のメニューボタン、14は、上記ブラウザエリア11に
所望のGUI部品を表示させるためのブラウジングボタ
ン、をそれぞれ示している。後に詳述するGUIデータ
の編集(設計)操作、或いは新たに定義するGUI部品
の登録操作等は、全てこのGUI画面を通じて実行され
るようになる。
【0031】また、図1において、上記GUI1を通じ
てユーザ入力によるイベントが通知される処理装置2
は、大きくは、該通知されるイベントを都度の編集状態
に応じて解析する部分である編集動作解析部21と、上
記ブラウザエリア11を通じて操作されるGUI部品の
管理を主に行う部分であるブラウザ22と、上記編集用
エリア12を通じて設計或いは編集されるGUIデータ
を管理する部分である編集データ管理部23とを具えて
構成される。この処理装置2では上述のように、該編集
装置の本体として、これら各部の協働した動作を通じ
て、ユーザによるGUI編集作業を裏面から支えるよう
になる。
【0032】なお、この編集装置では、GUIを構成す
る各部品をオブジェクトとして捉えている。このため、
これら部品をクラスという概念で分類することができる
ようになる。ここでいうクラスとは、同じ特徴を持つオ
ブジェクトの仕様を定義したものである。
【0033】またここでは、オブジェクト指向における
継承(inheritance )の考えを取り入れている。これに
より、上記クラスの定義を行うにも、その上位クラスと
の差分のみを記述することで足りるようになる。
【0034】以下に、処理装置2を構成する上記各部の
機能について詳述する。
【0035】まず、編集データ管理部23は、上記のよ
うに、編集用エリア12(図2)に呼び出された各GU
I部品の編集内容をGUIデータとして管理する部分で
ある。この編集データ管理部23では、図1に併記する
ように、各GUI部品を上述したオブジェクトとして捉
えることにより、同部品をそれら各々の持つ属性に従っ
てカテゴリ及び後述する型の集合に分類し、これらを木
構造を用いて管理する。因みに、ここでのカテゴリと
は、上記クラスに対応し、下位のカテゴリの定義には、
その上位のカテゴリとの差分のみが用いられる。
【0036】またこの編集データ管理部23は、編集用
エリア12(図2)に呼び出された部品に対してその各
々に個別の識別子を設定する機能を併せ持つ。これら設
定された識別子の値は、その都度、編集動作解析部21
に返される。
【0037】また、ブラウザ22は、上記のように、ブ
ラウザエリア11(図2)を通じて操作される各GUI
部品を管理する部分である。このブラウザ22において
も、これらGUI部品の管理には上記同様のオブジェク
ト指向が採用されている。
【0038】また、このブラウザ22は更に、ユーザに
より新たなGUI部品として登録すべく部品が指定され
た場合、該指定された部品とその属性、及び型を、上記
編集データ管理部23で設定された識別子に基づき、自
動的にその部品データベースに追加する機能をも併せ有
する。
【0039】なお、このブラウザ22にて管理される各
GUI部品の中には、同図1に併記するように、それら
部品の配置態様や取扱いに関しての「制約条件」が、後
述する型によって予め記述定義されたものもあり、これ
ら部品を用いた編集操作に際しては、対象となる部品間
における該「制約条件」が満たされているか否かが、編
集動作解析部21によってその都度判断される。この
「制約条件」としては、「置くことのできる部品の種
類」などが、型として所定に定義された変数や該変数を
用いた式によって記述される。例えば、ボタンとして定
義された部品の上に、他のボタン、或いはウィンドウと
して定義された部品が配置されてはならない。もっと
も、これらGUI部品には「型」のみを定義し、その
「制約条件」については、次の編集動作解析部21内に
定義するようにしてもよい。「制約条件」の利用態様に
ついては後に詳述する。
【0040】編集動作解析部21は、上記のように、G
UI1を通じて通知されるイベントを都度の編集状態に
応じて解析する部分であり、各異なる編集内容に対応し
た複数の解析モードを有して、これら解析モードの別
に、GUI1を通じて通知されるイベントに対応するア
クションを決定するとともに、そのアクション後の編集
状態を解析する上で望ましい解析モードに自動遷移す
る。そして、この編集動作解析部21では特に、これら
解析モードを「型」として有するとともに、上記通知さ
れるイベントに応じたアクション並びに各解析モードの
遷移条件がこの「型」をもとにした推論規則として記述
定義された型推論によるモード変換推論ベース15を具
え、イベントを受け取る都度、この推論ベース15をも
とに型推論される結果に基づいて当該解析モードでの対
応する処理態様を決定し、更には同推論ベース15をも
とに型推論される結果に基づいて都度の解析モードをそ
の該当する解析モードへと遷移する。
【0041】ここで、この実施例において定義される
「型」、並びに上記型推論によるモード変換推論ベース
15に記述定義される型推論図について詳述する。因み
にこの実施例においては、GUI編集の正しさとその作
成過程の検証に、以下に述べる型推論を用いるようにし
ている。
【0042】さてこの実施例では、上記解析モードとし
て次の14のモードが編集動作解析部21に設定されて
いるものとする。
【0043】◆NOMAL(ノーマル)モード:コマン
ド入力待ちの状態を示すモード。 ◆SSELECT(シングル・セレクト)モード:1つ
の部品が選択されている状態を示すモード。 ◆MSELECT(マルチ・セレクト)モード:複数の
部品が選択されている状態を示すモード。 ◆COPY(コピー)モード:コピー先の入力待ちの状
態を示すモード。 ◆MOVE(ムーブ)モード:移動先の入力待ちの状態
を示すモード。 ◆DIRECTMOVE(ダイレクト・ムーブ)モー
ド:移動先の入力待ちの状態を示すモード(メニューを
使用せず)。 ◆CONSTRAINTSMOVE(コンストレインツ
・ムーブ)モード:部品が水平或いは垂直方向にのみ移
動できる状態を示すモード。 ◆RESIZE(リサイズ)モード:部品の大きさが指
定されるのを待っている状態を示すモード。 ◆CREATE(クリエイト)モード:ブラウザエリア
部品の編集エリアへの追加入力待ち状態を示すモード。 ◆PROPSHEET(プロパティシート)モード:属
性値変更用ウィンドウが開いている状態を示すモード。 ◆TEXTINPUT(テキストインプット)モード:
テキスト入力中の状態を示すモード。 ◆CONFIRM(コンファメイション)モード:確認
入力待ちの状態を示すモード。 ◆CONFIRMEND(コンファメイション・エン
ド)モード:エディタ自身を終了してよいかの問い合わ
せ状態を示すモード。 ◆END(エンド)モード:編集終了状態を示すモー
ド。
【0044】そして、これら各解析モードの「型」とし
てここでは、次の各左欄に列記する記号(変数)を定義
するものとする。
【0045】[モードの型] C モード Cn NORMALモード Css SSELECTモード Cms MSELCTモード Ccp COPYモード Cmv MOVEモード Cdm DIRECTMOVEモード Ccm CONSTRAINTMOVEモード Crs RESIZEモード Ccr CREATEモード Cps PROPSHEETモード Cti TEXTINPUTモード Ccf CONFIRMモード Ccfe CONFIRMENDモード Cend ENDモード また同様に、前記編集メニュー、アクション(動作)、
マウスボタン、イベント、確認ウィンドウ、テキスト入
力ウィンドウ、プロパティシート、及びキーボードの各
要素についても、その「型」として、各々次に列記する
記号(変数)及び式を定義する。
【0046】[メニューの型] M メニュー Edit edit(編集)メニュー Edit={create,move,copy,delete} create:クリエイト(作成) move:ムーブ(移動) copy:コピー(複写) delete:デリート(削除) File file(ファイル)メニュー File={input} input:インプット(テキスト入力) Main main(メイン)メニュー Main={end,save} end:エンド(終了) save:セーブ(保存) [アクション(動作)の型] Act アクション(動作) Act≡{click,push,drag,release,select,dclick} click:クリック(マウスボタンを押してすぐに離す) push:プッシュ(マウスボタンを押す) drag:ドラッグ(マウスボタンを押した状態で引きず
る) release:リリース(マウスボタンを離す) select:セレクト(マウスカーソルを合わせる) dclick:ダブルクリック(マウスクリックを瞬時に2度
行う) [マウスボタンの型] Bt マウスボタン Bt={l,r} l:左ボタン r:右ボタン [イベントの型] Event イベント [ウィンドウの型] CFW 確認ウィンドウ TIW テキスト入力ウィンドウ [プロパティーシートの型] PS プロパティーシート [キーボードの型] Key キーボード 一方、上記GUI部品や編集画面に関しても、その
「型」を、それぞれ以下のように定義する。
【0047】 [GUI部品の型] E,E1,...,Ek,... GUI部品 Π ≡ |E|E∠Π 何もないか、1個の部品であるか、 複数の部品の重ね合わせであるか Σ ≡E|E∠Σ 最低1個の部品が存在 E List ≡ [E1,...,Em] 部品のリスト Π1∠Π2 Π2 上にΠ1 が存在 Γ ≡ |x:Π|x:Π,Γ 部品の並び(Γなる部品群) Δ ≡ |x:Π|x:Π,Δ 部品の並び(Δなる部品群) FV(Γ) ≡ {x}∪Π,FV(Γ-{x:Π}) 自由変数の定義 ただし、Γ ≡ x:Π,Γ1 FV(φ) ≡ {} 空集合の定義 [画面の型] EA 編集エリア BA ブラウザエリア A 全画面 以上の「型」の定義に基づいて、各解析モードにおける
各種イベントに対して編集動作解析部21が決定すべき
アクション、並びにモード遷移態様を型推論図としてま
とめたものが図3〜図10であり、この実施例の装置に
おいては、これら型推論図として図3〜図10に定義さ
れる内容が、上記の型推論によるモード変換推論ベース
15に予め記述されることとなる。
【0048】以下に、上記各モードにおけるユーザアク
ション(イベント)とこれら型推論図との対応について
列記する。
【0049】まず、図3に示される[N−1]〜[N−
6]は、現在のモードが上記NOMAL(ノーマル)モ
ードであるときの ・編集エリアの部品上でマウスの左ボタンがクリックされた [N−1] ・ブラウザの部品上でマウスの左ボタンがドラッグされた [N−2] ・editメニューから「Create(作成)」が選択された[N−3] ・プルダウンメニューから「終了」が選択された [N−4] ・プルダウンメニューから「ファイルセーブ」が選択された [N−5] ・fileメニューの項目が選択された [N−6] といったユーザアクションにそれぞれ対応して、上記編
集動作解析部21が決定すべきアクション、並びにモー
ド遷移態様を示す型推論図である。
【0050】また、図4〜図6に示される[SS−1]
〜[SS−14]は、現在のモードが上記SSELEC
T(シングル・セレクト)モードであるときの ・編集エリアの部品上でマウスの右ボタンがクリックされた [SS−1] ・バックグランドでマウスの左ボタンがクリックされた [SS−2] ・編集エリアの部品上でマウスの左ボタンが押された [SS−3] ・editメニューから「Move(移動)」が選択された [SS−4] ・編集エリアの部品上でマウス左ボタンがダブルクリックされた [SS−5] ・editメニューから「Property(プロパティシート)」が選択され た [SS−6] ・編集エリアの部品の「grip(端)」上でマウスの左ボタンが押された [SS−7] ・プルダウンメニューから「終了」が選択された [SS−8] ・プルダウンメニューから「ファイルセーブ」が選択された [SS−9] ・editメニューから「Copy(複写)」が選択された [SS−10] ・fileメニューの項目が選択された [SS−11] ・editメニューから「Delete(削除)」が選択された [SS−12] ・ブラウザの部品上でマウスの左ボタンが押下(ドラッグ)された [SS−13] ・editメニューから「Create(作成)」が選択された [SS−14] といったユーザアクションにそれぞれ対応して、上記編
集動作解析部21が決定すべきアクション、並びにモー
ド遷移態様を示す型推論図である。
【0051】また、図7に示される[MS−1]〜[M
S−5]は、現在のモードが上記MSELECT(マル
チ・セレクト)モードであるときの ・バックグランドでマウスの左ボタンがクリックされた [MS−1] ・プルダウンメニューから「終了」が選択された [MS−2] ・プルダウンメニューから「ファイルセーブ」が選択された [MS−3] ・fileメニューの項目が選択された [MS−4] ・editメニューから「Delete(削除)」が選択された [MS−5] といったユーザアクションにそれぞれ対応して、上記編
集動作解析部21が決定すべきアクション、並びにモー
ド遷移態様を示す型推論図である。
【0052】また、図8に示される[CP]は、現在の
モードが上記COPY(コピー)モードであるときの ・編集エリアでマウスの左ボタンがクリックされた [CP] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0053】また、同じく図8に示される[MV]は、
現在のモードが上記MOVE(ムーブ)モードであると
きの ・マウスの左ボタンで移動先がクリックされた [MV] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0054】同じく図8に示される[DM−1]及び
[DM−2]は、現在のモードが上記DIRECTMO
VE(ダイレクト・ムーブ)モードであるときの ・マウスの左ボタンを離す、またはマウスカーソルをウィンドウの外へ出す [DM−1] ・シフトキーが押された [DM−2] といったユーザアクションにそれぞれ対応して、上記編
集動作解析部21が決定すべきアクション、並びにモー
ド遷移態様を示す型推論図である。
【0055】また、同図8に示される[CM]は、現在
のモードが上記CONSTRAINTSMOVE(コン
ストレインツ・ムーブ)モードであるときの ・シフトキーが離された [CM] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0056】また、図9に示される[RS]は、現在の
モードが上記RESIZE(リサイズ)モードであると
きの ・マウスの左ボタンが離された [RS] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0057】同じく図9に示される[CR]は、現在の
モードが上記CREATE(クリエイト)モードである
ときの ・編集エリア上でマウスの左ボタンが離された [CR] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0058】また、同図9に示される[PS]は、現在
のモードが上記PROPSHEET(プロパティシー
ト)モードであるときの ・プロパティシートが閉じられた [PS] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0059】また、同図9に示される[TI]は、現在
のモードが上記TEXTINPUT(テキストインプッ
ト)モードであるときの ・テキスト入力ウィンドウが閉じられた [TI] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0060】また、図10に示される[CF]は、現在
のモードが上記CONFIRM(コンファメイション)
モードであるときの ・コンファメーションウィンドウが閉じられた [CF] といったユーザアクションに対応して、上記編集動作解
析部21が決定すべきアクション、並びにモード遷移態
様を示す型推論図である。
【0061】そして、同じく図10に示される[CFE
−1]及び[CFE−2]は、現在のモードが上記CO
NFIRMEND(コンファメイション・エンド)モー
ドであるときの ・「Yes」と答えられた [CFE−1] ・「No」と答えられた [CFE−2] といったユーザアクションにそれぞれ対応して、上記編
集動作解析部21が決定すべきアクション、並びにモー
ド遷移態様を示す型推論図である。
【0062】ところで、これら型推論図においては、先
の「型」の定義に加えて更に、「s」はモード実態を示
す状態データとして定義され、「e」は部品として定義
され、「ev」はイベントを作り出す関数として定義さ
れ、「μ」は状態(モード)推移を表す関数として定義
されている。したがって、例えば図3に示される型推論
図[N−1]については、 ( A)状態データsは、CnすなわちNORMALモード
という型を持つ。これは現在の解析モードがNORMA
Lモードであることを示している。 ( B)部品eは、Π∠EAという型を持つ。すなわち、G
UI部品であるeは、Πが示す構造で編集エリア(E
A)上にある。 ( C)clickは、Actという型を持つ。すなわち、
「クリック」という動作が起こっている。 ( D)l(エル)はBtという型を持つ。すなわち、「ク
リック」されているのはマウスの左ボタンである。 ( E)evはE→Act→Bt→Eventという関数の
型を持つ。すなわちこの関数において、第1パラメータ
がGUI部品、第2パラメータが動作、第3パラメータ
がマウスボタンの状態であり、結果としてイベントを返
す関数が与えられている。 ( F)μはC→Event→Cという関数の型を持つ。す
なわちこの関数において、第1パラメータが状態(モー
ド)、第2パラメータが動作であり、結果として状態
(モード)を返す関数が与えられている。 ( G)以上の条件のもとで、μ(s,ev(e,clic
k,l))はCssという型を持ち、同時にeはΠ∠E
Aという型を持つ。すなわち、evでイベントの解釈を
行い、μで状態(モード)の推移を計算した結果、解析
モードがSSELECTモードに推移し、且つGUI部
品には何ら変更がない。 といった態様で型推論が行われることとなる。また、こ
うした型推論を実行するための推論アルゴリズムが、上
記編集動作解析部21に対して備えられることとなる。
【0063】なお、上記都度のモードとユーザアクショ
ンの関係、更にはその時々に編集動作解析部21におい
て実行される型推論とその推論結果に基づく遷移先モー
ドとの関係については、図11及び図12にテーブルと
して一覧する。
【0064】こうして編集動作解析部21では、ユーザ
によるアクションがイベントとしてGUI1から通知さ
れる都度、 ( 1)その時点のモードに応じて、当該イベントの解釈を
行う。
【0065】( 2)解釈されるイベント内容に基づいて、
当該モードにおいて予め定義されているアクションを起
動する。
【0066】( 3)上記態様での型推論に基づいて、当該
イベント内容に対応したモードへ遷移する。
【0067】といった動作を繰り返し実行する。例え
ば、上記イベントが「マウスの左ボタンが押された状
態」といったイベントであった場合、この編集動作解析
部21は、「NORMAL」モードにおいては「選べ」
といったアクションを起動するように定義され、「MO
VE」モードにおいては「ここに置け」といったアクシ
ョンを起動するように定義される。また更に、上記「N
ORMAL」モードにおける当該イベントが編集用エリ
ア12(図2)にある部品上でのクリックにつながるも
のであれば、同編集動作解析部21はその後「SSEL
ECT」モードに遷移され、同じく「NORMAL」モ
ードにおける当該イベントがブラウザエリア11(図
2)にある部品上でのドラッグにつながるものであれ
ば、同編集動作解析部21はその後「CREATE」モ
ードに遷移される。他方の「MOVE」モードにおいて
は、当該イベントが移動先でのクリックにつながるもの
であれば、同編集動作解析部21はその後「SSELE
CT」モードに遷移される。
【0068】また、この編集動作解析部21は、上述の
ように、ユーザによるGUI部品の編集操作の都度、そ
の発生されるイベントがこれら各GUI部品に定義され
ている「制約条件」が満たされるイベントであるか否か
を監視する機能も併せ持つものであり、実際には、上記
モードとイベントとに応じて定義されているアクション
も、都度のイベントがその対象とするGUI部品の制約
条件を満たすときにのみその起動を行い、同GUI部品
の制約条件を満たし得ないときには、適宜のエラー処理
(例えばGUI1を通じて表示装置DDにエラーメッセ
ージを表示させる等の処理)を行って、当該イベントに
対応するユーザ入力を拒否するよう動作する。
【0069】該編集動作解析部21に設けられるもう1
つの推論ベースである型推論による部品の制約について
の推論ベース16は、このような監視を実行するための
推論ベースであり、制約条件として、GUI部品同士の
重ね合わせの可否のみに注目した場合、そこに定義され
る型推論図は、例えば図13及び図14に示される態様
のものとなる。
【0070】因みに、これら図13及び図14に示され
る型推論図において、[E−1]は、前記ブラウザエリ
ア11内に存在するGUI部品の元々の「型」を定義し
たものであり、例えばここでは、「x1というGUI部
品がΠ1という型をもって存在し、…xkというGUI
部品がΠkという型をもって存在する」ことを示し、ま
た[E−2]は、これら定義された部品の型に対する制
約条件(ここでの例では重ね合わせの可否)であって、
例えば「Π1という型はΠ2という型の上に重ね合わせ
られることが許され、…Πmという型はΠnという型と
いう型の上に重ね合わせられることが許される」ことを
示している。
【0071】また、同図13及び図14に示される型推
論図[E−3]〜[E−12]についても、先に示した
[GUI部品の型]の定義に基づいて、その各種イベン
トに対する制約が型推論されるものであり、そのうちの
例えば型推論図[E−7]については、 ( A)予め用意されている部品群Γから、現在Δ1で示さ
れるGUI部品群、部品x1とΔ2で示される部品群、
及び部品x2とΔ3で示される部品群が作られている。 ( B)部品x1の構造は型Π1が、また部品x2の構造は
型Π2が、それぞれ示している。 ( C)また、部品群Γのもとで、型Π2が示す構造の上に
型Π1が示す構造を重ね合わせることができる。 ( D)以上の条件のもとで、実際に部品x1が部品x2の
上に重なった部品x1∠x2が作られ、その構造を示す
型がΠ1∠Π2である。 といった態様で型推論される。そして編集動作解析部2
1では、これらGUI部品の重ね合わせに関する操作に
おいて、こうした[E−7]の条件、或いは他の[E−
3]〜[E−6]及び[E−8]〜[E−12]の条件
が満たされる場合には、当該ユーザアクション(イベン
ト)をよしとて、その編集内容を前記編集データ管理部
23に伝え、それ以外の場合、すなわち該型推論による
部品の制約についての推論ベース16に定義されている
以外の編集条件でGUI部品の重ね合わせ操作が行われ
たような場合には、その操作を無効とするとともに、上
記のエラー処理を通じて、ユーザにその旨警告する。
【0072】なおここでは、「制約条件」として、「重
ね合わせの可否」についてのみ言及したが、それ以外の
例えば「横に配置することの可否」などについても、図
13及び図14に準じたかたちで、同様に定義すること
ができる。
【0073】このように、イベントに応じた解析モード
の遷移やイベントの適否判断を、型推論によって実現す
ることで、モード遷移条件の定義をはじめ、各種GUI
部品の定義や上記制約条件の設定、更にはそのためのプ
ログラミング等を極めて容易なものとすることができる
とともに、その信頼性をも大きく向上することができる
ようになる。また、上記推論ベース15及び16自体
も、予め定義される変数や関数、及びこれらを用いた式
によって簡潔に、しかも視認性よく記述されるため、上
記編集動作解析部21の設計そのものを非常に容易で効
率のよいものとすることができるようにもなる。またこ
のため、後に仕様を変更したり追加したりする場合の対
処もいたって容易である。
【0074】以上、編集動作解析部21、ブラウザ22
及び編集データ管理部23によって構成される処理装置
2を通じて、該実施例編集装置としての実質的なGUI
データの編集処理が進められることとなる。
【0075】また、図1に示すこの編集装置において、
記憶装置3は、上記処理装置2のブラウザ22を通じて
管理されるGUI部品、及び同処理装置2の編集データ
管理部23を通じて管理されるGUIデータを格納保持
するための装置である。
【0076】次に、具体的な編集操作に基づく該実施例
編集装置全体としての動作について説明する。
【0077】はじめに、編集中のGUIデータに部品を
追加することを例に、その際の編集操作に対応する該編
集装置としての動作を説明する。すなわちこの場合、ユ
ーザは、先の図2に例示したGUIの編集画面を通じ
て、そのブラウザエリア11から所望の部品を選択し、
これを編集用エリア12内の所望位置に配置する(例え
ばドラッグする)といった操作を行うことになる。
【0078】さていま、編集作業の過程において、上記
編集動作解析部21のモードが例えば「SSELECT
(シングルセレクト)」モードにあり(例えば「NOR
MAL(ノーマル)」モードからは、編集用エリア12
の部品上でマウスの左ボタンがクリックされることで、
この「SSELECT」モードに遷移される:図3の
[N−1]及び図11参照)、この状態でブラウザエリ
ア11に表示されているGUI部品がドラッグ(正確に
は左ボタンが押下)されたとすると、編集動作解析部2
1では、その旨解析しつつ上述した型推論を実行し、図
15に示すアルゴリズムに基づいて以下に列記する態様
での処理を開始することとなる。
【0079】すなわち編集動作解析部21は、前記GU
I1からのイベント通知によってこのブラウザエリア1
1での部品の指定、並びにそのドラッグ(正確にはマウ
ス左ボタンの押下)を認知すると(図15ステップS1
1)、 ( 1)前記推論ベース15を用いた型推論に基づき、モー
ドを「CREATE(クリエイト)」に遷移した状態で
(図15ステップS12)、そのドラッグ先、すなわち
編集用エリア12での、押下されたマウスボタンのリリ
ースを待つ。このリリースされる位置が、当該部品の配
置指定位置となる。なお、これら「CREATE」モー
ドへの遷移、及び選択部品の編集用エリア12への配置
指定は、図2に例示した編集画面の「edit」ボタン
13aを通じたメニュー操作によっても、同様に行うこ
とができる。因みにこの場合、該「edit」ボタン1
3aをマウスクリックすることで「部品の追加」といっ
た項目を含むプルダウンメニューが開かれるものとし、
該編集動作解析部21では、その後ユーザによってこの
「部品の追加」の項目が選ばれることで「CREAT
E」モードへの遷移を行い、更にユーザによって編集用
エリア12上の適宜位置がマウスクリックされることで
当該部品の配置位置の指定が行われた旨判断する(図6
の[SS−13]及び図11参照)。
【0080】( 2)こうした手順(例えばマウスボタンの
リリース)を通じて部品の配置位置が指定されると(図
15ステップS13)、この指定された位置が有効か否
かの判定を行う(図15ステップS14)。例えば、そ
の位置が編集用エリア12の外であったり、或いはこの
追加される部品が「ボタン」のようなものであった場合
に、その指定位置が先に配置定義されているウィンドウ
の外であったり、いわゆる無効な位置指定がなされたと
判断される場合には、その旨のエラーメッセージをGU
I1を通じて表示装置DD上に表示するなどのエラー処
理を行って(図15ステップS15)、当該イベントを
無効とする。
【0081】( 3)上記指定位置の判定において有効と判
断される場合には次いで、先に配置されている部品の属
性から前記「制約条件」を取り出し、この制約条件が満
たされるか否かの判定を行う(図15ステップS1
6)。前述のように、例えばボタンとして定義された部
品の上には、他のボタン、或いはウィンドウとして定義
された部品が配置されてはならない。もしもこの「制約
条件」が満たされなかった場合には、上記同様、エラー
処理を行って(図15ステップS17)、当該イベント
を無効とする。
【0082】( 4)これらの判定において何れも有効と判
断される場合には、当該GUI部品の情報を編集データ
に追加するために、編集データ管理部23に対して追加
指令(「Add(アッド)命令」)を送出する(図15
ステップS18)。この追加指令を受けた編集データ管
理部23では、当該GUI部品の情報をその管理してい
る編集データに追加するとともに、同GUI部品に対し
て新たに個有の識別子を設定し、この設定した識別子を
編集動作解析部21に返す処理を行う。なお、この編集
データ管理部23が、該追加したGUI部品について
も、これをその属性に従ってカテゴリ及び型の集合に分
類し、木構造を用いて管理するようになることは前述し
た通りである。
【0083】( 5)最後に、上記マウスボタンの、編集用
エリア12上でのリリースを通じて、「SSELEC
T」モードに遷移し(図9の[CR]及び図12参
照)、次のイベント発生に備えて待機する。
【0084】といった一連の処理を実行する。
【0085】編集動作解析部21によるこうした処理を
通じて、また更には、編集データ管理部23の上述した
部品情報追加処理を通じて、ユーザによって追加指定さ
れたGUI部品が安全かつ確実に、しかも汎用性を持っ
て、編集中のGUIデータに取り込まれるようになる。
なお、図4に示した型推論[SS−2]からも明らかな
ように、例えばその後、編集画面のバックグランド上で
マウスの左ボタンがクリックされれば、該編集装置(正
確には編集動作解析部21)は、初期状態として定義さ
れている「NORMAL」モードに戻ることとなる。
【0086】次に、編集用エリア12にあるGUI部品
を、前記ブラウザ22の部品データベースに登録するこ
とを例に、その際の操作に対応する該編集装置としての
動作を説明する。この場合ユーザは、先の図2に例示し
たGUIの編集画面を通じて、その編集用エリア12に
ある登録所望GUI部品を選択し、これをブラウザエリ
ア11内にドラッグするといった操作を行うことにな
る。
【0087】さていま、編集作業の過程において、上記
同様編集動作解析部21のモードが例えば「SSELE
CT(シングルセレクト)」モードにあり、この状態で
編集用エリア12に表示されているGUI部品がドラッ
グ(正確には左ボタンが押下)されたとすると、編集動
作解析部21ではその旨解析し、図16に示すアルゴリ
ズムに基づき以下に列記する態様での処理を開始するこ
ととなる。
【0088】すなわち編集動作解析部21は、前記GU
I1からのイベント通知によってこの編集用エリア12
での部品の指定、並びにそのドラッグ(正確にはマウス
左ボタンの押下)を認知すると(図16ステップS2
1)、 ( 1)前記推論ベース15を用いた型推論に基づき、モー
ドを「DIRECTMOVE(ダイレクトムーブ)」に
遷移した状態で(図16ステップS22)、そのドラッ
グ先、すなわちブラウザエリア11での、押下されたマ
ウスボタンのリリースを待つ(図6の[SS−13]及
び図11参照)。
【0089】( 2)マウスボタンのリリースを通じて部品
の登録が指定されると(図16ステップS23)、この
登録位置が有効か否かの判定を行う(図16ステップS
24)。例えばその位置がブラウザエリア11の外であ
ったりした場合、すなわち無効な位置の指定がなされた
場合には、その旨のエラーメッセージをGUI1を通じ
て表示装置DD上に表示するなどのエラー処理を行って
(図16ステップS25)、当該イベントを拒否する。
【0090】( 3)上記登録位置の判定において有効と判
断される場合には次いで、置かれている部品の属性から
前記「制約条件」を取り出し、この制約条件が満たされ
るか否かの判定を行う(図16ステップS26)。ただ
し、ブラウザ22ではいかなる部品も受け入れる。この
ため通常は、この過程でエラー処理(図16ステップS
27)が行われることはない。
【0091】( 4)これらの判定において何れも有効と判
断される場合には、当該GUI部品の情報をブラウザ2
2の部品データベースに追加登録するために、該ブラウ
ザ22に対し、登録指令と当該GUI部品に対して前記
編集データ管理部23が設定付加した識別子とを併せ渡
す(図16ステップS28)。これを受けたブラウザ2
2では、編集動作解析部21を介し、編集データ管理部
23との間で次に列記する処理を実行して、その指定さ
れたGUI部品の情報を自ら管理する部品データベース
に追加登録する(図16ステップS29)。 (4- 1)まず編集データ管理部23に上記受け取った識別
子を渡して関数を呼び出し、当該部品の属性とその属性
値とを返し値として受け取る。 (4 -2)この受け取った部品の属性とその属性値を、上記
ユーザによるドラッグ操作を通じて登録指示されたGU
I部品の情報として、自らのデータベースに追加する。
【0092】( 5)編集動作解析部21では、上記マウス
ボタンの、ブラウザエリア11上でのリリースを通じ
て、「SSELECT」モードに遷移し(図8の[DM
−1]及び図12参照)、次のイベント発生に備えて待
機する。
【0093】といった一連の処理を実行する。
【0094】編集動作解析部21によるこうした処理を
通じて、また更には、ブラウザ22の上述した部品登録
処理を通じて、ユーザによって登録指定されたGUI部
品が簡単かつ確実に、しかも汎用性を持って、GUI部
品データベースに追加登録されるようになる。この場合
もその後、編集画面のバックグランド上でマウスが左ク
リックされるようなことがあれば、該編集装置(正確に
は編集動作解析部21)は、初期状態として定義されて
いる「NORMAL」モードに戻る。
【0095】最後に、この実施例編集装置によって扱わ
れるGUI部品のデータ構造について、その記憶装置3
上での管理構造、及びファイル上での管理構造を、それ
ぞれ図17及び図18を併せ参照して説明する。
【0096】先にも述べたように、この編集装置によっ
て扱われるGUI部品のデータは、属性とその属性値と
によって表現されている。そして属性は、その性質に応
じてカテゴリ毎にまとめられ、木構造を用いて記述され
ている。この場合、カテゴリは構造体「Categor
y」で、属性名は構造体「Prop」で、そして属性値
は構造体「Value」で、それぞれ表記することがで
きる。以下に、C言語によって表記した場合のこれら各
レコードを示す。
【0097】struct Category { /*構造体の指定*/ struct Class *next, /*次のカテゴリレコードへのポインタ*/ char *name, /*属性のカテゴリの名前*/ struct Props *prop /*カテゴリに属する属性へのポインタ*/ } struct Prop { /*構造体の指定*/ struct Props *next, /*次の属性レコードへのポインタ*/ char *name, /*属性の名前*/ struct Value *value /*属性の値へのポインタ*/ } struct Value { /*構造体の指定*/ char* sv /*文字列型の値*/ } ここで、こうした部品が、その属性に基づき、どのよう
に分類されるかを、一例を挙げて説明する。
【0098】例えば、先の図2においてその編集用エリ
ア12上に例示する部品Wの場合、その位置を示す属性
として「(x,y)」の属性を持つとともに、同部品W
の上に表示される文字列「label」の属性を持つ。
因みに、これら「x」、「y」及び「label」の型
は全て「char(キャラクタ型)」ポインタであり、
値はそれぞれ「200」、「300」及び「"LABE
L"」であるとする。
【0099】ここに、属性の種類として、位置の属性と
部品上に表示される文字列の属性とが定義されたことに
なる。
【0100】ところで、これら属性の内容を考察して明
らかなように、上記位置の属性は全ての部品が持つもの
の、上記部品上に表示される文字列の属性は全ての部品
が持つとは限らない。すなわち、上記の例のような「コ
マンドボタン」の場合には、こうした文字列の属性を持
つが、「スクロールバー」のような部品の場合には、こ
うした文字列の属性は持たない。
【0101】以上により、上記位置の属性は、全ての部
品に通用するメジャーなカテゴリとして、カテゴリ「m
ajorProp(メジャープロパティ)」に分類する
ことができ、他方の文字列の属性は、全ての部品には通
用しないマイナーなカテゴリとして、カテゴリ「min
arProp(マイナープロパティ)」に分類すること
ができることが判る。
【0102】さて、こうしてカテゴリ毎に分類されるG
UI部品のデータが前記記憶装置3上に保存される場
合、その情報は、上記カテゴリレコード「majorP
rop」及び「minarProp」の別に、その各関
連するデータのエリアが、例えば図17に示される態様
で、該記憶装置3上に割り当てられる。
【0103】すなわちこの例においては、レコード「m
ajorProp」の領域が、記憶装置3上の番地「1
0」に、他方のレコード「minarProp」の領域
が、同記憶装置3上の番地「20」にそれぞれ割り当て
られ、更に、これらカテゴリレコードの鎖を作るため
に、レコード「majorProp」の「Next」フ
ィールドには、レコード「minarProp」の記憶
番地である「20」が、またレコード「minarPr
op」の「Next」フィールドには、次がないことを
示す「nil」が格納されている。また、同記憶装置3
上には、上記「x」、「y」及び「label」の各属
性名を格納するレコード「Prop」の領域も併せ割り
当てられる。これら「x」、「y」及び「label」
の領域は、記憶装置3のそれぞれ番地「30」、番地
「40」及び番地「60」にある。そして更に、同じカ
テゴリに分類される属性のレコードを鎖状に関連付ける
ために、「x」の「Next」フィールドには、「y」
の記憶番地である「40」が格納されるとともに、カテ
ゴリレコード「majorProp」の「Prop」フ
ィールドにはこの「x」の記憶番地である「30」が、
またカテゴリレコード「minarProp」の「Pr
op」フィールドには上記「label」の記憶番地で
ある「60」が、それぞれ格納されている。「y」の
「Next」フィールドと「label」の「Nex
t」フィールドとには、次がないことを示す「nil」
が格納されている。また、同記憶装置3には、上記
「x」、「y」及び「label」の各値を格納するレ
コード「Value」の領域も、それぞれ番地「5
0」、番地「80」及び番地「70」に割り当てられて
いる。これらの番地は、これらレコード「x」、「y」
及び「label」の各「value」フィールドによ
って示されており、これらレコード「Value」の各
「sv」フィールドには、各々上述した「200」、
「300」及び「"LABEL"」の値が格納されてい
る。 このように、この実施例編集装置では、各部品毎
に固定の領域を割り当てることなく、上記構造を有する
データとして記憶装置上での部品管理を行うことによ
り、GUI環境によって限定されない汎用性に富んだ部
品管理を実現している。
【0104】一方、こうしたGUI部品の編集(設計)
情報、すなわちファイル上での論理的な管理構造は、例
えば上記の例の部品(図2、編集エリア12上のボタン
部品W)の場合、図18に示される態様の木構造によっ
て表現される。
【0105】すなわち、こうした部品の情報は、同図1
8に示されるように、アイテムとそのアイテムの組によ
って記述される。上述のように、各アイテムは、類似し
た性質のもの同士がカテゴリにまとめられ、更に各カテ
ゴリも、類似した種類のもの同士が上位のカテゴリにま
とめられる階層構造となっている。この実施例編集装置
においては、これをS式を用いて表記する。
【0106】S式とは、前記のように、人工知能用言語
である「LISP(リスプ)」において多く用いられる
「Symbolic expression (シンボリック・エクスプレッ
ション)」の略である。このS式では、アイテムの構造
を「かっこ()」の組み合せを用いて表記するものであ
り、同じ階層にあるアイテムについは、これを同じ組の
「かっこ()」の中に記述し、それより1つ下の階層に
あるアイテムについては、これを上位の「かっこ()」
の中に包含される別の組の「かっこ()」の中に記述す
ることで、その階層構造を表現するようにしている。
【0107】例えば、図18に例示される上記の部品の
ように、カテゴリ「majorProp」とカテゴリ
「minarProp」との2種のカテゴリを持つとと
もに、カテゴリ「majorProp」は「x」及び
「y」の属性を持ち、カテゴリ「minarProp」
は「label」の属性を持ち、更にこれら属性の値
が、それぞれ「200」、「300」及び「"LABE
L"」であるとし、そしてこの部品が「Type」とい
う型を持つとすると、この部品の情報は、該S式によっ
て、 (ObjInfo (Type type) (majorProp (x "200")(y "300")) (minarProp (label "LABEL"))) のように表記されることとなる。
【0108】このように、この実施例編集装置では、編
集(設計)情報についても、その定義言語を固定するこ
となく、S式によって汎用的に表記される階層構造によ
って管理することとしたことから、ここでも、GUI環
境によって限定されない汎用性に富んだ情報管理が実現
されるようになる。
【0109】なお、この実施例では便宜上、Xウィンド
ウシステム・バージョン11の、Athena Wid
get(アテナ・ウィジェット)を利用してGUIの編
集装置を構成する場合について説明したが、この発明に
かかる編集装置が、こうした環境やOS(オペレーティ
ングシステム)に限定されることなく、他のGUI環
境、更には他のOSを通じて構築されるGUI環境にあ
っても、同様に適用できるものであることは勿論であ
る。
【0110】
【発明の効果】以上説明したように、この発明によれ
ば、編集装置自体がGUIとしての基本的なマン・マシ
ン・インターフェースとして介在して、これらマン・マ
シン間の、或いはOSとの間での、これまでの制限や不
都合を吸収するよう振る舞うことから、汎用のOS上で
あれ、効率の良い、柔軟性に富んだGUI編集が実現さ
れるようになる。
【0111】そして、特にこの発明によれば、各GUI
部品に対してその構造や存在条件、制約条件等を型とし
て設定するとともに、編集動作解析手段に対し型推論に
よってそれら条件に基づくイベント(ユーザ入力)の適
否判断を行わせるようにしたことから、ユーザによる誤
操作等を好適に保護して、GUIデータとしての品質を
高く保つことができるようになることに加え、各種GU
I部品の設計、並びに編集動作解析手段の設計をも、容
易で効率のよいものとすることができるようになる。
【0112】またそもそも、こうした型推論自体、その
所定の規則に基づいて、上記制約の正当性等についての
事前のチェックが可能であり、これによっても、該編集
装置としての開発効率は大きく向上される。
【0113】またこの発明によれば、都度編集されるG
UIデータを木構造のデータとして管理するようにした
ことから、如何なるGUI開発環境にあっても、これを
流用して汎用的なGUI開発を行うことができるように
なる。
【0114】またこの発明によれば、部品登録のための
イベントを編集動作解析手段に解釈させるだけのユーザ
操作を通じて、所望とされる部品のデータベース登録が
半自動的に行われるようにしたことから、ユーザによる
改良やカスタマイズ等も非常に容易に実現されるように
なる。
【0115】そしてこの発明によれば、編集動作解析手
段に対して複数の解析モードを設定するとともに、これ
も型推論規則に基づいて各解析モードを関連付けし、都
度のイベントの解釈を、これら関連付けした解析モード
に応じて自動的に変えるようにしたことから、高度なG
UI編集も円滑に、しかも高能率に実現できるようにな
る。
【図面の簡単な説明】
【図1】この発明にかかるGUIの編集装置の一実施例
について、その構成を示すブロック図である。
【図2】該編集装置における編集画面の一例を示す平面
図である。
【図3】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図4】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図5】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図6】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図7】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図8】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図9】図1に示される型推論によるモード変換推論ベ
ースについて、そこに定義される型推論を例示した型推
論図である。
【図10】図1に示される型推論によるモード変換推論
ベースについて、そこに定義される型推論を例示した型
推論図である。
【図11】現在のモード、そのモードでのユーザアクシ
ョン、該ユーザアクションに対して実行される型推論、
及びその型推論結果に基づき遷移されるモードの関係を
一覧した図表である。
【図12】現在のモード、そのモードでのユーザアクシ
ョン、該ユーザアクションに対して実行される型推論、
及びその型推論結果に基づき遷移されるモードの関係を
一覧した図表である。
【図13】図1に示される型推論による部品の制約につ
いての推論ベースについて、そこに定義される型推論を
例示した型推論図である。
【図14】図1に示される型推論による部品の制約につ
いての推論ベースについて、そこに定義される型推論を
例示した型推論図である。
【図15】編集中のGUIデータに部品を追加すること
を例にとって同編集装置の処理の流れを例示するフロー
チャートである。
【図16】編集用エリアにあるGUI部品を新たに部品
登録することを例にとって同編集装置の処理の流れを例
示するフローチャートである。
【図17】同編集装置で扱われるGUI部品データの記
憶装置上での管理態様を模式的に示す略図である。
【図18】同編集装置で編集されるGUI情報のファイ
ル上での管理構造を模式的に示す略図である。
【符号の説明】
1…GUI、2…処理装置、3…記憶装置、21…編集
動作解析部、22…ブラウザ、23…編集データ管理
部、11…ブラウザエリア、12…編集用エリア、15
…型推論によるモード変換推論ベース、16…型推論に
よる部品の制約についての推論ベース、DD…表示装
置、W…部品

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】複数のグラフィカル・ユーザインターフェ
    ース部品を管理するブラウザ手段と、これら部品を単位
    要素として構成、編集されるグラフィカル・ユーザイン
    ターフェースデータを管理する編集データ管理手段と、
    入力装置を通じてのユーザ入力をグラフィカル・ユーザ
    インターフェースのイベントとして受け取り、この受け
    取ったイベントを解析して前記ブラウザ手段及び編集デ
    ータ管理手段の処理態様を決定する編集動作解析手段
    と、を具えるグラフィカル・ユーザインターフェースの
    編集装置であって、 前記ブラウザ手段により管理される各グラフィカル・ユ
    ーザインターフェース部品は、その属性として、これら
    部品の構造や存在条件が各々所定の変数または該変数の
    式として定義された型、若しくは前記イベントについて
    のこの型により与えられる制約条件を有し、 前記編集動作解析手段は、 前記各グラフィカル・ユーザインターフェース部品の編
    集条件が前記型、若しくは型により与えられる制約条件
    をもとに、前記イベントとして仮定される編集内容の別
    に、その推論規則として記述定義された推論ベースと、 前記受け取ったイベントがこの推論ベースをもとに型推
    論される当該グラフィカル・ユーザインターフェース部
    品についての編集条件を満たすとき、該イベントについ
    て予め定義された処理指令を前記編集データ管理手段に
    対して送出し、同受け取ったイベントがこの推論ベース
    をもとに型推論される当該グラフィカル・ユーザインタ
    ーフェース部品についての編集条件を満たし得ないと
    き、当該イベントに対応するユーザ入力を無効とする制
    御手段と、 を具えるグラフィカル・ユーザインターフェースの編集
    装置。
  2. 【請求項2】前記編集データ管理手段は、前記編集され
    るグラフィカル・ユーザインターフェースデータを、前
    記グラフィカル・ユーザインターフェース部品の持つ属
    性に従って、その種類の別、及び前記型の集合に分類
    し、これを木構造のデータとして管理する階層管理手段
    を具える請求項1記載のグラフィカル・ユーザインター
    フェースの編集装置。
  3. 【請求項3】前記編集データ管理手段は、前記編集動作
    解析手段を通じたユーザ入力の解析に基づく部品移動指
    令によって取り込まれる前記グラフィカル・ユーザイン
    ターフェース部品に対してその都度独自の識別子を設定
    する識別子設定手段を具え、 前記ブラウザ手段は、前記編集動作解析手段を通じたユ
    ーザ入力の解析に基づく部品登録指令によって前記グラ
    フィカル・ユーザインターフェースデータが取り込まれ
    たとき、該データに対してグラフィカル・ユーザインタ
    ーフェース部品毎に設定された前記識別子に基づき、こ
    れら識別子によって識別される各部品の属性、及び前記
    型を前記編集データ管理手段から併せ受け取り、当該グ
    ラフィカル・ユーザインターフェースデータに含まれる
    部品とその属性、及び型を、自ら管理する部品データベ
    ースに追加する部品データベース管理手段を具える請求
    項1記載のグラフィカル・ユーザインターフェースの編
    集装置。
  4. 【請求項4】複数のグラフィカル・ユーザインターフェ
    ース部品を管理するブラウザ手段と、これら部品を単位
    要素として構成、編集されるグラフィカル・ユーザイン
    ターフェースデータを管理する編集データ管理手段と、
    入力装置を通じてのユーザ入力をグラフィカル・ユーザ
    インターフェースのイベントとして受け取り、この受け
    取ったイベントを解析して前記ブラウザ手段及び編集デ
    ータ管理手段の処理態様を決定する編集動作解析手段
    と、を具えるグラフィカル・ユーザインターフェースの
    編集装置であって、 前記編集動作解析手段は、 各異なる編集内容に対応した複数の解析モードを有する
    とともに、 少なくとも各該当する解析モードにおいて仮定されるイ
    ベントの内容及びそのイベントに応じて処理すべき内容
    並びに同イベントの後に遷移されるべき解析モードが、
    各々所定の変数または該変数の式として表される型とし
    て定義されて、これら各イベントに応じた処理内容並び
    に各解析モードの遷移条件が、この型をもとにした推論
    規則として記述定義された推論ベースと、 前記イベントを受け取る都度、この推論ベースをもとに
    型推論される結果に基づいて当該解析モードでの対応す
    る処理態様を決定する処理態様決定手段と、 同推論ベースをもとに型推論される結果に基づいて、都
    度の解析モードをその該当する解析モードへと遷移する
    モード遷移手段と、 を具えるグラフィカル・ユーザインターフェースの編集
    装置。
JP4024017A 1992-02-10 1992-02-10 グラフィカル・ユーザインターフェースの編集装置 Pending JPH05224904A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4024017A JPH05224904A (ja) 1992-02-10 1992-02-10 グラフィカル・ユーザインターフェースの編集装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4024017A JPH05224904A (ja) 1992-02-10 1992-02-10 グラフィカル・ユーザインターフェースの編集装置

Publications (1)

Publication Number Publication Date
JPH05224904A true JPH05224904A (ja) 1993-09-03

Family

ID=12126776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4024017A Pending JPH05224904A (ja) 1992-02-10 1992-02-10 グラフィカル・ユーザインターフェースの編集装置

Country Status (1)

Country Link
JP (1) JPH05224904A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312442A (ja) * 2000-03-20 2001-11-09 Internatl Business Mach Corp <Ibm> データ処理システムにおいてアプリケーションへのアクセスを提供する方法および装置
JP2007525733A (ja) * 2003-06-06 2007-09-06 インテンショナル ソフトウェア コーポレーション プログラムツリー内でカテゴリ別にノードを編成し操作する方法およびシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312442A (ja) * 2000-03-20 2001-11-09 Internatl Business Mach Corp <Ibm> データ処理システムにおいてアプリケーションへのアクセスを提供する方法および装置
JP2007525733A (ja) * 2003-06-06 2007-09-06 インテンショナル ソフトウェア コーポレーション プログラムツリー内でカテゴリ別にノードを編成し操作する方法およびシステム
US7730102B2 (en) 2003-06-06 2010-06-01 Intentional Software Corporation Method and system for organizing and manipulating nodes by category in a program tree
JP2010146583A (ja) * 2003-06-06 2010-07-01 Intentional Software Corp プログラムツリー内でカテゴリ別にノードをまとめる方法及びシステム

Similar Documents

Publication Publication Date Title
US5335320A (en) Graphical user interface editing system
US7873946B2 (en) Scalable vector graphics, tree and tab as drag and drop objects
JP3234077B2 (ja) 人工知能を用いたプラント運転シミュレータ及びプラント運転シミュレーション方法
US6964010B1 (en) Formatted-item list control
US7873939B2 (en) Processing logic modeling and execution
US6877154B2 (en) Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method
US6804686B1 (en) System and methodology for providing fixed UML layout for an object oriented class browser
US6836878B1 (en) Visual programming from a tree structure
US5146591A (en) Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US6341359B1 (en) Self-diagnosing and self correcting data entry components
JPH0772999A (ja) 画面対応ソフトウェアアプリケーションツールにおける表示画面事象をモニターする方法と装置
JPH0658624B2 (ja) グラフィカル・ユーザ・インターフェース管理装置
JP2014225284A (ja) プロセス制御システム及び方法
JP2006107478A (ja) ワークフローを設計するための拡張可能フレームワーク
JPH07134765A (ja) データのグラフ表示の方法
JP2008512794A (ja) オブジェクト処理グラフアプリケーション開発システム
Zhang et al. VisPro: A visual language generation toolset
US20020122077A1 (en) Multiphase, task-oriented progress indicator incorporating graphical icons
JPH05224904A (ja) グラフィカル・ユーザインターフェースの編集装置
CN112181483B (zh) 等离子体控制系统软件开发平台及方法
Phillips Lean Cuisine+: an executable graphical notation for describing direct manipulation interfaces
JPH11327884A (ja) 既存システム処理情報を再構成し利用するシステム
JP2571143B2 (ja) プログラム開発装置
Paterna' et al. The design and specification of a visual language: an example for customising geographic information systems functionalities
JP2002073336A (ja) ソフトウエアコード生成装置及び方法