《Jython2.5》JTree〈GoF〉Composite を導入する

前の記事記事一覧次の記事

Java プログラマーのための Python 導入ガイド〈初級/応用編〉《Jython2.5》
JTree〈GoF〉Composite を導入する

《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03

■ 概要

フォルダー/ファイルの階層構造を「簡単に」閲覧できるツールがあると便利です。

この課題では、Swing/GUI を使って階層構造を持つ情報を提示します。〈GoF〉Composite/Iterator/Visitor/Command パターンを導入すると、if/for 文によるコードの汚染、配列の境界問題が解消されるので、要求仕様の変更にも柔軟に対処でき、簡潔で見通しの良いコードを記述できるようになります。

《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5 で再構成しました。

事例:モジュールを起動する

モジュールを起動すると、次のようなウィンドウが現れます。

■ 単一オブジェクト:ファイル

ファイルは、ツリーの末端(leaf)になり、「単一」オブジェクトと見なされます。


ファイル(を表わすノード)を選択すると、テキスト領域に詳細な情報が表示されます。たとえば、example.jar を選択すると、そのサイズが 993 バイトだと分かります。その他にも、さまざまな情報を確認できます。

■ 複合オブジェクト:フォルダー

フォルダーは、ツリーの枝(branch)になり、複数のオブジェクトで構成される「複合」オブジェクトと見なされます。


フォルダー(を表わすノード)を選択すると、テキスト領域に詳細な情報が表示されます。たとえば、src を選択すると、その傘下に4つの項目(ファイル/フォルダー)を含むとともに、その合計サイズが 463 バイトだと分かります。

何が問題か:〈GoF〉Composite を導入する

ツリーの各ノードは、ファイル(末端)かフォルダー(枝)になる可能性があります。そこで〈GoF〉Composite を導入して、これらの違いを意識せずに統一して扱えるようにするとともに、必要なら異なる形式(ファイル/フォルダー)で情報を提示できるようにします。

⇒ 続きはこちら Composite を実現する

Tips

》作業中です《

Last updated♪09/06/13