fieldSetsPanel = gridBuilder.getPanel();
for (final ScriptParameter parameter : scriptParameters) {
final FieldsetPanel fs = gridBuilder.newFieldset(StringUtils.capitalize(parameter.getParameterName()),
getString("scripting.script.parameter") + " " + (index + 1));
parameterFieldsets[index] = fs;
InputPanel inputPanel = null;
if (parameter.getType() == ScriptParameterType.INTEGER) {
inputPanel = fs.add(new TextField<Integer>(fs.getTextFieldId(), new PropertyModel<Integer>(parameter, "intValue")));
} else if (parameter.getType() == ScriptParameterType.STRING) {
inputPanel = fs.add(new TextField<String>(fs.getTextFieldId(), new PropertyModel<String>(parameter, "stringValue")));
} else if (parameter.getType() == ScriptParameterType.DECIMAL) {
inputPanel = fs.add(new TextField<BigDecimal>(fs.getTextFieldId(), new PropertyModel<BigDecimal>(parameter, "decimalValue")));
} else if (parameter.getType() == ScriptParameterType.DATE || parameter.getType() == ScriptParameterType.TIME_PERIOD) {
final String property = parameter.getType() == ScriptParameterType.TIME_PERIOD ? "timePeriodValue.fromDate" : "dateValue";
datePanel1[index] = new DatePanel(fs.newChildId(), new PropertyModel<Date>(parameter, property));
fs.add(datePanel1[index]);
if (parameter.getType() == ScriptParameterType.TIME_PERIOD) {
fs.add(new DivTextPanel(fs.newChildId(), " - "));
datePanel2[index] = new DatePanel(fs.newChildId(), new PropertyModel<Date>(parameter, "timePeriodValue.toDate"));
fs.add(datePanel2[index]);
quickSelectPanel[index] = new QuickSelectPanel(fs.newChildId(), parentPage, "quickSelect:" + index, datePanel1[index]);
fs.add(quickSelectPanel[index]);
quickSelectPanel[index].init();
}
} else if (parameter.getType() == ScriptParameterType.TASK) {
final TaskSelectPanel taskSelectPanel = new TaskSelectPanel(fs, new PropertyModel<TaskDO>(parameter, "task"), parentPage, "taskId:"
+ index);
fs.add(taskSelectPanel);
taskSelectPanel.init();
taskSelectPanel.setRequired(true);
} else if (parameter.getType() == ScriptParameterType.USER) {
final UserSelectPanel userSelectPanel = new UserSelectPanel(fs.newChildId(), new PropertyModel<PFUserDO>(parameter, "user"),
parentPage, "userId:" + index);
fs.add(userSelectPanel);
userSelectPanel.init();
userSelectPanel.setRequired(true);
} else {
throw new UnsupportedOperationException("Parameter type: " + parameter.getType() + " not supported.");
}
if (focusSet == false) {
if (inputPanel != null) {
WicketUtils.setFocus(inputPanel.getField());
focusSet = true;
}
}
index++;
}