001package com.ericlam.mc.eldgui.component.factory; 002 003import com.ericlam.mc.eldgui.component.ComponentFactory; 004 005import java.time.LocalDate; 006 007/** 008 * 日期選擇器組件工廠 009 */ 010public interface DateSelectorFactory extends ComponentFactory<DateSelectorFactory> { 011 012 /** 013 * 設置禁用 014 * @return this 015 */ 016 DateSelectorFactory disabled(); 017 018 /** 019 * 020 * @param title 標題 021 * @return this 022 */ 023 DateSelectorFactory label(String title); 024 025 /** 026 * 綁定組件與 Model 屬性 027 * @param field Model 屬性 028 * @param initValue 初始化數值 029 * @return this 030 */ 031 DateSelectorFactory bindInput(String field, LocalDate initValue); 032 033 /** 034 * 035 * @param message 要求玩家手動輸入的訊息 036 * @return this 037 */ 038 DateSelectorFactory inputMessage(String message); 039 040 /** 041 * 042 * @param message 玩家輸入無效格式時發送的訊息 043 * @return this 044 */ 045 DateSelectorFactory invalidMessage(String message); 046 047 /** 048 * 049 * @param maxWait 等待玩家輸入最大時間(ticks) 050 * @return this 051 */ 052 DateSelectorFactory waitForInput(long maxWait); 053 054}