2006/06/15 現在の最新版である Ver.8.1.0 では、スマート学習をはじめ、オプションの切り替え機能など、実に様々な機能が搭載されている。 しかし、これらの機能は「利用者変更機能」との整合性がとれていない。
これは、現在までの様々な機能追加において、「利用者変更機能」を考慮していなかったためである。
現状ではあくまでも「利用者変更機能」は「利用者毎の履歴を切り替えるための機能」であるが、ユーザが期待しているのは「利用者を切り替える機能」であり、明らかに機能不足(名が体を表していない)である。
そこで、各種機能との整合性を確保するために、「利用者変更機能」の再構築を行う。
現状での問題点・要望をまとめると下表のようになる。
項番 | 機能 | 問題点・要望 | 実装上の問題 |
1 | スマート学習リスト | 利用者を変更してもスマート学習リストが切り替わらない | スマート学習リストが利用者毎に用意されていない |
2 | オプション切り替え機能 | 利用者の変更時に、オプションも自動的に切り替わって欲しい | 「利用者とオプションファイルとの対応付け」が必要 |
3 | スキン機能 | 利用者の変更時に、スキンも自動的に切り替わって欲しい | 2を実装すれば実現可能 |
4 | 学習モード | 利用者の変更時に、学習モードも自動的に切り替わって欲しい | 利用者毎の「学習モード」を保存する機能が必要。 |
下記の手順で実装を行っていく。
「実装手順」から「利用者変更画面」について検討する。
まず、利用者のエントリー毎に「プロパティ」を設定できるようにする。
「プロパティ」には、
の項目があれば十分。
欲を言えば、この画面に「総学習時間」や「平均学習時間」、学習数などを表示できる と面白いかもしれないが、それは別の画面(統計、のような名前か?)に表示すべきだ ろう。
実際にはこれらに加えて、
基本方針
利用者毎に「ユーザIDに対応した既定のパス」でスマート学習リストを割り当てる。
例えば、
SmartLearning/user1/1 SmartLearning/user2/1 SmartLearning/user3/1
のようなパスを割り当てる。
項目としては、
の2つを保存する。
データベーススキーマアップデート時の処理
既存の利用者毎に下記の処理を行う
起動時の処理
現在は、スマート学習リストIDは「決め打ち」だが、これを「動的に取得する」ように修正する。
これは、「user_propertyテーブル」からユーザIDに対応するスマート学習リストIDを取得する形になる。
もし、「ユーザIDに対応するスマート学習リストID」が存在しない場合は、自動的に「既定のパス」でスマート学習リストを生成し、その問題集IDを利用する。
利用者切り替え時の処理
利用者変更画面で OK ボタン押下後の処理は下記の通り。
利用者新規作成時の処理
利用者変更画面で「利用者の新規作成」を行ったときの処理は下記の通り。
実際に必要になった際に、動的に「既定のパス」でスマート学習リストが生成され、その問題集IDが利用されることになる。