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