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}