(実施例1)
図1は、本実施形態のシステム構成例を示す図である。図1に示すシステムは、文書管理サーバ101と、クライアントPC102とを備える。文書管理サーバ101とクライアントPC(Personal Computer)102とは、ネットワーク105を介して通信可能に接続されている。ネットワーク105は、例えば、インターネットや、イントラネット等である。図1中には1台のクライアントPC102がネットワーク105に接続されているが、本実施形態のシステムが複数台のクライアントPC102を備えるようにしてもよい。
文書管理サーバ101は、文書保存、検索など一般的な文書管理サービスを提供する。文書管理サーバ101は、文書管理用のデータベースを有する。クライアントPC102は、本実施形態の文書管理装置である。文書管理サーバ101とクライアントPC102とが単体の文書管理装置として機能するようにしてもよい。
クライアントPC102は、文書管理サーバ101が提供する文書管理サービスを利用する文書管理クライアントを備え、文書管理クライアントは、クライアントPC102上で動作する。文書管理クライアントは、例えば、Microsoft Windows(登録商標)やLinux(登録商標)などの各種オペレーティングシステム上で動作するアプリケーションである。文書管理クライアントが、クライアントPC102が備えるWebブラウザ上で動作するアプリケーションであってもよい。
なお、ネットワーク105がインターネットである場合に、文書管理サーバ101が、クラウドサービスとして機能するようにしてもよい。文書管理サーバ101がクラウドサービスとして機能する場合のシステム構成は、一般的なクラウドサービス構成と同様である。
図2は、図1に示すクライアントPCの構成例を示す図である。図2(A)は、クライアントPCのハードウェア構成を示す。文書管理サーバ101のハードウェア構成は、図2に示すクライアントPC102のハードウェア構成と同様である。
クライアントPC102には、例えば、キーボード204やマウス205といった、ポインティングデバイス等の入力装置、ディスプレイ装置213等の出力装置が接続される。ネットワークコントローラ(NC)210は、所定のネットワークインタフェース211を介してネットワーク105に接続され、他のネットワーク機器との通信制御処理を実行する。CPU201は、クライアントPC102全体を制御する。CPU201は、少なくとも1つのプロセッサを備える。
メモリ202は、CPU201がクライアントPC102の制御に用いるコンピュータプログラム(制御プログラム)を記憶する。この制御プログラムは、本実施形態の文書管理方法をクライアントPC102に実行させるコンピュータプログラムであり、CPU201に実行させることで図2(B)に示されるアプリケーション301を実現させる。また、この制御プログラムをCPU201が実行することで、後述の図4、6、9、12、14のフローチャートの処理は実行される。メモリ202は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)である。ビデオインタフェース212は、ディスプレイ装置213に画像を出力する。
I/Oインタフェース203は、キーボード204やマウス205の操作に従って入力された入力情報を受け取る。記憶装置208は、ハードディスクドライブ(HDD)209を備える。HDD209は、クライアントPC102が処理対象とするデータ(例えば、文書ファイルや画像データ)を記憶する。HDD209が、CPU201がクライアントPC102の制御に用いるコンピュータプログラムを記憶するようにしてもよい。記憶装置208が、シリコンドライブを備えるようにしてもよい。
CD−ROMドライブ206は、不揮発性のデータソースとして用いられる。相互接続バス207は、クライアントPC102が備える各処理部間の通信を仲介する。具体的には、相互接続バス207は、CPU201の指示に基づいて、クライアントPC102上で動作するMicrosoft Windows(登録商標)やLinux(登録商標)などのオペレーティングシステムに従う形で各処理部間の通信を仲介する。
図2(B)は、クライアントPCの機能構成図を示す。本実施形態の文書管理方法は、CPU201によって実現される図2(B)に示すアプリケーション301により実行される。アプリケーション301は、クライアントPC102上で動作する文書管理クライアントが備えるアプリケーションである。
アプリケーション301は、アプリケーションUI部302と、ライブラリ管理部303とを備える。アプリケーションUI部302は、図4を参照して後述する操作画面(アプリケーションUI)を構築し、表示する表示手段として機能する。また、アプリケーションUI部302は、ユーザからの各種入力操作の受け付けと、入力操作による処理結果の表示処理を実行する。例えば、アプリケーションUI部302は、ディスプレイ装置213の画面上でのユーザによるキーボード204やマウス205の操作に従って、文書操作の要求を受け取り、この文書操作の要求に応じた機能処理を実行する。文書操作の要求は、例えば、文書ファイルの検索要求である。
ライブラリ管理部303は、アプリケーション301が文書管理等の処理に用いるライブラリを管理する。ライブラリ管理部303は、ライブラリへの文書の格納や、ライブラリ内の文書の閲覧、更新、属性変更、検索などの各種文書操作を実行する。
ライブラリは、文書管理用のデータを保存するデータ保存手段である。例えば、ライブラリは、文書データ(文書ファイル)と、文書属性とを保存する。アプリケーション301が利用するライブラリには、データの保存場所に応じた2種類の形態が存在する。1つ目は、アプリケーション301がローカルのHDD209にデータ保存領域を作成し、このデータ保存領域においてアプリケーション301自体がデータを管理するローカルライブラリの形態である。ライブラリがローカルライブラリの形態をとる場合、本実施形態のシステムは、文書管理サーバ101が省略され、クライアントPC102のみを備える構成をとることができる。
2つ目は、アプリケーション301が、文書管理サーバ101が提供する文書管理サービスに文書管理を委任する共有ライブラリの形態である。この共有ライブラリの形態では、ライブラリ管理部303は、アプリケーションUI部302から受け取った文書操作の要求を文書管理サーバ101に渡す。そして、ライブラリ管理部303は、文書操作の要求に応じた処理結果を文書管理サーバ101から受け取って、アプリケーションUI部302に渡す。
ライブラリが共有ライブラリの形態をとる場合、ライブラリ管理部303が、アプリケーション301と文書管理サーバ101の文書管理サービスとの間でデータを送受信できる構成であればよい。従って、共有ライブラリの形態は、文書管理クライアントがWebブラウザ上で動作する構成をとる場合には、好適な形態である。インタフェース305は、ライブラリ管理部303と、記憶装置208に構築されたローカルライブラリとを接続するインタフェースである。インタフェース305が、ライブラリ管理部303と文書管理サーバの文書管理サービスとを接続するインタフェースであってもよい。
図3は、アプリケーションUIの一例を示す図である。400はアプリケーションUIのメインウインドウである。ナビゲーションペイン401は、アプリケーションで登録したライブラリと、ライブラリ下に配置されるフォルダが表示される表示領域である。ライブラリ、フォルダは、電子文書を格納する電子文書格納部である。電子文書は、例えば文書ファイルである。図3に示す例では、ライブラリ411乃至413と、フォルダ414および415とが表示されている。また、決裁書に関する電子文書が格納されているフォルダ414が、現在の場所として選択されている。アプリケーション301が、ユーザの操作に応じて、ライブラリまたはフォルダを選択する。ユーザが、ナビゲーションペイン401上で、ライブラリまたはライブラリ下に配置されるフォルダを選択することで、現在の場所を移動することができる。
ファイルリストビューペイン402は、ナビゲーションペイン401上で選択されている場所に格納されている文書フォルダを表示する領域(第1の領域)である。すなわち、アプリケーション301は、電子文書格納部に含まれる電子文書を表示画面上の第1の領域に表示する。
この例では、ファイルリストビューペイン402上に、7つの文書ファイルがリストされている。選択枠403は、選択枠403で囲まれた文書ファイルが選択されていることを示す。図3では、「決裁書A.doc」というファイル名の文書ファイルが選択されている。ユーザが、マウス205でファイルリストビューペイン402上に表示されている文書ファイルをシングルクリックすると、アプリケーション301が、当該文書ファイルを選択枠403で囲って選択状態にする。この例では、マウスポインタ430は、選択された文書ファイルの近傍に位置している。ユーザがキーボード204のシフトキーを押下しながら、マウス205により、選択したい文書ファイルを順にシングルクリックしていくことを通じて、アプリケーション301が複数の文書ファイルを選択状態にするようにしてもよい。
プロパティペイン404は、ファイルリストビューペイン402上で選択されている一つの文書ファイルの属性情報を表示する領域(第2の領域)である。すなわち、アプリケーション301は、第1の領域(ファイルリストビューペイン402)に表示される電子文書のうち、選択された電子文書の属性情報を表示画面上の第2の領域に表示する。図3に示す例では、プロパティペイン404は、「決裁書A.doc」という文書ファイル名の文書ファイルの属性情報を表示している。属性情報は、属性項目と属性値とを含む。属性項目は、例えば、名前、作成日時、サイズ等である。属性値は、属性項目に対応する値である。図3では、名前に対応する属性値が決裁書A.docである。作成日時に対応する属性値が2010/06/16 14:35:45である。また、サイズに対応する属性値が522、752バイトである。
プロパティペイン404で設定可能な項目は、ライブラリ毎に予め定義されている。設定可能な項目は、ライブラリの機能によって可変である。例えば、ローカルライブラリであれば、オペレーティングシステムのファイルシステムで設定可能な属性と同じ項目が設定可能である。また、共有ライブラリであれば、文書管理サーバ101側の設定で任意にカスタマイズされた属性と同じ項目が設定可能である。
ライブラリ管理部303は、ライブラリの能力として属性項目を管理し、ライブラリに応じて属性項目、属性値の情報を取得し、アプリケーションUI部302に渡す機能を有する。ファイルリストビューペイン402で複数の文書ファイルが選択されている場合、プロパティペイン404には属性が表示されず、選択中の文書ファイルの数が、例えば「<2個の文書を選択中>」のように表示される。
また、プロパティペイン404に表示されている属性項目および属性値は、マウス205の操作によって、キープトレイ421にドラッグ&ドロップすることが可能である。プロパティペイン404からキープトレイ421へのドラッグ&ドロップは、以下のようにして行われる。ユーザが、マウス205で属性項目を示す文字列または属性値を示す文字列をクリックし、クリック状態のまま(ドラッグ)、クリックした文字列をキープトレイ421内まで移動させ、キープトレイ421内でクリックを放す(ドロップする)。
ボタン416は、プロパティペイン404上に表示されている属性値を編集するためのボタンである。ユーザがボタン416を押下して、編集状態にすることで、プロパティペイン404上で属性値を変更することが可能となる。プロパティペイン404で変更可能な属性は一部の属性であり、変更不可な属性もある。主にシステムによって値が管理され、更新される属性は、編集不可な属性であり、ボタン416を押下してプロパティペインを編集状態に遷移させても、これらの属性の項目値は、編集不可状態のままとなる。例えば、文書の位置を示すURL属性、文書の作成日時を示す作成日時属性、文書の更新日時を示す更新日時属性が変更不可な属性として挙げられる。プロパティペイン404で変更可能な属性であるか否かを示す情報は、変更可否情報として予め記憶手段に記憶されている。
パネル407は、ペインやウィンドウの表示・非表示を切り替える。パネル407が有するボタン408は、ナビゲーションペイン401の表示・非表示を切り替える。ボタン409は、プロパティペイン404の表示・非表示を切り替える。ボタン420は、キープトレイ421の表示・非表示を切り替える。
キープトレイ421は、属性オブジェクトを一時オブジェクトとして保持しておく領域(第3の領域)である。属性オブジェクトは、文書ファイルの属性情報を示すオブジェクトである。キープトレイ421は、位置を任意に移動可能な浮動ウィンドウであり、メインウインドウ400上の他のユーザインタフェースコンポーネントの表示を妨げないよう位置を変更させることが可能である。ごみ箱422は、キープトレイ上に作成された一時オブジェクトを破棄するために用いられる。
以下に、図4乃至7を参照して、本発明の実施例1について説明する。図4は、キープトレイへの属性オブジェクトの生成処理の例を説明するフローチャートである。このフローチャートの処理は、メモリ202に記憶される制御プログラムをCPU201がメモリ202上で展開、実行することで実行される。まず、アプリケーションUI部302が、プロパティペイン404上に表示されている属性情報がキープトレイ421上へドラッグ&ドロップされたことを検知する(ステップS1)。具体的には、アプリケーションUI部302は、この属性情報がマウス205でドラッグされ、キープトレイ421の表示領域上にドロップされる操作がされたことを検知する。
次に、アプリケーション301が、記憶手段に記憶された変更可否情報に基づいて、ドラッグ&ドロップされた属性情報がプロパティペインで変更可能な属性を示すかを判断する(ステップS2)。ドラッグ&ドロップされた属性情報がプロパティペインで変更可能な属性を示さない場合は、処理を終了する。ドラッグ&ドロップされた属性情報がプロパティペインで変更可能な属性を示す場合、アプリケーション301が、キープトレイ421上に新規の属性オブジェクトを生成する(ステップS3)。
次に、アプリケーション301が、キープトレイ421上で属性がドロップされた位置に、ステップS3において生成した属性オブジェクトを配置する(ステップS4)。続いて、アプリケーション301が、キープトレイ421上に新規作成した属性オブジェクトに、ドロップされた属性情報が含む属性項目と属性値とをコピーする(ステップS5)。これにより、ドロップされた属性情報に対応する属性オブジェクトが生成される。つまり、アプリケーション301は、プロパティペイン上の属性情報の表示位置でカーソルがドラッグされ、カーソルが表示画面上を移動してキープトレイ421上(第3の領域上)でドロップされた場合、ドロップされた属性情報を示す属性オブジェクトを生成する。
次に、アプリケーション301が、キープトレイ421上に新規作成した属性オブジェクトに、表示用のラベルを設定し(ステップS6)、処理を終了する。表示用のラベルは、コピーされた属性項目と属性値とを含む。表示用のラベルを設定した後、アプリケーション301は、ドロップされた属性情報に対応する属性オブジェクトをキープトレイ421上に表示する。すなわち、アプリケーション301は、表示画面上におけるカーソル操作に従って、プロパティペイン404に表示されている属性情報に対応する属性オブジェクトを生成してキープトレイ421に表示する属性オブジェクト生成手段である。本実施形態では、カーソル操作はカーソルのドラッグ/ドロップである。
図5は、キープトレイに属性オブジェクト表示された状態におけるアプリケーションUIを示す図である。プロパティペイン404から、属性項目「承認者」、属性値「Takeda」という属性情報601がキープトレイ421にドロップされた場合を想定する。アプリケーション301は、属性項目「承認者」、属性値「Takeda」という属性情報に対応する属性オブジェクト602を生成して、キープトレイ421内に表示する。属性オブジェクト602には、表示用のラベルとして、属性のコピーであることを示す「プロパティ」と、保持する属性項目を示す「承認者」と、保持する属性値を示す「Takeda」とが設定されている。
図6は、キープトレイ内に表示された属性オブジェクトを用いた属性設定処理の例を説明するフローチャートである。このフローチャートの処理は、メモリ202に記憶される制御プログラムをCPU201がメモリ202上で展開、実行することで実行される。まず、アプリケーションUI部302が、キープトレイ421内に表示された属性オブジェクトが選択されたことを検知する(ステップS11)。例えば、属性オブジェクトがマウス205でシングルクリックされると、アプリケーションUI部302が、属性オブジェクトが選択状態になったことを検知する。
次に、アプリケーション301が、ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっているかを判断する(ステップS12)。ファイルリストビューペイン402上で選択状態になっている文書ファイルがない場合は、処理を終了する。
ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっている場合、アプリケーション301が、以下の処理を実行する。アプリケーション301は、ステップS11において選択されたことが検知された属性オブジェクトが示す属性情報を、ファイルリストビューペイン402上で選択状態になっている文書ファイルが有する属性情報に上書き設定する(ステップS13)。
すなわち、アプリケーション301は、キープトレイ421に表示された属性オブジェクトが選択された場合に、以下の処理を実行する属性設定手段として機能する。アプリケーション301は、該属性オブジェクトの選択時にファイルリストビューペイン402上すなわち第1の領域上で選択されている電子文書の属性情報を上記選択された属性オブジェクトが示す属性情報で上書き設定する。
図7は、属性オブジェクトが示す属性情報を文書ファイルの属性情報に上書き設定する処理を説明する図である。図7の例では、ファイルリストビューペイン402上で、3つの文書ファイルが選択状態となっている。具体的には、「決裁書B.doc」という文書ファイル名を持つ文書ファイル811、「決裁書C.doc」という文書ファイル名を持つ文書ファイル812、「決裁書D.doc」という文書ファイル名を持つ文書ファイル813が選択状態になっている。この状態で、キープトレイ421内の、属性項目「承認者」と属性値「Takeda」とを含む属性情報を示す属性オブジェクト602がマウスポインタ430でシングルクリックされて選択された場合を想定する。アプリケーション301は、文書ファイル811乃至813が有する属性情報が含む属性項目「承認者」の属性値を、属性オブジェクト602が保持する属性値「Takeda」に上書き設定する。
実施例1によれば、ファイルリストビューペイン402上で選択された複数の文書ファイルの属性情報を、属性オブジェクトが保持する属性情報で一括して上書き設定することができる。従って、ユーザが、属性値を設定したい文書ファイルの数だけ同じ操作を繰り返す必要がなくなる。
また、実施例1によれば、ドラッグ&ドロップという簡易なカーソル操作によって、キープトレイ421に、属性オブジェクトとして、文書ファイルに設定したい属性の属性項目と属性値とを生成することができる。従って、ユーザが、文書ファイルに設定したい属性項目と属性値を忘れてしまうことで属性情報の書き換えができなくなるリスクを低減できる。また、実施例1によれば、キープトレイ421に保持された属性オブジェクトを任意のタイミングで呼び出して、属性情報のコピー先の文書ファイルに設定することができる。従って、ユーザが、属性情報のコピー元とコピー先の文書ファイルとを続けて指定する必要がなくなる。
図8は、実施例1の変形例を説明する図である。この例では、アプリケーション301は、ユーザの操作に応じて、属性オブジェクトが保持する属性値をキープトレイ上で変更する。コンテキストメニュー1201は、属性オブジェクトを編集するためのメニューである。
ユーザが属性オブジェクトが保持する属性値を変更する場合、ユーザは、属性オブジェクト上でマウス205を右クリックする。これにより、アプリケーション301が、当該属性オブジェクトの近傍にコンテキストメニュー1201を表示する。ユーザが、マウス205を介して「値の変更」1202を選択することによって、アプリケーション301は、属性オブジェクト602に対応する属性情報の含む属性値を編集可能状態とする。ユーザが、キーボード204を介して当該属性値として任意の値を入力すると、アプリケーション301が、属性値を上記入力された値に変更する。
アプリケーション301は、属性オブジェクト602の近傍に表示されたコンテキストメニュー1201を用いたユーザの操作に応じて、キープトレイ421内の複数の属性オブジェクトをグループ化することもできる。ユーザが、マウス205を介して「グループ化」1203を選択することによって、アプリケーション301がグループ化モードに入り、他の属性オブジェクト(図8に示す例では属性オブジェクト603)をマウス205の左クリックで選択できるようにする。
ユーザが、マウス205を介して属性オブジェクト603を選択した後、キープトレイ421の任意の位置でマウス205の右クリックすると、アプリケーション301が、当該位置の近傍でコンテキストメニューを表示する。そして、アプリケーション301が、このコンテキストメニューが含む「グループ化終了」1204を呼び出し、グループ化を終了する。これにより、アプリケーション301が、属性オブジェクト602と属性オブジェクト603とを、2つの属性情報に対応した一つの属性オブジェクトとしてグループ化する。
ユーザが、グループ化された属性オブジェクトをマウス205でシングルクリックすると、アプリケーション301は、グループ化された属性オブジェクトを選択状態にする。アプリケーション301は、図6に示すフローチャートで示す処理と同様の処理を行って、グループ化された属性オブジェクトが保持する全ての属性を、ファイルリストビューペイン402上で選択されている電子文書の属性に上書き設定することができる。従って、アプリケーション301は、属性値の二重設定を避けるために、同じ属性項目を持つ属性オブジェクトが同一のグループにグループ化できないようにする。すなわち、アプリケーション301は、キープトレイ421に表示された属性オブジェクトのうち、互いに属性項目が異なる属性情報を示す複数の属性オブジェクトを第1の属性オブジェクトとしてグループ化するグループ化手段として機能する。
また、アプリケーション301は、コンテキストメニュー1201を用いたユーザの操作に応じて、属性オブジェクトをキープトレイ421上で複製することができる。ユーザが、属性オブジェクト602の近傍に表示されたコンテキストメニュー1201が含む「複製」1205をマウス205で右クリックすると、アプリケーション301が、属性オブジェクト602の複製をキープトレイ421上に生成する。
(実施例2)
以下に、図9および図10を参照して、本発明の実施例2について説明する。図9は、キープトレイ421に生成された属性オブジェクトを用いた属性設定処理の例を説明するフローチャートである。このフローチャートの処理は、メモリ202に記憶される制御プログラムをCPU201がメモリ202上で展開、実行することで実行される。アプリケーションUI部302が、キープトレイ421内に表示された第1の属性オブジェクトが、キープトレイ421内に表示された第2の属性オブジェクトにドラッグ&ドロップされたことを検知する(ステップS21)。ステップS21における処理について、図10を参照して以下に説明する。
図10は、キープトレイ上に複数の属性オブジェクトが生成されている状態におけるアプリケーションUIの例を示す図である。キープトレイ421上には、属性項目「承認者」と属性値「Suzuki」とを含む属性情報を保持する属性オブジェクト1001と、属性項目「承認者」と属性値「Takeda」とを含む属性情報を保持する属性オブジェクト602とが存在している。アプリケーション301は、キープトレイ421において第1の属性オブジェクトである属性オブジェクト602の表示位置でカーソルがドラッグされ、第2の属性オブジェクトである属性オブジェクト1001の表示位置でドロップされたことを検知する。
次に、アプリケーション301が、ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっているかを判断する(ステップS22)。ファイルリストビューペイン402上で選択状態になっている文書ファイルがない場合は、処理を終了する。ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっている場合は、ステップS23に進む。図10に示すアプリケーションUIでは、ファイルリストビューペイン402上で、3つの文書ファイル1011乃至1013が選択状態になっている。従って、処理がステップS23に進む。
ステップS23において、アプリケーション301は、ファイルリストビューペイン402上で選択状態となっている文書ファイルの中からドロップ先の第2の属性オブジェクトが保持する属性項目および属性値を有する文書ファイルを検索する(ステップS23)。すなわち、アプリケーション301は、ドロップ時にファイルリストビューペイン402上で選択されている文書ファイルのうち、ドロップ先の属性オブジェクトである第2の属性オブジェクトが示す属性情報に対応する文書ファイルを検索する。例えば、アプリケーション301は、図10中の文書ファイル1011乃至1013のうち、属性オブジェクト1001が保持する属性項目「承認者」と属性値「Suzuki」を有する文書ファイルを検索する。例えば、図10に示す文書ファイル1011と1012が、検索によって得られるものとする。
次に、アプリケーション301が、ステップS23における検索によって1以上の文書ファイルが得られたかを判断する(ステップS24)。検索によって1以上の文書ファイルが得られなかった場合は、処理を終了する。ステップS23における検索によって1以上の文書ファイルが得られた場合、アプリケーション301が以下の処理を実行する。アプリケーション301が、ステップS23における検索により得られた文書ファイルの属性情報を、ステップS21においてドラッグ&ドロップされたことが検知された第1の属性オブジェクトが示す属性情報で上書き設定する(ステップS25)。
ステップS25において、アプリケーション301は、上記検索によって得られた文書ファイル1011と1012の属性情報が含む属性項目「承認者」に対応する属性値「Suzuki」を、属性値「Takeda」に上書き設定する。
実施例2によれば、ユーザが変更したい属性(変更元の属性)を保持した属性オブジェクトを、変更先の属性を保持した属性オブジェクトにドラッグ&ドロップすることにより、変更先の属性を持つ文書ファイルについてのみ、変更元の属性を上書き設定できる。
従って、ユーザが、属性を変更する前に、属性を変更したい文書の属性を指定した属性検索をする手間がなくなる。その結果、特定の属性項目の特定の属性値だけを簡易に一括変更することができる。また、実施例2によれば、差し替えたい属性を持つ属性オブジェクトを指定できるため、本来、属性を差し替えるべきではない属性を持つ文書ファイルに、誤って新たな属性を設定してしまうというミスを防ぐことができる。
図11は、実施例2の変形例を説明する図である。図11に示すアプリケーションUI内のキープトレイ421において、属性オブジェクト1102と属性オブジェクト1103がグループ化されている。グループ枠1104は、グループ枠1104で囲まれた属性オブジェクトが一つのグループとしてグループ化されていることを示す。この例では、属性オブジェクト1102と属性オブジェクト1103とがグループ化されている。属性オブジェクト1102は、属性項目「承認者」と属性値「Takeda」とを保持する。属性オブジェクト1103は、属性項目「ステータス」と属性値「承認」とを保持する。グループハンドル1105は、ユーザがグループ化された属性オブジェクトをドラッグ&ドロップするのに用いる指標情報である。キープトレイ421内には、他の属性オブジェクトとして、属性項目「作成者」と属性値「Umezawa」とを保持する属性オブジェクト1101が存在する。
ユーザが、マウス205でグループハンドル1105をドラッグし、属性オブジェクト1101にドロップすると、アプリケーション301が、前述した図9に示すフローチャートに従う処理を実行する。その結果、ファイルリストビューペイン402上で選択状態となっている文書ファイル1111乃至1113のうち、属性項目「作成者」と属性値「Umezawa」という属性を持つ文書ファイルのみについて、一括して以下のように属性が変更される。すなわち、当該文書ファイルが保持する属性項目「承認者」が「Takeda」に上書き設定される。また、当該文書ファイルが保持する属性項目「ステータス」が「承認」に上書き設定される。
実施例2の変形例によれば、ドロップ先の属性オブジェクトが示す属性情報を持つ文書ファイルについてのみ、ドラッグ&ドロップされた複数の属性オブジェクトが示す属性情報を一括して上書き設定することができる。
(実施例3)
以下に、図12乃至図14を参照して、本発明の実施例3について説明する。図12は、キープトレイのサブ領域への属性オブジェクトの表示処理の例を説明するフローチャートである。このフローチャートの処理は、メモリ202に記憶される制御プログラムをCPU201がメモリ202上で展開、実行することで実行される。サブ領域は、キープトレイ内の所定の領域(第4の領域)である。まず、アプリケーションUI部302が、キープトレイ421内に表示された属性オブジェクトが選択されたことを検知する(ステップS31)。
図13は、実施例3において表示されるアプリケーションUIの例を示す図である。キープトレイ421上には、属性項目「承認者」、属性値「Takeda」を保持する属性オブジェクト602が存在している。ユーザが、マウス205を介して属性オブジェクト602をシングルクリックすると、アプリケーションUI部302が、属性オブジェクト602を選択状態にする。従って、アプリケーションUI部302が、属性オブジェクト602が選択されたことを検知する。
図12に戻って、アプリケーション301が、ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっているかを判断する(ステップS32)。図13の例では、文書ファイル1421乃至1427の7つの文書ファイルが選択状態になっている。
ファイルリストビューペイン402上で選択状態になっている文書ファイルがない場合は、処理を終了する。ファイルリストビューペイン402上で一つ以上の文書ファイルが選択状態になっている場合、アプリケーション301が、以下の処理を実行する。
アプリケーション301は、ファイルリストビューペイン402上で選択されている文書ファイルの属性情報が含む属性値のうち、キープトレイ上で選択された属性オブジェクトが保持する属性項目に対応する属性値を検索して取得する(ステップS33)。すなわち、アプリケーション301は、キープトレイに表示された属性オブジェクトが選択された場合に、以下の処理を実行する。アプリケーション301は、属性オブジェクトの選択時にファイルリストビューペイン402上で選択されている文書ファイルの属性情報が含む属性値のうち、選択された属性オブジェクトが含む属性項目に対応する属性値を取得する。図13に示す例では、アプリケーション301は、文書ファイル1421乃至1427が含む属性値のうち、属性オブジェクト602が保持する属性項目「承認者」に対応する属性値を検索して取得する。文書ファイルのなかには、属性情報が属性値が設定されていない属性項目を含む場合がある。この場合には、アプリケーション301は、「設定なし」を検索結果として取得する。この例では、例えば、「設定なし」、「Suzuki」、および「Umezawa」が取得される。
次に、アプリケーション301が、上記ステップS33において取得した属性値に対応する属性値オブジェクトをメモリ202上に作成する(ステップS34)。属性値オブジェクトは、属性値を保持するオブジェクトである。アプリケーション301は、取得した検索結果が「設定なし」である場合は、設定なしを示す属性値オブジェクトを作成する。また、アプリケーション301は、取得した属性値が重複している場合、当該重複する属性値を含む一つの代表的な属性値オブジェクトを作成する。アプリケーション301は、ステップS31で選択状態となったことが検知された属性オブジェクトが保持する属性値と同じ値を持つ属性値が取得された場合には、この属性値に対応する属性値オブジェクトは作成しない。
次に、アプリケーション301が、キープトレイのサブ領域をキープトレイ上に開いて表示する(ステップS35)。図13に示す例では、1401がキープトレイ421のサブ領域である。アプリケーション301は、図13中に示すセパレータ1402、開閉切り替えボタン1403も表示する。セパレータ1402は、キープトレイ内の属性オブジェクトを表示する領域1404と、サブ領域1401とを分離する。切り替えボタン1403は、キープトレイでのサブ領域の表示を開閉するボタンである。サブ領域が開かれた後、ユーザが開閉切り替えボタン1403をマウス205を介して押下することにより、アプリケーション301が、サブ領域を一時的に閉じる。
図12に戻って、アプリケーション301が、属性名ラベルをキープトレイのサブ領域に表示する(ステップS35)。属性名ラベルは、属性項目を示す。アプリケーション301は、属性名ラベルの近傍に、サブ領域に表示される属性値オブジェクトが保持する属性値が対応する属性項目を表示する(ステップS36)。図13に示す例では、属性名ラベル1410の横に、属性項目「承認者」が表示される。
次に、アプリケーション301が、メモリ202上に作成した属性値オブジェクトをキープトレイのサブ領域に表示する(ステップS37)。例えば、アプリケーション301が、サブ領域1401に属性値「設定なし」に対応する属性値オブジェクト1411、属性値「Suzuki」に対応する属性値オブジェクト1412、属性値「Umezawa」に対応する属性値オブジェクト1413を表示する。すなわち、アプリケーション301は、ステップS33において取得した属性値をサブ領域に表示する属性値表示手段として機能する。
図12を参照して説明したフローチャートに従う処理によって開かれたキープトレイのサブ領域1401は、属性オブジェクト602の選択状態が解除になるまで、開閉切り替えボタン1403の操作の有無に関わらず、キープトレイ421上に存在する。属性オブジェクトの選択状態は、ユーザが、属性オブジェクトを再度マウス205でシングルクリックするか、またはキープトレイ421外のオブジェクトを操作することにより解除される。属性オブジェクトの選択状態が解除された場合、アプリケーション301は、キープトレイのサブ領域1401の表示をキープトレイ421上から削除して、処理を終了する。
図14は、実施例3における属性設定処理の例を説明するフローチャートである。このフローチャートの処理は、メモリ202に記憶される制御プログラムをCPU201がメモリ202上で展開、実行することで実行される。まず、アプリケーションUI部302が、キープトレイ上で選択状態となった属性オブジェクトがサブ領域内の属性値オブジェクトの一つにドラッグ&ドロップされたことを検知する(ステップS41)。例えば、アプリケーションUI部302が、図13に示す属性オブジェクト602がサブ領域1401内の属性値オブジェクト1412にドラッグ&ドロップされたことを検知する。
次に、アプリケーション301が、ドラッグ&ドロップされた属性オブジェクトが保持する属性項目について、ドロップ先の属性値オブジェクトが保持する属性値を持つ文書ファイルを検索する(ステップS42)。すなわち、アプリケーション301は、この文書ファイルを、ファイルリストビューペイン上で選択状態の文書ファイルから抽出する。例えば、アプリケーション301が、図13に示す属性オブジェクト602が保持する属性項目「承認者」について、ドロップ先の属性値オブジェクト1412が保持する属性値「Suzuki」を持つ文書ファイルを検索する。アプリケーション301は、この文書ファイルを文書ファイル1421乃至1427のなかから抽出する。すなわち、アプリケーション301は、キープトレイ421において選択された属性オブジェクトの表示位置でカーソルがドラッグされ、サブ領域における属性値の表示位置でドロップされた場合に、以下の処理を実行する。アプリケーション301は、ファイルリストビューペイン402上で選択されている文書ファイルのうち、カーソルがドロップされた位置に表示されている属性値を含む属性情報に対応する文書ファイルを検索する。
図14に戻って、アプリケーション301が、抽出した文書ファイルの属性情報を、ドラッグ&ドロップされた属性オブジェクトが保持する属性項目および属性値で上書き設定する(ステップS43)。すなわち、アプリケーション301は、検索された文書ファイルの属性情報をキープトレイ421上で選択された属性オブジェクトが示す属性情報で上書き設定する手段として機能する。
実施例3によれば、ユーザがサブ領域に表示された属性値オブジェクトに、選択状態の属性オブジェクトをドラッグ&ドロップすると、アプリケーション301が、以下の処理を実行する。アプリケーション301は、ファイルリストビューペイン402上で選択状態の文書ファイルのうち、ドロップ先の属性値オブジェクトの属性値を持つ文書ファイルについて、ドラッグ&ドロップされた属性項目と属性値とを上書き設定する。
従って、ユーザが、属性を変更する前に、属性を変更したい文書の属性を指定した属性検索をする手間がなくなる。その結果、特定の属性項目の特定の属性値だけを簡易に一括変更することができる。また、実施例3によれば、差し替えたい属性を指定できるため、本来差し替えるべきではない属性を持つ文書ファイルに、誤って新たな属性を設定してしまうというミスを防ぐことができる。また、実施例3によれば、従って、実施例2とは異なり、キープトレイに同一の属性項目を持つ属性オブジェクトを2つ用意しておく必要はない。なお、上述した実施例3において、ドラッグ&ドロップは属性オブジェクト602に対して行われたが、サブ領域で表示される属性値オブジェクトに対して行っても良い。また、サブ領域で表示される属性値オブジェクトをドラッグし、属性オブジェクト602上でドロップしても良い。これにより、ユーザにより簡便に属性情報の差し替えを行わせることができる。
(その他の実施例)
以上の実施例では、属性オブジェクト602がシングルクリックされたときに、ファイルが選択されていなければ属性オブジェクトの属性設定処理が実行されない。その他の実施例として、属性オブジェクト602がシングルクリックされた後にファイルがマウス205によって選択された場合に、アプリケーション301が、この属性設定処理を実行するようにしても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。