*/
// TODO taskLoadAllPeriodtと一体化したい。
private void taskFullOpenAllPeriod(){
- setBusy(true);
- updateStatusBar("一括読み込み開始");
+ setBusy(true, "一括読み込み開始");
try{
TabBrowser browser = this.topView.getTabBrowser();
Village village = browser.getVillage();
periodView.showTopics();
}
}finally{
- updateStatusBar("一括読み込み完了");
- setBusy(false);
+ setBusy(false, "一括読み込み完了");
}
return;
}
* 全日程の一括ロード。ヘビータスク版。
*/
private void taskLoadAllPeriod(){
- setBusy(true);
- updateStatusBar("一括読み込み開始");
+ setBusy(true, "一括読み込み開始");
try{
TabBrowser browser = this.topView.getTabBrowser();
Village village = browser.getVillage();
periodView.showTopics();
}
}finally{
- updateStatusBar("一括読み込み完了");
- setBusy(false);
+ setBusy(false, "一括読み込み完了");
}
return;
}
Executor executor = Executors.newCachedThreadPool();
executor.execute(() -> {
- setBusy(true);
- updateStatusBar("ジャンプ先の読み込み中…");
+ setBusy(true, "ジャンプ先の読み込み中…");
if(anchor.hasTalkNo()){
// TODO もう少し賢くならない?
Executor executor = Executors.newCachedThreadPool();
executor.execute(() -> {
- setBusy(true);
- updateStatusBar("村情報を読み込み中…");
-
+ setBusy(true, "村情報を読み込み中…");
try{
VillageInfoLoader.updateVillageInfo(village);
}catch(IOException e){
showNetworkError(village, e);
return;
}finally{
- updateStatusBar("村情報の読み込み完了");
- setBusy(false);
+ setBusy(false, "村情報の読み込み完了");
}
Controller.this.actionManager.appearVillage(true);
Executor executor = Executors.newCachedThreadPool();
executor.execute(() -> {
- setBusy(true);
- updateStatusBar("アンカーの展開中…");
+ setBusy(true, "アンカーの展開中…");
if(anchor.hasTalkNo()){
// TODO もう少し賢くならない?
/**
* ビジー状態の設定を行う。
- *
+ *
* <p>ヘビーなタスク実行をアピールするために、
* プログレスバーとカーソルの設定を行う。
- *
+ *
* <p>ビジー中のActionコマンド受信は無視される。
*
* <p>ビジー中のトップフレームのマウス操作、キーボード入力は
* 全てグラブされるため無視される。
*
* @param isBusy trueならプログレスバーのアニメ開始&WAITカーソル。
- * falseなら停止&通常カーソル。
+ * falseなら停止&通常カーソル。
+ * @param msg フッタメッセージ。nullなら変更なし。
*/
- private void setBusy(boolean isBusy){
+ private void setBusy(boolean isBusy, String msg){
this.isBusyNow = isBusy;
TopFrame topFrame = getTopFrame();
+
Runnable microJob = () -> {
topFrame.setBusy(isBusy);
+ if(msg != null){
+ this.topView.updateSysMessage(msg);
+ }
};
if(EventQueue.isDispatchThread()){
}
/**
+ * ビジー状態の設定を行う。
+ *
+ * <p>フッタメッセージは変更されない。
+ * @param isBusy trueならプログレスバーのアニメ開始&WAITカーソル。
+ * falseなら停止&通常カーソル。
+ */
+ private void setBusy(boolean isBusy){
+ setBusy(isBusy, null);
+ return;
+ }
+
+ /**
* ステータスバーを更新する。
* @param message メッセージ
*/
private void updateStatusBar(String message){
this.topView.updateSysMessage(message);
+ return;
}
/**