001package com.ganteater.ae.web; 002 003import java.util.ArrayList; 004import java.util.Iterator; 005import java.util.List; 006 007import org.apache.commons.lang.ArrayUtils; 008 009import com.ganteater.ae.ChoiceTaskRunner; 010 011public class WebChoiceItem extends WebInputItem { 012 013 private List<WebInputItem> choiceItems = new ArrayList<WebInputItem>(); 014 private ChoiceTaskRunner tasksChoice; 015 016 public WebChoiceItem(ChoiceTaskRunner tasksChoice) { 017 super(null, tasksChoice.getName(), null, null); 018 this.tasksChoice = tasksChoice; 019 020 String[] taskNames = tasksChoice.getTaskNames(); 021 List<String> selectedTasks = new ArrayList<>(); 022 final Iterator<String> tasks = tasksChoice.getSelectedTasks(); 023 while (tasks.hasNext()) { 024 selectedTasks.add(tasks.next()); 025 } 026 for (String taskName : taskNames) { 027 boolean contains = selectedTasks.contains(taskName); 028 WebInputItem e = new WebInputItem(taskName, null, contains ? "true" : "false", null); 029 this.choiceItems.add(e); 030 } 031 032 } 033 034 public Object[] getChoiceItems() { 035 return ArrayUtils.clone(choiceItems.toArray()); 036 } 037 038 public void select(String[] tasks) { 039 tasksChoice.select(tasks, true); 040 } 041}