Xuni Calendar コントロールのデフォルトの動作をカスタマイズして、特定の日付を選択することもできます。たとえば、異なる週の 2 つの日付をタップするだけで、平日だけを選択できるようにしたいとします。それには、getSelectionChanging イベントをサブスクライブし、ハンドラに選択条件を適用するだけです。
次の図は、異なる週の 2 つの日付をタップすると、平日だけが選択され、週末が選択解除される Xuni Calendar です。
次のコード例は、Java および C# で選択範囲をカスタマイズする方法を示します。次のコード例では、「クイックスタート」セクションで作成したサンプルを使用します。
Java |
コードのコピー
|
---|---|
import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import com.grapecity.xuni.calendar.CalendarSelectionChangingEventArgs; import com.grapecity.xuni.calendar.XuniCalendar; import com.grapecity.xuni.core.IEventHandler; |
Java |
コードのコピー
|
---|---|
calendar.getSelectionChanging().addHandler(new IEventHandler() { @Override public void call(Object arg0, Object arg1) { CalendarSelectionChangingEventArgs arg = (CalendarSelectionChangingEventArgs) arg1; List<Date> days = arg.getSelectedDates(); List<Date> workdays = new ArrayList<Date>(); for (Date date : days) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1; if (dayOfWeek > 0 && dayOfWeek < 6) { workdays.add(date); } } arg.setSelectedDates(workdays); } }, this); |