MiG Calendar について

Javaアプリケーションに予定表の機能を追加

MiG Calendarを利用することで、時間軸に基づく各種の視覚化を、最小限の作業によりアプリケーションに追加することが可能になります。たとえば、Outlook やAppleのCalのような完璧なカレンダーアプリケーションを作成し、TVスケジュールやフライト情報などのアプリケーションに加えることができます。さらに、同じコンポーネントを、異なる手法で用いることで、すべてのアプリケーションに対応できます。

機能:

柔軟なコンポーネント構造 - 1つのコンポーネントクラスが、すべてのタイプのカレンダーを操作します。Decoratorが階層化されている場合には、すべての可視化が可能な要素が、利用を通じて追加されていきます。それらは単に設定にかかわる問題であるため、1つのタイプから別のタイプへの移行も容易です。日/週/月/年のビューさえ、同じコンポーネントに異なる設定を施した結果です。

完全な再帰処理により、iCalendar(RFC 2445)仕様における全てのアスペクトがサポートされます。そこに含まれるカスタムな再帰には、サブの再帰が含まれる場合と、除かれる場合があります。

日付と期間のための高度な処理を行う日付ユーティリティパッケージが、たとえば期間を過ぎたアイテムの繰返し処理や、日付境界の丸めなどを計算します。

マウスインタラクションによる効果とイベントを用いて、ヘッダー周りのサポートは完璧に処理されます。ヘッダーと日付エリアの間であっても、カスタムコンポーネントを挿入するオプションのように、自動的なスクロールとコーナーを塗りつぶすためのコンポーネントが提供されます。また、このヘッダーはDecoratorサポートの階層を含むため、ビルトインされたデコレーターがユースケースに含まれない場合には、カスタムなデコレーターを記述することができます。

広範囲におよぶイベントのサポート - ほとんどの更新とインタラクションを、イベントのリスナーから捉えることができます。各種のインタラクションに関連したカスタムなイベントの作成と発火が、AShape APIを通じて実現されます。

カレンダー内のアクティビティを操作するために、インターフェイスと実装のためのクラスが含まれます。それにより、MiG Calendarを用いた既存クラスを統合と、新規クラスの作成が容易になります。

内包されるTheme Editorは、GUIを用いたカスタムなカレンダーのルック&フィール(スキン)の作成を容易にします。それにもかかわらず、ほとんどの場合において、Themeプロパティの変更やデコレーターの作成による、手書きのコードを用いたカスタマイゼーションは容易であり、また、GUIエディタ内でのリアルタイムでの変更点の参照が可能です。

カレンダー内にアクティビティを書き込むときの、形状の定義と描画を行うAShape APIは非常に柔軟であり、また、カレンダーレイアウト自身からは完全に分離されたものです。
これまでには見ることの無かった柔軟な制御が、カスタマイズされたカレンダーを作成するために実現されています。AShape APIはいくつかのアニメーションのサポートを行い、Commandパターンに基づいた、とても柔軟なユーザーインタラクションのためのサブシステムを提供します。さらに、AShapesは実際の日付エリアの外側で使うことが可能であり、たとえば、テキストやグラフィックスをアクティベイトするためのヘッダーを作成できます。

カレンダーにより操作されるアクティビティの、同期およびインポートとエクスポートのためのサブシステムは、完全に交換が可能であり、また、拡張が可能です。たとえば、.icalファイルの参照と編集のために、サードパーティー製のiCalendarパーサーを用いたフックなどが容易に行えます。.icalパーサーのデモ実装を、参照するためのサンプルが含まれています。さらに、オープンソースのパーサーを入手することも可能です。

MiGカレンダーのクラス階層はシンプルですが、とてもパワフルでもあります。これは、Sun MicrosystemのSwing APIにおける、デザインパターンに従ったものです。サブクラスを必要としない実装が、数多くのカスタマイゼーションをパッケージ化します。ただし、設計においてサブクラスは許容され、また適切に考慮されています。

あらゆるアクティビティに対して、Categoryによる注釈が可能です。Categoryは多重継承のツリーの中に保持され、最大の柔軟性を保証します。カレンダー内のColumn/Rowは任意の数のカテゴリーによりフィルタリングが可能であり、また、ブーリアンオペレータとの結合が可能です。さらに、Column/Row自身は、提供されるツリー構造の中で構築されています。そのため、カスタムなDecoratorを用いることで、完全にインタラクティブなガントチャートを作成することさえ可能です。


機能の概要:

  • 結合が可能なAShapesの各タイプには、たとえばFillAShapeや、DrawAShape、TextAShape、FilterAShape(影に対するガウス分布)、ContaierAShape、JcomponentAShape、ImageAShape、SlicedImageAShapeなどが含まれる。1つのツリー構造への、多数のAShapesの統合が可能。
  • AShapeおよび、Grids、GridRows、Activities用のクラスにおけるレイアウトタイプ。多くのレイアウトが含まれ、また、開発者による作成も容易。
  • 柔軟な参照システムにより、50ピクセル未満の間隔でオブジェクト間の関係を示すことが可能になるが、そのオブジェクトの半分以上のサイズにはならない。この参照システムは、広範囲におよぶ各種コンポーネントの領域において利用される。
  • グルーピングが可能な日付スピナーによる、同じ日付や時間帯の一部の、異なる形態による表示。
  • コンポーネント内の全てのカスタムタイプに対して、XMLデリゲーションを通じて行われる、Javaビルトインのエンコーダー/デコーダーを用いたXML情報の保存。
  • コンポーネントはJavaサンドボックス内での実行が可能であるため、非常に安全なアプレットやアプリケーションの一部になり得る。そのディプロイメントは、たとえばJava WebStart(tm)による公開されたインターネットと同様に、高度なセキュリティを持ったイントラネット上での展開が可能となる。
  • 数多くのユーティリティクラスと、ヘルパーオブジェクトが含まれる。
  • このコンポーネントには、たとえば編集のアクティビティや、調整ダイアログの設定などの、いかなるビジネスロジックも含まれません。ビジネスと設定のロジックを加えたMiG Clalendarコンポーネントが、アプリケーションを構成することになります。