説明

データ処理装置及びデータ処理方法

【課題】ダイアグラムを適切に処理する技術を提供する。
【解決手段】データ処理装置において、S88処理ユニットの処理部72aは、処理単位を示す複数の図形と、図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部103と、表示部103により表示された画面を介してユーザからダイアグラムの編集指示を受け付け、指示された編集を実行する編集部104と、編集部104が、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、第2図形を構成する線の接続点を決定して接続線の一端を自動的に接続させるとともに、第1図形を構成する線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に接続線の他端を接続させるリンク制御部106と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書処理技術に関し、特に、処理の流れを表現したダイアグラムを処理するデータ処理装置及び方法に関する。
【背景技術】
【0002】
XMLは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、XML文書を作成、表示、編集するためのアプリケーションが開発されている(たとえば、特許文献1参照)。XML文書は、文書型定義などにより定義されたボキャブラリ(タグセット)に基づいて作成されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001−290804号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
XMLは、処理の流れを示すダイアグラムを表現するのにも適している。本出願人は、このように柔軟な設計が許されるXML文書を利用して、ダイアグラムを適切に処理することが可能な技術を開発した。そして、ダイアグラムを処理する際のユーザの利便性を向上させることが可能なデータ処理技術を想到するに至った。
【0005】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ダイアグラムを適切に処理する技術を提供することにある。
【課題を解決するための手段】
【0006】
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、前記編集部が、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第2図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第1図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるリンク制御部と、を備えることを特徴とする。
【0007】
本発明の別の態様は、データ処理方法に関する。このデータ処理方法は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第2図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第1図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、をコンピュータに実行させることを特徴とする。
【0008】
本発明の更に別の態様は、データ処理装置に関する。このデータ処理装置は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、前記編集部が、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第1図形と前記第2図形とを前記接続線で接続させるリンク制御部と、を備え、前記リンク制御部は、前記第1図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第1図形と前記第2図形とを新たに接続線で接続させ、前記第1図形に接続されている接続線又は前記第1図形に設定されている接続点に応じて、前記第1図形に新たに接続点を設定することを特徴とする。
【0009】
前記リンク制御部は、新たに接続された接続線の両側に新たな接続点を設定してもよい。前記リンク制御部は、新たに接続された接続線と隣接する接続線又は前記第1図形の端点との間に接続点が設定されていない場合、新たに接続された接続線と隣接する接続線又は前記第1図形の端点との間に新たに接続点を設定してもよい。前記リンク制御部は、前記第1図形に設定されている接続点が無くなった場合、接続されている接続線同士の間又は前記接続線と前記第1図形の端点との間に新たに接続点を設定してもよい。前記リンク制御部は、前記接続先が確定されたとき、前記第1図形に接続されている接続線を再配置し、再配置された接続線同士の間又は前記接続線と前記第1図形の端点との間に新たに接続点を設定してもよい。
【0010】
本発明の更に別の態様は、データ処理方法に関する。このデータ処理方法は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第1図形と前記第2図形とを前記接続線で接続させるステップと、を備え、前記接続させるステップは、前記第1図形に前記接続線をスナップさせる接続点を設定するステップと、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせるステップと、前記接続先が確定されたとき、前記第1図形と前記第2図形とを新たに接続線で接続させ、前記第1図形に接続されている接続線又は前記第1図形に設定されている接続点に応じて、前記第1図形に新たに接続点を設定するステップと、を含むことを特徴とする。
【0011】
本発明の更に別の態様は、データ処理装置に関する。このデータ処理装置は、平面上に配置された複数の図形を描画して表示画面を生成する表示部と、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行う編集部と、ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するグループ管理部と、を備え、前記グループ管理部は、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示することを特徴とする。
【0012】
本発明の更に別の態様は、データ処理方法に関する。このデータ処理方法は、平面上に配置された複数の図形を描画して表示画面を生成するステップと、編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、をコンピュータに実行させることを特徴とする。
【0013】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0014】
本発明によれば、ダイアグラムを適切に処理する技術を提供することができる。
【図面の簡単な説明】
【0015】
【図1】前提技術に係る文書処理装置の構成を示す図である。
【図2】文書処理装置により編集されるXML文書の例を示す図である。
【図3】図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。
【図4(a)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図4(b)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図5】図2に示したXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す図である。
【図6】ユーザが定義ファイルを生成するために、定義ファイル生成部がユーザに提示するグラフィカルユーザインターフェースの例を示す図である。
【図7】定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。
【図8】文書処理装置によるXML文書の編集画面の一例を示す図である。
【図9】文書処理装置により編集されるXML文書の他の例を示す図である。
【図10】図9に示した文書を表示した画面の例を示す図である。
【図11】実施の形態に係るデータ処理装置の構成を示す図である。
【図12】S88処理ユニットの処理部の内部構成を示す図である。
【図13】S88処理ユニットにより表示される画面の例を示す図である。
【図14】S88処理ユニットにより表示される画面の例を示す図である。
【図15】S88処理ユニットにより表示される画面の別の例を示す図である。
【図16】S88処理ユニットにより表示された画面の別の例を示す図である。
【図17】図17(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図18】図18(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図19】図19(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図20】グループ管理部の機能を説明するための図である。
【図21】グループ管理部の機能を説明するための図である。
【図22】グループ管理部の機能を説明するための図である。
【図23】グループ管理部の機能を説明するための図である。
【発明を実施するための形態】
【0016】
(前提技術)
図1は、前提技術に係る文書処理装置20の構成を示す。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本前提技術では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集ユニット24、DOMユニット30、CSSユニット40、HTMLユニット50、SVGユニット60、及び変換部の一例であるVCユニット80を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0017】
主制御ユニット22は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集ユニット24は、XML文書を編集するためのフレームワークを提供する。文書処理装置20における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット22又は編集ユニット24によりロードされる。主制御ユニット22又は編集ユニット24は、処理対象となるXML文書の名前空間を参照して、XML文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置20には、HTML文書の表示及び編集を行うHTMLユニット50、SVG文書の表示及び編集を行うSVGユニット60など、ボキャブラリ(タグセット)ごとに表示系及び編集系がプラグインとして実装されており、HTML文書を編集するときはHTMLユニット50が、SVG文書を編集するときはSVGユニット60が、それぞれロードされる。後述するように、HTMLとSVGの双方の構成要素を含む複合文書が処理対象となっている場合は、HTMLユニット50とSVGユニット60の双方がロードされる。
【0018】
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
【0019】
編集ユニット24は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行(リドゥ)又は実行の取消(アンドゥ)などの処理を制御する。
【0020】
DOMユニット30は、DOM提供部32、DOM生成部34、及び出力部36を含み、XML文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル(Document Object Model:DOM)に準拠した機能を実現する。DOM提供部32は、編集ユニット24に定義されているインタフェースを満たすDOMの実装である。DOM生成部34は、XML文書からDOMツリーを生成する。後述するように、処理対象となるXML文書が、VCユニット80により他のボキャブラリにマッピングされる場合は、マッピング元のXML文書に対応するソースツリーと、マッピング先のXML文書に対応するデスティネーションツリーが生成される。出力部36は、例えば編集終了時に、DOMツリーをXML文書として出力する。
【0021】
CSSユニット40は、CSS解析部42、CSS提供部44、及びレンダリング部46を含み、CSSに準拠した表示機能を提供する。CSS解析部42は、CSSの構文を解析するパーサの機能を有する。CSS提供部44は、CSSオブジェクトの実装であり、DOMツリーに対してCSSのカスケード処理を行う。レンダリング部46は、CSSのレンダリングエンジンであり、CSSを用いてレイアウトされるHTMLなどのボキャブラリで記述された文書の表示に用いられる。
【0022】
HTMLユニット50は、HTMLにより記述された文書を表示又は編集する。SVGユニット60は、SVGにより記述された文書を表示又は編集する。これらの表示/編集系は、プラグインの形で実現されており、それぞれ、文書を表示する表示部(Canvas)56、66、編集指示を含むイベントを送受信する制御部(Editlet)52、62、編集コマンドを受けてDOMに対して編集を行う編集部(Zone)54、64を備える。制御部52又は62が外部からDOMツリーの編集コマンドを受け付けると、編集部54又は64がDOMツリーを変更し、表示部56又は66が表示を更新する。これらは、MVC(Model-View-Controller)と呼ばれるフレームワークに類似する構成をとっており、概ね、表示部56及び66が「View」に、制御部52及び62が「Controller」に、編集部54及び64とDOMの実体が「Model」に、それぞれ対応する。本前提技術の文書処理装置20では、XML文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、HTMLユニット50は、HTML文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、SVGユニット60は、SVG文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
【0023】
VCユニット80は、マッピング部82、定義ファイル取得部84、及び定義ファイル生成部86を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本前提技術では、この機能を、ボキャブラリコネクション(Vocabulary Connection:VC)と呼ぶ。定義ファイル取得部84は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応(コネクション)を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部82は、定義ファイル取得部84が取得したスクリプトファイルを参照して、DOM生成部34にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部86は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
【0024】
VCユニット80は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。DOMユニット30が、ソースツリーが変更された旨のミューテーションイベントを発行すると、VCユニット80は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示/編集するプラグイン、例えばHTMLユニット50は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
【0025】
文書処理装置20により文書を表示又は編集する動作について説明する。文書処理装置20が処理対象となる文書を読み込むと、DOM生成部34が、そのXML文書からDOMツリーを生成する。また、主制御ユニット22又は編集ユニット24は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置20にインストールされている場合は、そのプラグインをロードして、文書を表示/編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部84が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示/編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示/編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
【0026】
図2は、処理対象となるXML文書の例を示す。このXML文書は、生徒の成績データを管理するために用いられる。XML文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「A」である生徒の国語の成績は「90」、数学の成績は「50」、理科の成績は「75」、社会の成績は「60」である。以下、この文書で使用されているボキャブラリ(タグセット)を、「成績管理ボキャブラリ」と呼ぶ。
【0027】
本前提技術の文書処理装置20は、成績管理ボキャブラリの表示/編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したVC機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、HTMLやSVGなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
【0028】
図3は、図2に示したXML文書をHTMLで記述された表にマッピングする例を示す。図3の例では、成績管理ボキャブラリの「生徒」ノードを、HTMLにおける表(「TABLE」ノード)の行(「TR」ノード)に対応づけ、各行の第1列には属性値「名前」を、第2列には「国語」ノードの要素値を、第3列には「数学」ノードの要素値を、第4列には「理科」ノードの要素値を、第5列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図2に示したXML文書を、HTMLの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがHTMLによる表示画面上で、HTMLユニット50の編集機能により、これらの値を編集することができる。第6列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第6列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
【0029】
図4(a)及び図4(b)は、図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図4(a)(b)の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第1行に「名前」、「国語」などの見出しが表示され、第2行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第6列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
【0030】
図5は、図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す。表90の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、XML文書を編集することができる。たとえば、第2行第3列の値を「70」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「B」の数学の成績が「70」に変更される。このとき、VCユニット80は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、HTMLユニット50が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「B」の数学の成績が「70」に変更され、更に、平均点が「55」に変更される。
【0031】
図5に示した画面には、図4(a)(b)に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本前提技術の文書処理装置20では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、VC機能により、HTMLユニット50の表示/編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
【0032】
図6は、ユーザが定義ファイルを生成するために、定義ファイル生成部86がユーザに提示するグラフィカルユーザインタフェースの例を示す。画面左側の領域91には、マッピング元のXML文書がツリー表示されている。画面右側の領域92には、マッピング先のXML文書の画面レイアウトが示されている。この画面レイアウトは、HTMLユニット50により編集可能となっており、ユーザは、画面右側の領域92において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の領域91に表示されたマッピング元のXML文書のノードを、画面右側の領域92に表示されたHTMLによる画面レイアウト中へドラッグ&ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、HTML画面の表90の第1行第3列にドロップすると、「数学」ノードと、3列目の「TD」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部86は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
【0033】
XHTML、MathML、SVGなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図2に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、VC機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
【0034】
図7は、定義ファイル生成部86により生成された画面レイアウトの他の例を示す。図7の例では、成績管理ボキャブラリで記述されたXML文書を表示するための画面に、表90と、円グラフ93が作成されている。この円グラフ93は、SVGにより記述される。後述するように、本前提技術の文書処理装置20は、一つのXML文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、HTMLで記述された表90と、SVGで記述された円グラフ93とを、一つの画面上に表示することができる。
【0035】
図8は、文書処理装置20によるXML文書の編集画面の一例を示す。図8の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるXML文書を異なる複数の表示形式により表示している。領域94には、文書のソースが表示されており、領域95には、文書のツリー構造が表示されており、領域96には、図5に示したHTMLにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はVCユニット80によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがVC機能により表示を行っている場合は、VCユニット80がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
【0036】
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、領域96の画面を担当しているHTMLユニット50は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
【0037】
ソース表示及びツリー表示は、VC機能を利用して実現することもできる。すなわち、ソース、ツリー構造をHTMLによりレイアウトし、そのHTMLにXML文書をマッピングして、HTMLユニット50により表示してもよい。この場合、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、VCユニット80は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーをそれぞれ変更し、HTMLユニット50は、それらのデスティネーションツリーを参照して、3つの画面を更新する。
【0038】
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表90などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット22が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
【0039】
図9は、文書処理装置20により編集されるXML文書の他の例を示す。図9に示したXML文書では、SVG文書の「foreignObject」タグの中にXHTML文書が埋め込まれており、さらに、XHTML文書の中にMathMLで記述された数式が入っている。このような場合、編集ユニット24が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図9の例では、編集ユニット24は、まず、SVGユニット60に四角形を描画させ、つづいて、HTMLユニット50にXHTML文書を描画させる。さらに、図示しないMathMLユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図10に示す。
【0040】
文書編集中、カーソル(キャリッジ)の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、SVG文書が表示された領域内に存在するときは、SVGユニット60が提供するメニュー、又はSVG文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、XHTML文書が表示された領域内に存在するときは、HTMLユニット50が提供するメニュー、又はXHTML文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
【0041】
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本前提技術では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたXML文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるXMLなどの文書ならではの特徴といえる。
【0042】
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、SVGなどの図に埋め込まれた文字列も検索対象とすることができる。
【0043】
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このXML文書は、妥当(valid)ではないが、整形式(well-formed)であれば、有効なXML文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、XHTML文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
【0044】
図10に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はVCユニット80がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はVCユニット80がリスナーとして登録される。DOM提供部32は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図9に示した文書において、<html>ノードの下位のノードが変更された場合、<html>ノードにリスナーとして登録されたHTMLユニット50にミューテーションイベントが通知されるとともに、その上位の<svg>ノードにリスナーとして登録されたSVGユニット60にもミューテーションイベントが通知される。このとき、HTMLユニット50は、変更されたソースツリーを参照して表示を更新する。SVGユニット60は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
【0045】
編集の内容によっては、HTMLユニット50による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、HTMLユニット50による表示領域が以前より大きくなった場合、HTMLユニット50は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
【0046】
(実施の形態)
図11は、実施の形態に係るデータ処理装置100の構成を示す。データ処理装置100は、図2に示した前提技術に係る文書処理装置20の構成に加えて、ダイアグラムコンポーネント70を備える。ダイアグラムコンポーネント70は、ダイアグラムを表示し、編集する機能を提供する。ダイアグラムコンポーネント70は、ダイアグラムを表記するための複数の表記法のそれぞれに準じた処理を行う複数の処理ユニット71と、複数の表記法において共通に用いられる機能を提供するコア部76を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0047】
S88処理ユニット71a、BPMN処理ユニット71b、フローチャート処理ユニット71cなどの処理ユニット71は、ダイアグラムを作成するために定められた規格又は表記法に則って、ダイアグラムを記述した文書を読み込んで表示するとともに、ユーザからの編集指示を受け付けて、ダイアグラムを編集する。S88処理ユニット71aは、国際計測制御学会(Instrumentation, Systems, and Automation society:ISA)が規格化したバッチ制御の国際標準規格であるS88に準拠したダイアグラムの表示及び編集を制御する。BPMN処理ユニット71bは、ビジネスプロセスを図示して可視化するためのグラフィカルな標準記法として策定されたBPMN(Business Process Modeling Notation)に準拠したダイアグラムの表示及び編集を制御する。フローチャート処理ユニット71cは、JISなどにより規格化されたフローチャートの表記法に準拠したダイアグラムの表示及び編集を制御する。それぞれの表記法によって、図形の形状や、矢印の形状などの表記の仕様が異なっているので、それぞれの仕様に応じて処理部72が設けられる。処理部72は、それぞれの表記法においてダイアグラムを表記するのに充分な情報を持つ独自のXMLボキャブラリを用いて、ダイアグラムをデータ化して処理する。
【0048】
ルール管理部74は、処理部72における編集のルールを管理する。ダイアグラムには、規格などにより、様々な制約が定められている。例えば、ビジネスプロセスモデルを表記するBPMNでは、「メッセージフローは同じプール内のそれぞれのレーンにあるアクティビティ間で使うことは許されない」という制約がある。ルール管理部74は、このような編集制約を保持して、処理部72における編集の許否を判定し、各規格に準拠した文書の作成を支援する。ルール管理部74は、ハードコードされたモジュールとして提供されてもよいし、パラメータファイルなどによりカスタマイズ可能としてもよい。
【0049】
コア部76は、様々なダイアグラムの表記法に応じて設けられる複数の処理部72により共通に利用される機能を提供する。例えば、コア部76は、DOMの操作や、ファイルの入出力など、ダイアグラムの処理に際して、ダイアグラムの種別の違いによらずに必要となる共通の機能を提供する。グループ管理部77は、ダイアグラムに含まれる複数の図形をグループ化して管理する。グループ管理部77の機能の詳細については後述する。
【0050】
このように、共通の機能を提供するコア部76と、ダイアグラムを作成するモデルに応じた処理を行う処理部72と、編集制約を管理するルール管理部74とを、それぞれ独立した別々のモジュールとして設けることで、処理部72とルール管理部74をダイアグラムの種別に応じて別々にカスタマイズすることができ、柔軟に対応させることができる。また、共通の機能はコア部76にまとめることで、ダイアグラムの種別が異なっても、処理部72とルール管理部74のみをカスタマイズすればよいので、開発の工数を低減させることができる。処理部72は、コア部76及びルール管理部74のそれぞれとの間で通信を行うためのインタフェースを有しており、インタフェースを介してコア部76及びルール管理部74と協調動作する。
【0051】
図12は、S88処理ユニット71aの処理部72aの内部構成を示す。処理部72aは、ツリー制御部101、パンくずリスト制御部102、表示部103、編集部104、図形管理部105、リンク制御部106を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【0052】
S88では、バッチプロセスの手順が、「MasterRecipe」、「Procedure」、「Unit Procedure」、「Operation」、「Phase」などの処理単位を用いて階層的に表現される。表示部103は、ユーザにより指定された階層におけるダイアグラムを表示する。編集部104は、表示部103により表示された階層におけるダイアグラムの編集指示をユーザから受け付けて、指示された編集を実行する。
【0053】
ツリー制御部101は、バッチプロセスに含まれるこれらの処理単位の階層構造をツリー表示する。ツリー制御部101は、ツリー表示においてユーザが特定の階層を指定すると、その階層のダイアグラムを表示部103に表示させる。パンくずリスト制御部102は、表示部103に表示されている階層を示すパンくずリストを表示する。パンくずリスト制御部102は、パンくずリストにおいてユーザが特定の階層を指定すると、その階層のダイアグラムを表示部103に表示させる。
【0054】
図形管理部105は、編集部104により編集されるバッチプロセス中に配置可能な図形を管理する。図形管理部105は、S88における「MasterRecipe」、「Procedure」、「Unit Procedure」、「Operation」、「Phase」、「Parallel Divergent」、「Parallel Convergent」などの処理単位を示す図形や、フローチャートにおける「処理」、「入出力」、「準備」、「判断」などを示す図形の形状データを保持し、画面にそれらの図形を表示する。ユーザが、表示された図形をドラッグして、表示部103により表示されたダイアグラムの表示画面にドロップする操作などを行うと、図形管理部105は、操作された図形及びドロップされた位置を編集部104に通知して、表示されている階層にその図形を配置させる。
【0055】
リンク制御部106は、バッチプロセス中に配置された処理単位を示す複数の図形の間を接続する直線型又はかぎ型のリンクを制御する。リンク制御部106の機能の詳細については後述する。
【0056】
図13は、S88処理ユニット71aにより表示される画面の例を示す。表示画面には、表示部103がバッチプロセス中の特定の階層のダイアグラムを表示するメイン画面116と、ツリー制御部101がバッチプロセスの階層構造をツリー表示するツリー画面110と、パンくずリスト制御部102がメイン画面116に表示中の階層を示すパンくずリストを表示するパンくずリスト画面112と、図形管理部105が配置可能な図形の候補を表示するストック画面118が設けられている。
【0057】
メイン画面116には、S88の仕様にしたがって、ユーザにより選択された階層のダイアグラムが表示される。S88では、処理単位に応じて図形の形状が決められており、「Procedure」を示す図形120は、矩形の各頂点の内側に斜線が付されている。同様に、「Unit Procedure」を示す図形には、矩形の左上、右上、右下の3頂点の内側に斜線が付されており、「Operation」を示す図形には、矩形の左上、右上の2頂点の内側に斜線が付されており、「Phase」を示す図形には、矩形の右上の1頂点の内側に斜線が付されている。このように、矩形の頂点の内側に付された斜線の数によって、その図形がいずれの処理単位に該当するのかを視覚的に判断することができる。また、下位の階層を有する処理単位の矩形の右上の頂点付近には、「+」記号122が表示される。
【0058】
編集部104は、下位の階層を持つことが可能な処理単位の図形をマウスでダブルクリックする操作を受け付けると、その処理単位の階層へ移動するよう表示部103へ通知し、その階層のダイアグラムを表示させる。例えば、「Procedure1」の図形120をダブルクリックする操作を受け付けると、「Procedure1」の階層へ移動させる。このときの画面の例を図14に示す。編集部104は、「+」記号122をクリックする操作を受け付けると、その「+」記号122が付された図形に対応する処理単位の階層へ移動させてもよい。また、「+」記号122をクリックする操作を受け付けると、階層を移動させずに、表示中のダイアグラムにおいて、その階層のダイアグラムを展開させてもよい。
【0059】
図14は、S88処理ユニット71aにより表示される画面の例を示す。図14では、「Procedure1」の階層のダイアグラムがメイン画面116に表示されている。パンくずリスト制御部102は、階層の移動に追随してパンくずリスト画面112を更新する。この画面において、パンくずリスト制御部102は、例えば「MasterRecipe」をクリックする操作を受け付けると、「MasterRecipe」の階層へ移動するよう表示部103へ通知する。また、矢印114をクリックする操作を受け付けると、1つ上の階層へ移動するよう表示部103へ通知する。
【0060】
図15は、S88処理ユニット71aにより表示される画面の別の例を示す。図15の例では、表示部103は、メイン画面116の領域を示す矩形の各頂点の内側に、その処理単位の図形に対応する斜線を表示している。すなわち、表示中の階層が「Procedure」であれば、図15に示すように、メイン画面116の四隅の内側に斜線が付され、「Unit Procedure」であれば、左上、右上、右下の三隅の内側に斜線が付される。これにより、表示中の階層がいずれの処理単位に該当するかを視覚的に分かりやすく表示することができる。表示部103は、表示中の階層の処理単位が下位の階層を有している場合は、メイン画面116の右上の頂点の内側に「+」記号126を表示してもよい。この場合、編集部104は、「+」記号126をクリックする操作を受け付けると、下位の階層へ移動するよう表示部103へ通知してもよい。
【0061】
図16は、S88処理ユニット71aにより表示された画面の別の例を示す。図16の例では、メイン画面116に、処理の分岐の開始を示す「Parallel Divergent」の図形130と、処理の分岐の終了を示す「Parallel Convergent」の図形132が配置されている。リンク制御部106は、「Parallel Divergent」の図形130又は「Parallel Convergent」の図形132と、他の図形、例えば「Phase 2-1」の図形134との間を接続線135で接続するときに、「Parallel Divergent」の図形130又は「Parallel Convergent」の図形132に含まれる横方向の直線の任意の位置に接続線135を接続させることを可能とする。通常、リンク制御部106が図形間に接続線を設定するとき、指定された図形の各辺の中央など、予め設定された位置に自動的に接続線を接続させる。同じ図形に複数のリンクが設定される場合は、接続線が接続される辺を等分した位置を算出して自動的に接続線を接続させる。しかし、「Parallel Divergent」又は「Parallel Convergent」では、分岐の数が不定であるため、固定的に定められた等分点などに接続線をスナップさせるよりも、ユーザが所望の位置に接続することを可能とした方が、ユーザの利便性が向上すると考えられる。したがって、本実施の形態では、直線上の任意の位置に接続線を接続させる機能を提供し、ユーザが任意の位置を指定可能とする。
【0062】
図16において、リンク制御部106は、ユーザが接続線135を配置させる編集操作を行っているときに、「Parallel Convergent」の図形132のうち、接続線135を接続させる直線上の、ユーザが操作するポインタ136の近傍の位置に、スナップ位置を示す図形138を表示する。ユーザがポインタ136を左右に移動させると、リンク制御部106は、ポインタ136の移動に応じて、スナップ位置を示す図形138を直線上で左右に移動させる。ユーザがポインタ136の位置を決定すると、リンク制御部106は、そのときの図形138の位置に接続線135を接続させる。
【0063】
リンク制御部106は、「Parallel Divergent」の図形130又は「Parallel Convergent」の図形132に接続線を接続させるときに、その図形に既に接続されている接続線の数に応じて接続点の位置を算出し、算出した位置に接続線をスナップさせてもよい。例えば、「Parallel Divergent」の図形130に既に3本の接続線が接続されており、ユーザが4本目の接続線を接続させる場合、リンク制御部106は、図形130の接続線を接続させる直線の5分点を算出し、それぞれの点に4本の接続線を自動的に接続させてもよい。
【0064】
従来のように、予め固定的に定められた接続点に接続線をスナップさせて接続させると、用意されている接続点の数以上に接続線を接続させる場合に、複数の接続線が同一の接続点に接続されることになり、接続線同士を判別しにくいという問題があった。したがって、本実施の形態では、接続線の数に応じて、接続点を自動的に更新する技術について更に詳述する。
【0065】
図17(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。リンク制御部106は、図形132に接続線が接続されていないときには、例えば、図17(a)に示すように、接続線を接続させる直線の中点に接続点138aを設ける。初期状態においては、任意の位置に任意の数の接続点が設けられてもよい。
【0066】
図17(a)に示す状態において、1本の接続線135aが接続点138aに接続された状態を図17(b)に示す。接続点138aに接続線135aが接続されると、未接続の接続点がなくなってしまい、次に接続される接続線が接続点138aで重なってしまうので、リンク制御部106は、新たに接続点138b1及び138b2を設ける。リンク制御部106は、直線の端点と接続線が接続された接続点138aとの中点を新たな接続点としてもよいし、直線の端点又は接続点138aから所定の距離の位置を新たな接続点としてもよい。2つの接続点138b1及び138b2は、接続点138aから対称な位置に設けられるのが望ましい。図17(b)の例では、接続点138aの両側に1つずつ、計2つの接続点を新たに設けたが、リンク制御部106は、接続線が接続点に接続されたときに、3以上の接続点を新たに設けてもよい。
【0067】
各接続点の周囲には、スナップ範囲139が設けられており、ユーザが、接続線の一端をスナップ範囲139の内部へドラッグすると、リンク制御部106は、接続線の一端を接続点に自動的にスナップさせる。例えば、接続点138b1の近傍へ接続線の一端をドラッグし、接続点138b1にスナップされた状態でドロップすると、リンク制御部106は、接続線135bを接続点138b1に接続させる。この状態を図17(c)に示す。
【0068】
図17(c)に示す状態では、接続点138b2が未接続のまま残っているので、リンク制御部106は、新たに接続点を設けなくてもよいが、図形132の左側から接続線を接続させたい場合に不便である可能性があるので、今回接続された接続線135bの両側に新たに接続点を設けてもよい。例えば、図17(d)に示すように、接続線135bが接続された接続点138b1と、直線の端点又は隣の接続点138aとの中点を、新たな接続点138c1及び138c2としてもよい。
【0069】
図17(d)に示す状態において、1本の接続線135cが接続点138b2に接続された状態を図17(e)に示す。リンク制御部106は、接続線135cが接続された接続点138b2の両側に、新たな接続点138c3及び138c4を設ける。これにより、接続線が増加しても、新たに接続点が設けられるので、複数の接続線が同一の接続線に重なることを防ぐことができ、見やすいダイヤグラムを作成することができる。
【0070】
図18(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。図18(a)〜(e)では、接続線が接続された接続点の位置も、接続線の数に応じて自動的に更新する例を示す。リンク制御部106は、接続されている接続線の数をnとすると、直線の(n+1)分点にそれぞれの接続線を接続させ、2(n+1)分点のうち接続線が接続されていない点を新たな接続点とする。例えば、n=0の場合は、図18(a)に示すように、2分点を接続点138dとし、n=1の場合は、図18(b)に示すように、2分点に接続線135dを接続させ、4分点のうち1/4及び3/4の位置を接続点138e1及び138e2とする。
【0071】
図18(b)に示す状態において、ユーザが、接続線の一端を接続点138e1の近傍へドラッグすると、リンク制御部106は、接続線の一端を接続点138e1に自動的にスナップさせる。これにより、ユーザが接続線の一端をドラッグしている間にも、接続線が他の接続線と重なることを防ぐことができる。この後、ユーザが接続線をドロップすると、リンク制御部106は、2本の接続線135d及び135eを3分点に再配置するとともに、6分点のうち1/6、3/6、5/6の位置を新たに接続点138f1、138f2、及び138f3とする。この状態を図18(c)に示す。
【0072】
図18(c)に示す状態において、更に、接続線135fが接続点138f1に接続されると、図18(d)に示すように、3本の接続線は、4分点の左から、138f、138e、138dの順に再配置される。また、図18(d)に示す状態において、更に、接続線135gが接続点138g3に接続されると、図18(e)に示すように、4本の接続線は、5分点の左から、138f、138e、138g、138dの順に再配置される。このように、各接続線の間に接続点を設けておくことにより、接続線を接続しようとするときに、接続線が再配置される際の接続順序を容易に確認することができる。
【0073】
図19(a)〜(e)は、接続線を接続させる接続点を自動的に更新する様子を示す図である。図19(a)〜(e)では、直線全体の等分点ではなく、直線の両端に一定のマージンをおき、マージンを除いた部分の等分点を接続点とする。すなわち、図19(a)に示すように、直線の両端からそれぞれ所定の距離にある位置A及びBを基準として、接続線の接続位置と接続点の位置とを算出する。
【0074】
まず、図19(a)に示す状態において、接続線135iが接続点138iに接続されると、リンク制御部106は、線分ABの2分点に接続線135iを接続させ、接続線135iの両側に接続点138j1及び138j2を設ける。つづいて、接続点138j1に接続線135jが接続されると、リンク制御部106は、線分ABの両端に接続線135i及び135jを接続させ、直線の左側端点と点Aの間、線分ABの中点、直線の右側端点と点Bの間に、それぞれ、接続点138k1、138k2、及び138k3を設ける。
【0075】
さらに、接続点138k1に接続線135kが接続されると、リンク制御部106は、点A、線分ABの中点、及び点Bに、それぞれ、接続線135k、135j、及び135iを接続させ、直線の左側端点と点Aの間、線分ABの4分点のうち1/4及び3/4の位置、直線の右側端点と点Bの間に、それぞれ、接続点138l1、138l2、138l3、及び138l4を設ける。
【0076】
さらに、接続点138l3に接続線135lが接続されると、リンク制御部106は、点A、線分ABの3分点、及び点Bに、それぞれ、接続線135k、135j、135l、135iをこの順に接続させ、直線の左側端点と点Aの間、線分ABの6分点のうち1/6、3/6、及び5/6の位置、直線の右側端点と点Bの間に、それぞれ、接続点138m1、138m2、138m3、138m4、及び138m5を設ける。
【0077】
以降は、同様に、線分ABの端点及び(n−1)分点に接続線を接続させ、直線の左側端点と点Aの間、線分ABの2(n−1)分点のうち接続線が接続されていない点、直線の右側端点と点Bの間に、接続点を設ける。
【0078】
図16では、並列処理を表現する「Parallel Divergent」及び「Parallel Convergent」の例を示したが、逐次処理を表現する「Sequence Divergent」及び「Sequence Convergent」においても同様である。このような機能を提供することにより、ユーザの利便性を向上させることができる。
【0079】
図20〜図23は、グループ管理部77の機能を説明するための図である。図20に示すように、ユーザが、マウスなどを用いて矩形140、矩形142、及び接続線144を選択してグループ化する操作を行うと、グループ管理部77は、それらの図形をグループ化する。グループ管理部77は、グループに属する複数の図形のいずれかが選択されると、グループに属する全ての図形を編集対象とするよう、編集部104に指示する。編集部104は、拡大、縮小、回転、移動などの編集操作が行われると、グループに属する全ての図形に対して編集を適用させる。例えば、ユーザが、矩形140、矩形142、及び接続線144のいずれかを選択して右へ移動させると、図21に示すように、グループに属する矩形140、矩形142、及び接続線144が全て右へ移動される。
【0080】
従来の図形描画ソフトウェアなどにおいては、ユーザが、グループ化された図形のうち一部のみを編集したいときには、いったんグループ化を解除してから、編集対象の図形を選択して編集する必要があった。しかし、本実施の形態では、グループ化されている場合であっても、特定の操作を行うことで、グループに属する図形の一部のみを選択し、編集することを可能とする。特定の操作は、例えば、「Alt」キー、「Ctrl」キー、「Shift」キーなどの機能キー又は特殊キーなどを押下しながら図形をクリックする操作であってもよいし、ファンクションキーなどを押下した後につづいて図形をクリックする操作などであってもよい。
【0081】
図22に示すように、グループ管理部77は、例えば「Alt」キーを押下しながら矩形140をクリックする操作を受け付けると、グループに属する矩形140、矩形142、及び接続線144の全てを選択するのではなく、クリックされた矩形140のみを選択するよう編集部104に指示する。ここで、ユーザが、矩形140を右へ移動させると、図23に示すように、編集部104は、グループ全体を移動させるのではなく、選択された矩形140のみを右へ移動させる。このように、本実施の形態のデータ処理装置においては、いったんグループ化を解除してから一部の図形を選択して編集する必要がない上に、一部の図形を編集した後に再度グループ化する必要がない。したがって、ユーザの利便性を向上させることができる。
【0082】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0083】
実施の形態では、XML文書を処理する例について説明したが、本実施の形態のデータ処理装置100は、他のマークアップ言語、例えば、SGML、HTMLなどで記述された文書も同様に処理可能である。
【符号の説明】
【0084】
20 文書処理装置、22 主制御ユニット、24 編集ユニット、30 DOMユニット、32 DOM提供部、34 DOM生成部、36 出力部、40 CSSユニット、42 CSS解析部、44 CSS提供部、46 レンダリング部、50 HTMLユニット、52,62 制御部、54,64 編集部、56,66 表示部、60 SVGユニット、70ダイアグラムコンポーネント、71a S88処理ユニット、71b BPMN処理ユニット、71c フローチャート処理ユニット、72 処理部、74 ルール管理部、76 コア部、77 グループ管理部、80 VCユニット、82 マッピング部、84 定義ファイル取得部、86 定義ファイル生成部、100 データ処理装置、101 ツリー制御部、102 パンくずリスト制御部、103 表示部、104 編集部、105 図形管理部、106 リンク制御部。

【特許請求の範囲】
【請求項1】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、
前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、
前記編集部が、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第2図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第1図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるリンク制御部と、
を備えることを特徴とするデータ処理装置。
【請求項2】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第2図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第1図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、
をコンピュータに実行させることを特徴とするデータ処理方法。
【請求項3】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第2図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第1図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項4】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、
前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、
前記編集部が、処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第1図形と前記第2図形とを前記接続線で接続させるリンク制御部と、を備え、
前記リンク制御部は、前記第1図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第1図形と前記第2図形とを新たに接続線で接続させ、前記第1図形に接続されている接続線又は前記第1図形に設定されている接続点に応じて、前記第1図形に新たに接続点を設定することを特徴とするデータ処理装置。
【請求項5】
前記リンク制御部は、新たに接続された接続線の両側に新たな接続点を設定することを特徴とする請求項4に記載のデータ処理装置。
【請求項6】
前記リンク制御部は、新たに接続された接続線と隣接する接続線又は前記第1図形の端点との間に接続点が設定されていない場合、新たに接続された接続線と隣接する接続線又は前記第1図形の端点との間に新たに接続点を設定することを特徴とする請求項4に記載のデータ処理装置。
【請求項7】
前記リンク制御部は、前記第1図形に設定されている接続点が無くなった場合、接続されている接続線同士の間又は前記接続線と前記第1図形の端点との間に新たに接続点を設定することを特徴とする請求項4に記載のデータ処理装置。
【請求項8】
前記リンク制御部は、前記接続先が確定されたとき、前記第1図形に接続されている接続線を再配置し、再配置された接続線同士の間又は前記接続線と前記第1図形の端点との間に新たに接続点を設定することを特徴とする請求項4に記載のデータ処理装置。
【請求項9】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第1図形と前記第2図形とを前記接続線で接続させるステップと、を備え、
前記接続させるステップは、
前記第1図形に前記接続線をスナップさせる接続点を設定するステップと、
ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせるステップと、
前記接続先が確定されたとき、前記第1図形と前記第2図形とを新たに接続線で接続させ、前記第1図形に接続されている接続線又は前記第1図形に設定されている接続点に応じて、前記第1図形に新たに接続点を設定するステップと、
を含むことを特徴とするデータ処理方法。
【請求項10】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する機能と、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する機能と、
処理の分岐の開始又は終了を示す第1図形と、処理単位を示す第2図形との間を接続線で接続する編集指示を受け付けたとき、前記第1図形と前記第2図形とを前記接続線で接続させる機能と、をコンピュータに実現させ、
前記接続させる機能は、前記第1図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第1図形と前記第2図形とを新たに接続線で接続させ、前記第1図形に接続されている接続線又は前記第1図形に設定されている接続点に応じて、前記第1図形に新たに接続点を設定することを特徴とするデータ処理プログラム。
【請求項11】
平面上に配置された複数の図形を描画して表示画面を生成する表示部と、
前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行う編集部と、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するグループ管理部と、を備え、
前記グループ管理部は、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示することを特徴とするデータ処理装置。
【請求項12】
平面上に配置された複数の図形を描画して表示画面を生成するステップと、
編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、
ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、
をコンピュータに実行させることを特徴とするデータ処理方法。
【請求項13】
平面上に配置された複数の図形を描画して表示画面を生成するステップと、
編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、
ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4(a)】
image rotate

【図4(b)】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2009−238215(P2009−238215A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2009−49391(P2009−49391)
【出願日】平成21年3月3日(2009.3.3)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】