このサンプルの動作は画面遷移方法サンプルと全く同じ内容ですが次画面での
表示内容の組み立て方法に違いが存在します。
画面遷移方法サンプルではScreenTransitionNextWindowSample.javaに
updateWindowメソッドを用意してそのメソッドをコンストラクタや前画面の
アクションメソッド内で呼び出すことにより画面表示内容の組み立てを行っていました。
このサンプルでは次画面にpreDrawメソッドを作成して、そのメソッドで表示内容に組み立てを行っています。
preDrawメソッドは画面表示前にpirkaより自動的に呼び出されるメソッドです。
pirkaより呼び出されるためpreDrawメソッドの呼び出しをコンストラクタ及び
前画面では行っていないことを確認してください。
≪作成時注意点≫
・ブラウザに送信される画面イメージの作成処理直前に処理を行うには
public void preDraw();メソッドを作成しその中に必要な処理を記述してください。
・preDrawメソッドの戻り値はvoid型のみのため画面遷移は行えません。
ソースファイル
PreDrawSample.html サンプル画面のHTMLファイル
<html>
<head>
<title>pirka逆引きサンプル preDrawについて(HTML作成事前イベント)</title>
</head>
<body>
<center>
<span style="color: #8080ff">pirka逆引きサンプル preDrawについて(HTML作成事前イベント)</span><br>
<hr>
<form name="formItem" method="post">
ボタンで画面遷移<br><br>
<input type="submit" name="submitItem01" value="新規作成した次画面へ">
<input type="submit" name="submitItem02" value="作成済みの次画面へ"><br><br>
</form>
<hr>
<br>
リンクで画面遷移<br><br>
<a name="aItem01" href="">新規作成した次画面へ</a>
<a name="aItem02" href="">作成済みの次画面へ</a>
<br><br>
<hr>
<a name="returnWindow" href="">戻る</a>
</center>
</body>
</html>
package jp.oarts.pirka.sample.instruction.is101700;
import jp.oarts.pirka.core.win.PirkaWindow;
/**
* pirka逆引きサンプル preDrawについて(HTML作成事前イベント)
*/
public class PreDrawSample extends PirkaWindow {
/** 作成済みの次画面オブジェクト */
private PreDrawNextWindowSample nextWindow;
/**
* コンストラクタ
*/
public PreDrawSample() {
nextWindow = new PreDrawNextWindowSample();
}
/**
* 新規作成した次画面へボタン処理
*/
public PirkaWindow submitItem01() {
return new PreDrawNextWindowSample();
}
/**
* 作成済みの次画面へボタン処理
*/
public PirkaWindow submitItem02() {
return nextWindow;
}
/**
* 新規作成した次画面へリンク処理
*/
public PirkaWindow aItem01() {
return new PreDrawNextWindowSample();
}
/**
* 作成済みの次画面へリンク処理
*/
public PirkaWindow aItem02() {
return nextWindow;
}
/**
* 戻るリンク
*
* @return
*/
public PirkaWindow returnWindow() {
return null;
}
}
<html>
<head>
<title>pirka逆引きサンプル preDrawについて(HTML作成事前イベント) 次画面</title>
</head>
<body>
<center>
<span style="color: #8080ff">pirka逆引きサンプル preDrawについて(HTML作成事前イベント) 次画面</span><br>
<hr>
<H3>
<span name="msg"></span>
</H3>
<br><hr><br>
<form name="formItem" method="post">
<input type="submit" name="returnButton" value="戻る">
</form>
</center>
</body>
</html>
package jp.oarts.pirka.sample.instruction.is101700;
import jp.oarts.pirka.core.kernel.FieldMap;
import jp.oarts.pirka.core.win.PirkaWindow;
/**
* pirka逆引きサンプル preDrawについて(HTML作成事前イベント) 次画面
*/
public class PreDrawNextWindowSample extends PirkaWindow {
/** カウンタ */
private int counter;
/** 作成時間(ms) */
private long createdTime;
/**
* コンストラクタ
*/
public PreDrawNextWindowSample() {
counter = 0;
createdTime = System.currentTimeMillis(); // 作成時間
}
/**
* 表示前に呼ばれるメソッド
*/
public void preDraw() {
counter++;
long sec = (System.currentTimeMillis() - createdTime) / 1000;
String msg = "この画面は" + sec + "秒前のに作成されました。 " + counter + "回目の表示です。";
FieldMap field = getFieldMap();
field.setValue("msg", msg);
}
/**
* 戻るボタン
*/
public PirkaWindow returnButton() {
return null; // nullを戻すと呼び出しもとの画面に戻ります
}
}