目次

チュートリアル2(スケルトン)

ダウンロード専用クラス

いつものようにスケルトンを生成しますが、up.jpg と down.jpg はサンプル用に入れているだけなので不要です。これらは削除してツールにかけます。
その代わり、この写真を表示するためのロジックが必要です(/tmp/blog/ の下は、http アクセスで直接表示可能な場所ではない)。
html と同じ場所に、photo という名前の空ファイルを置いておきます。
これは HTML テキストではなく、何らかのデータをダウンロードさせるためのクラスとなります。

ツールのコマンドパラメータには
-include photo
を追加して、クラス生成対象に入れておきます。
Paraselene は、ファイル拡張子が .html(または .htm, .xhtml, .xhtm) のものは HTML テキストとしてクラスを生成しますが、それ以外のものはダウンロード専用クラスを生成します。

logicクラス一覧
No モックアップファイル名ページタイトルクラス名PageID実行時URL
※getAliasURI()が優先されます。
特記
1/admin.html管理者ページ tutorial3.logic.AdminHtml tutorial3.base.PageType.
ADMIN_HTML
on.xmtvzz.na 
2/blog.html ブログtutorial3.logic.BlogHtml tutorial3.base.PageType.
BLOG_HTML
on.99ouiq.na警告:image/up.jpgが解決できませんでした。
警告:image/up.jpgが解決できませんでした。
警告:image/down.jpgが解決できませんでした。
警告:image/down.jpgが解決できませんでした。
3/photo(タイトルなし)tutorial3.logic.Photo tutorial3.base.PageType.
PHOTO
on.2oc7ul.na 

除外ファイル一覧
Noモックアップファイル名解決パス
1/blog.css.//blog.css
2image/pur9b.gif.//image/pur9b.gif
3image/r5b.gif.//image/r5b.gif
4image/title.png.//image/title.png
/blog.html の特記に「警告:image/up.jpgが解決できませんでした。」というような文言が並んでいます。
ツールをかける際にサンプル用画像を削除しましたが、Paraselene は相対パスがあると、logic クラスのどれかであるか?または、除外ファイルのどれかであるか?の解決を図ります。
その対象ファイルが見つからなかった場合に出る警告です。
今回は意図的にやっている事ですが、この警告により、いわゆるリンク切れがないかを確認する事ができます。

記事保存クラス

前回と同様に、記事を保存するためのクラスを作成します。

tutorial3/Article.java
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
package tutorial3;
 
 
import java.util.*;
import java.text.*;
 
 
public class Article {
    public static final String PATH = "/tmp/blog/";
    public static final String[] CATEGORY = new String[] {
        "仕事",
        "旅行",
        "ファッション",
        "スポーツ",
        "映画",
        "政治",
        "その他"
    };
 
    public Date date = new Date();
    public String title;
    public String[] image = new String[2];
    public String text;
    public boolean[] category = new boolean[CATEGORY.length];
 
    public static ArrayList<Article>    db = new ArrayList<Article>();
 
    static {
        db.add( new Article( "要件1", "最近の記事は、最大5件を表示。", "0" ) );
        db.add( new Article( "要件2", "記事は3件まで表示。<BR>それより多い場合は、前へ、次へリンクで移動。", "0" ) );
        db.add( new Article( "要件3", "ホームリンクは先頭へ戻る。", "0" ) );
        db.add( new Article( "要件4", "写真は上下、最大2ヶ所。", "0" ) );
    }
 
    public Article( String ttl, String txt, String ... on ) {
        title = ttl;
        text = txt;
       for ( int i = 0; i < category.length; i++ ) {
            category[i] = false;
        }
        for ( int i = 0; i < on.length; i++ ) {
            int no = Integer.parseInt( on[i] );
            category[no] = true;
        }
    }
 
    public String getDate() {
        SimpleDateFormat    sdf = new SimpleDateFormat( "yyyy/MM/dd" );
        return sdf.format( date );
    }
}

チュートリアル3(削除機能)