* @throws reportgen.ren.exception.ReportException
*/
public void setUserInput(UserInput ui) throws ReportException {
if(!ui.isSelected()) {
if(!ui.isCanBeOmitted()) {
throw new ReportException("Пользователь не сделал выбор");
}
omitted = true;
} else if(size() > 1) {
UserInputSelect uis = (UserInputSelect) ui;
ArrayList<Integer> selected = uis.getSelected();
int selIndex = selected.get(0);
if(selIndex >= size()) {
throw new ReportException("Пользователь сделал некорректный выбор");
}
if(selIndex != 0) {
while(selIndex != 0) {
selIndex = moveUp(selIndex);
}
}
omitted = false;
} else {
UserInputEditable uie = (UserInputEditable) ui;
MathExpressionConstAbstract val = get(0);
if(!val.getCls().equals(uie.getValue().getClass())) {
throw new ReportException("Попытка ввода данных несоответствующего типа");
}
Object newValue = uie.getValue();
MathExpressionConstAbstract newVal = val.make(newValue);
insertBefore(val, newVal);
remove(val);