public static boolean addAccount(final Account ac) throws DialogNoAnswerException { try { checkAccount(ac); } catch (DialogNoAnswerException e) { throw e; } catch (Throwable e) { Dialog.getInstance() .showExceptionDialog( _GUI.T.accountdialog_check_failed(), _GUI.T.accountdialog_check_failed_msg(), e); } AccountError error = ac.getError(); String errorMessage = ac.getErrorString(); if (StringUtils.isEmpty(errorMessage)) { AccountInfo ai = ac.getAccountInfo(); if (ai != null) { errorMessage = ai.getStatus(); } } if (error != null) { switch (error) { case PLUGIN_ERROR: if (StringUtils.isEmpty(errorMessage)) { errorMessage = _JDT.T.AccountController_updateAccountInfo_status_plugin_defect(); } Dialog.getInstance().showMessageDialog(_GUI.T.accountdialog_check_invalid(errorMessage)); return false; case EXPIRED: Dialog.getInstance() .showConfirmDialog( 0, _GUI.T.accountdialog_check_expired_title(), _GUI.T.accountdialog_check_expired(ac.getUser()), null, _GUI.T.accountdialog_check_expired_renew(), null); AccountController.getInstance().addAccount(ac, false); return true; case TEMP_DISABLED: if (StringUtils.isEmpty(errorMessage)) { errorMessage = _GUI.T.accountdialog_check_failed(); } Dialog.getInstance().showMessageDialog(_GUI.T.accountdialog_check_result(errorMessage)); AccountController.getInstance().addAccount(ac, false); return true; default: case INVALID: if (StringUtils.isEmpty(errorMessage)) { errorMessage = _GUI.T.accountdialog_check_failed_msg(); } Dialog.getInstance().showMessageDialog(_GUI.T.accountdialog_check_invalid(errorMessage)); return false; } } else { String message = null; AccountInfo ai = ac.getAccountInfo(); if (ai != null) { message = ai.getStatus(); } if (StringUtils.isEmpty(message)) { message = _GUI.T.lit_yes(); } Dialog.getInstance().showMessageDialog(_GUI.T.accountdialog_check_valid(message)); AccountController.getInstance().addAccount(ac, false); return true; } }