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}