LaBee Framework ダイアログ表示・多言語切替え(※ユーザ登録しなくてもダウンロード可にサイト仕様を変更しました)

LaBee FrameworkはJavaによるWebシステム開発のデファクトスタンダードを目指す、ゼロから作られた国産のJavaフレームワークです。 海外製フレームワーク特有の難解さや情報不足による工数や人員の増大を解消しJavaのWeb開発を効率化する為に作られました。 LGPLライセンスでソースコードをオープンソース公開しており、個人・企業問わずどなたでも無償で利用出来ます
https://www.bee-wkspace.com/
<font color="#FF8800">★ユーザ登録しなくてもファイルダウンロード可にサイト仕様を変更しました★</font>
![press.jpg](https://qiita-image-store.s3.amazonaws.com/0/137533/9ec50bce-b5dd-3ed3-f1f3-c6f5e9a4d106.jpeg)

#メッセージダイアログ表示

たとえばログイン認証等の処理でユーザ認証に失敗した場合のエラーダイアログやログイン処理が正常に完了した場合のインフォメーションダイアログ等のメッセージダイアログ表示をビジネスロジック終了後に画面に表示する事が出来ます。 

**メッセージダイアログ Blogic実装例**

~~~
    
    /**
     * ログイン認証イベント処理。
     */
    @FwExeMethod
    public ResponseContext login() throws FwException {
        try {
            String password = bean.getPassword();
            if (password.equals("XXXXXX")) {
                // 完了アイコンを表示するメッセージダイアログ
                bean.setMessageDiarog(AppMessageDialogContext.MESSAGE_TYPE_COMPLETE, "認証成功しました");
            } else {
                // エラーアイコンを表示するメッセージダイアログ
                bean.setMessageDiarog(AppMessageDialogContext.MESSAGE_TYPE_ERROR, "認証失敗しました");
            }
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }
~~~

- beanの親クラスで定義しているsetMessageDiarogメソッドにアイコン種類を示す定数と表示するメッセージをセットする事で画面表示に戻った際にメッセージダイアログを表示する事が出来ます。 


**アイコン種類定数**

|アイコン種別定数|概要 |
|:--|:--|
|AppMessageDialogContext.**MESSAGE_TYPE_COMPLETE**|![CompleteIcon.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/5a18e8c5-8162-790e-084a-5258bc4392af.gif)完了アイコンを示す定数 |
|AppMessageDialogContext.**MESSAGE_TYPE_INFO**|![InfoIcon.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/b26e3619-3477-9097-5a20-e87afb672156.gif)インフォアイコンを示す定数 |
|AppMessageDialogContext.**MESSAGE_TYPE_WARN**|![WarningIcon.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/2f1f9c75-9234-b80f-ede2-3b8b93e1a86b.gif)警告アイコンを示す定数 |
|AppMessageDialogContext.**MESSAGE_TYPE_ERROR**|![ErrorIcon.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/df4e6e37-be77-2a29-d254-e1a80d0314d5.gif)エラーアイコンを示す定数 |
|AppMessageDialogContext.**MESSAGE_TYPE_QUESTION**|![QuestionIcon.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/77ac317a-bf28-1be3-2ab9-91a8e3167d47.gif)問い合わせアイコンす定数 |

**メッセージダイアログ表示例**
![dialog_sample1.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/2550ddec-73a0-b6cb-b82b-8c4985be2ed0.gif)


#多言語メッセージ切替え 

com.bee_wkspace.labee_fw.common.MessageLabelUtilクラスを使用する事でMessageDefine.csvで定義したメッセージをメッセージIDを指定する事で取得出来ます。言語ロケールコードを合わせて指定する事で動的に取得言語を切替える事が出来ます。メッセージダイアログのメッセージ定義部をMessageLabelUtilクラスからメッセージを取得する様にする事で多言語切り替え対応可能となります。 

**MessageDefine.csv設定例**

~~~
$MSG_CD,ja,en
MSG_001,認証成功しました。,It was successful authentication.
MSG_002,認証失敗しました。,It failed in the authentication.
~~~

- 1行目 ヘッダで言語ロケールコードをja(日本語)とen(英語)を定義しています。
- 2行目 MSG_001,MSG_002というメッセージコードでそれぞれ日本語と英語のメッセージを定義しています。 

**多言語対応版メッセージダイアログ Blogic実装例**

~~~
    
    /**
     * ログイン認証イベント処理。
     */
    @FwExeMethod
    public ResponseContext login() throws FwException {
        try {
            String languageCd = "en";
            String password = bean.getPassword();
            if (password.equals("XXXXXX")) {
                // 完了アイコンを表示するメッセージダイアログ
                bean.setMessageDiarog(AppMessageDialogContext.MESSAGE_TYPE_COMPLETE, 
                        MessageLabelUtil.getMessage("MSG_001", new Locale(languageCd)));
            } else {
                // エラーアイコンを表示するメッセージダイアログ
                bean.setMessageDiarog(AppMessageDialogContext.MESSAGE_TYPE_ERROR, 
                        MessageLabelUtil.getMessage("MSG_002", new Locale(languageCd)));
            }
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }
~~~

- 8行目 サンプルとして言語ロケールコードをen(英語)に設定しています。
- 14行目、18行目 メッセージをMessageLabelUtilクラスを利用して、メッセージコードと言語ロケールコードを指定して取得しています。

**メッセージダイアログ表示例**
メッセージ表示が英語で表示されました。 
![dialog_sample2.gif](https://qiita-image-store.s3.amazonaws.com/0/137533/40342fd0-c371-b24b-4cb6-62513b96b97c.gif)

多言語切替サンプルプログラムは以下で確認出来ます
https://www.bee-wkspace.com/Sample1/