001package com.ericlam.mc.eldgui.component.factory;
002
003import com.ericlam.mc.eldgui.component.ComponentFactory;
004
005// 密碼輸入組件
006public interface PasswordInputFactory extends ComponentFactory<PasswordInputFactory> { // 繼承 ComponentFactory
007
008    /**
009     * 綁定屬性。由於是密碼,所以沒有初始數值。
010     * @param field 屬性名稱
011     * @return this
012     */
013    PasswordInputFactory bindInput(String field);
014
015    /**
016     * 顯示密碼文字
017     * @param show 顯示密碼文字
018     * @return this
019     */
020    PasswordInputFactory showPasswordTxt(String show);
021
022    /**
023     * 隱藏密碼文字
024     * @param hide 隱藏密碼文字
025     * @return this
026     */
027    PasswordInputFactory hidePasswordTxt(String hide);
028
029    /**
030     * 設置密碼混淆類型
031     * @param type 密碼混淆類型
032     * @return this
033     */
034    PasswordInputFactory hashType(HashType type);
035
036    /**
037     * 設置標題顯示
038     * @param label 標題顯示
039     * @return this
040     */
041    PasswordInputFactory label(String label);
042
043
044    /**
045     * 設置遮罩文字
046     * @param mask 遮罩文字
047     * @return this
048     */
049    PasswordInputFactory mask(char mask);
050
051    /**
052     * 設置輸入提示訊息
053     * @param input 提示訊息
054     * @return this
055     */
056    PasswordInputFactory inputMessage(String input);
057
058    /**
059     * 設置無效提示訊息
060     * @param invalid 無效提示訊息
061     * @return this
062     */
063    PasswordInputFactory invalidMessage(String invalid);
064
065    /**
066     * 設置 regex 來規限密碼格式
067     * @param regex 規限密碼格式
068     * @return this
069     */
070    PasswordInputFactory regex(String regex);
071
072    /**
073     * 設置等待最大輸入時間
074     * @param maxWait 等待最大輸入時間
075     * @return this
076     */
077    PasswordInputFactory maxWait(long maxWait);
078
079    /**
080     * 設置禁用組件
081     * @return this
082     */
083    PasswordInputFactory disabled();
084
085    /**
086     * hash類型
087     */
088    enum HashType {
089        SHA_256, MD5
090    }
091
092}