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}