|

1 システム構成

図2−1:システム構成図
2 Widget
Sever
Widget
Severでは、起動しているWidgetを管理しており、Widget同士の接触判定や、Widget間のデータの中継を行っている。また、検索Widgetから送られてくるクエリをもとに、Spotlight用のクエリを生成し、検索を行う。またその検索結果をWidgetで利用できる形に変換し、それを検索Widgetに送る。
Clientとのやりとりは、プロセス間通信を用いて行っている。
開発には、Objective-Cを利用している。
3 Client
ClientはWidgetのプラグインとして利用する。Clientは、Widget本体と、Widget Severとのデータのやりとりを中継する。そのために、Widgetから送られてくるデータをServerで利用しやすい形に変換している。また、Widgetの座標や、大きさなどの状態を保持している。
開発には、Objective-Cを利用。
4 Widget
4.1
検索Widget
SpotlightをDashboard上から利用するWidget。このWidgetにメタデータを表すWidgetを重ねると、重ねたWidgetのメタデータ属性をクエリに追加する。検索結果は、Dashboard上に、リスト表示で出現する。結果をマウスでドラッグするとアイコンが拡大表示され、Dashboard上に自由に配置することができる(図2−2参照)。アイコンをダブルクリックすると、Dashboardの背後で、ファイルが開かれる。
開発言語にJavaScriptと、Objective-Cを利用した。

図2−2:検索Widget
4.2
カレンダーWidget
検索によく利用するメタデータの一つとして、日付がある。カレンダーWidgetは通常、現在の日付を表示する。過去の日付を指定して検索に利用する場合、パネルを開いて日付を選択し、検索Widgetに重ねる(図4.2参照)。月をまたがった日付選択ができるように、カレンダーを月ごとに表示するのではなく、月の表示が連なっているロール式カレンダーになっている。
また、検索Widgetの検索結果のアイコンを接触させると、そのファイルが作成された日付が表示される。
開発には、JavaScriptを用いて開発した。

図2−3:カレンダーWidget
4.3 Widget の連携
既存のWidgetを連携できるように拡張した。これにより、Widgetにおいて選択された文字列を、他のWidgetへコピーすることができる。またWidgetの連携をより便利にするため、SafariCopyWidgetを作成した(図4.3参照)。このWidgetは、Safari(Webブラウザ)で選択した、文字列を表示するWidgetで、これ単体では、あまり意味をなさない。しかし、このWidgetと、辞書Widget(英辞郎、Wikipedia Widgetなど)を接触させたままにしておくと、ブラウザ上の文字列を選択し、Dashboardを利用すると同時に、その意味を表示する。つまり、知りたい単語、言葉を選択するだけで、すぐに意味を知ることができる。
開発には、JavaScript、Objective-C、AppleScriptを用いている。

図2−4:SafariCopyWidget
|