You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
226 lines
5.5 KiB
226 lines
5.5 KiB
package com.fr.env; |
|
|
|
import com.fr.design.i18n.Toolkit; |
|
import com.fr.exception.RemoteDesignPermissionDeniedException; |
|
import com.fr.general.ComparatorUtils; |
|
import com.fr.stable.StringUtils; |
|
import com.fr.workspace.connect.WorkspaceConnectionInfo; |
|
|
|
import com.fr.workspace.engine.exception.WorkspaceCheckException; |
|
import javax.swing.Icon; |
|
import javax.swing.UIManager; |
|
|
|
/** |
|
* 测试连接的结果。 |
|
* 不改变原有逻辑的情况下,加入一层转化。 |
|
* 根据这里的转化结果,判断需要提示哪些内容。 |
|
* <p> |
|
* created by Harrison on 2018/12/20 |
|
**/ |
|
public enum TestConnectionResult { |
|
/** |
|
* 完全成功, 版本匹配,测试连接成功。 |
|
*/ |
|
FULLY_SUCCESS { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.informationIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Successful"); |
|
} |
|
}, |
|
|
|
/** |
|
* 不完全成功,版本不匹配,但测试连接成功。该状态先保留 |
|
*/ |
|
PARTLY_SUCCESS { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.warningIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Version_Inconsistence_Test"); |
|
} |
|
}, |
|
|
|
/** |
|
* 完全失败,直接没连上 |
|
*/ |
|
FULLY_FAILED { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Failed"); |
|
} |
|
}, |
|
|
|
/** |
|
* 验证 Token 失败 |
|
*/ |
|
AUTH_FAILED { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Auth_Failed"); |
|
} |
|
}, |
|
|
|
/** |
|
* 登录锁定 |
|
*/ |
|
LOGIN_LOCK { |
|
|
|
private String value; |
|
|
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Login_Lock", value); |
|
} |
|
|
|
@Override |
|
public String errorCode() { |
|
return "UserLoginLockException.ERROR_CODE"; |
|
} |
|
|
|
@Override |
|
public void setValue(String lockMin) { |
|
this.value = lockMin; |
|
} |
|
|
|
@Override |
|
public boolean isVerifyResult() { |
|
return true; |
|
} |
|
}, |
|
|
|
/** |
|
* 没有远程设计权限 |
|
*/ |
|
PERMISSION_DENIED { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Permission_Denied"); |
|
} |
|
|
|
@Override |
|
public String errorCode() { |
|
return RemoteDesignPermissionDeniedException.ERROR_CODE; |
|
} |
|
}, |
|
|
|
/** |
|
* 弱密码 |
|
*/ |
|
PASSWORD_STRENGTH_LIMIT () { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Weak_Password"); |
|
} |
|
|
|
@Override |
|
public String errorCode() { |
|
return "22400033"; |
|
} |
|
|
|
@Override |
|
public boolean isVerifyResult() { |
|
return true; |
|
} |
|
}, |
|
|
|
/** |
|
* 密码更新 |
|
*/ |
|
PASSWORD_NEED_UPDATE { |
|
@Override |
|
public Icon getIcon() { |
|
return UIManager.getIcon("OptionPane.errorIcon"); |
|
} |
|
|
|
@Override |
|
public String getText() { |
|
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Update_Password"); |
|
} |
|
|
|
@Override |
|
public String errorCode() { |
|
// result具体逻辑需要同产品确认 |
|
return "UserPasswordNeedUpdateException.ERROR_CODE"; |
|
} |
|
|
|
@Override |
|
public boolean isVerifyResult() { |
|
return true; |
|
} |
|
}; |
|
|
|
public abstract Icon getIcon(); |
|
|
|
public abstract String getText(); |
|
|
|
public void setValue(String value) { |
|
// do noting |
|
} |
|
|
|
public String errorCode() { |
|
return StringUtils.EMPTY; |
|
} |
|
|
|
public boolean isVerifyResult() { |
|
return false; |
|
} |
|
|
|
public static final String WRAP = "<br/>"; |
|
|
|
public static TestConnectionResult parse(Boolean value, WorkspaceConnectionInfo info) { |
|
if (value == null) { |
|
return AUTH_FAILED; |
|
} |
|
if (!value) { |
|
return FULLY_FAILED; |
|
} |
|
//去掉测试连接时所做的检测 |
|
return FULLY_SUCCESS; |
|
} |
|
|
|
public static TestConnectionResult parseByException(WorkspaceCheckException e) { |
|
for (TestConnectionResult result : values()) { |
|
if (ComparatorUtils.equals(e.errorCode(), result.errorCode())) { |
|
// 登录锁定 获取下锁定的时间 |
|
if (ComparatorUtils.equals(result, LOGIN_LOCK)) { |
|
result.setValue(e.getMessage().replaceAll("\\D+", StringUtils.EMPTY)); |
|
} |
|
return result; |
|
} |
|
} |
|
return AUTH_FAILED; |
|
} |
|
}
|
|
|