torutkのブログ

ソフトウェア・エンジニアのブログ

JSR-296 Swing Application Framework 0.40リリース

https://appframework.dev.java.net/

作者のHans Muller氏の0.40リリースに関する投稿メールは以下URL
https://appframework.dev.java.net/servlets/ReadMsg?list=users&msgNo=539

Taskが変更大

まずコンストラクタに修正が入り、引数なしか、リソースマップを指定するものかいずれか選択する必要があります。
引数なしのコンストラクタでタスクをインスタンス化した場合、リソースについては、Taskのクラス名に基づくファイルに記述します。

またリソースファイルの文字列では、{0}や{1}のように指定する方法から、printfのように%sなどの変換子で指定する方法に変更となりました。

(20070527追記)
MyApplicationクラスでMyTaskを生成する場合のリソースファイル名、リソースプロパティ名の組み合わせを調査・整理しました。

1) MyApplication.propertiesにMyTaskのプロパティを直接記述する
public class MyApplication extends SingleFrameApplication {
        :
    @Action public Task myAction() {
        ResourceMap map = ApplicationContext.getInstance().getResourceMap(
            MyApplication.class
        );
        Task task = new MyTask(map);
        task.addListener(new MyTaskListener());
        return task
    }
        :
}
class MyTask extends Task<String, Void> {
    MyTask(ResourceMap aMap) {
        super(aMap, null);
    }
        :
}

タスクで"startMessage"プロパティを使用する場合、MyApplication.propertiesファイルに記述することになります。

# MyApplication.properties
startMessage = Starting: %s

2) MyApplication.propertiesにMyTaskのプロパティを"MyTask"プレフィックス付きで記述する
public class MyApplication extends SingleFrameApplication {
        :
    @Action public Task myAction() {
        ResourceMap map = ApplicationContext.getInstance().getResourceMap(
            MyApplication.class
        );
        Task task = new MyTask(map, "MyTask");
        task.addListener(new MyTaskListener());
        return task
    }
        :
}
class MyTask extends Task<String, Void> {
    MyTask(ResourceMap aMap, String aPrefix) {
        super(aMap, aPrefix);
    }
        :
}

タスクで"startMessage"プロパティを使用する場合、MyApplication.propertiesファイルにプレフィックス"MyTask."を付けて記述することになります。

# MyApplication.properties
MyTask.startMessage = Starting: %s

3) MyApplication.propertiesとは別にMyTask.propertiesにMyTask関連のプロパティを記述する
public class MyApplication extends SingleFrameApplication {
        :
    @Action public Task myAction() {
        Task task = new MyTask();
        task.addListener(new MyTaskListener());
        return task
    }
        :
}
class MyTask extends Task<String, Void> {
        :
}

タスクで"startMessage"プロパティを使用する場合、MyTask.propertiesファイルに記述することになります。

# MyTask.properties
startMessage = Starting: %s