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}