formItems.add(descriptionItem);
SpacerItem spacerItem = new SpacerItem("Spacer");
formItems.add(spacerItem);
SelectItem templateSelectItem = new SortedSelectItem("Template",
MSG.view_drift_wizard_addDef_templatePrompt());
templateSelectItem.setTitleOrientation(TitleOrientation.TOP);
templateSelectItem.setAlign(Alignment.LEFT);
templateSelectItem.setWidth(300);
templateSelectItem.setRequired(true);
switch (wizard.getEntityContext().getType()) {
case SubsystemView:
FormUtility.addContextualHelp(templateSelectItem, MSG.view_drift_wizard_addTemplate_infoStepHelp());
break;
default:
FormUtility.addContextualHelp(templateSelectItem, MSG.view_drift_wizard_addDef_infoStepHelp());
}
Set<DriftDefinitionTemplate> templates = wizard.getType().getDriftDefinitionTemplates();
final HashMap<String, DriftDefinitionTemplate> templatesMap = new HashMap<String, DriftDefinitionTemplate>(
templates.size());
if (!templates.isEmpty()) {
for (DriftDefinitionTemplate template : templates) {
templatesMap.put(template.getName(), template);
}
} else {
// there should be at least one template for any resource type that supports drift monitoring
throw new IllegalStateException(
"At least one drift definition template should exist for the resource type");
}
Set<String> templatesMapKeySet = templatesMap.keySet();
String[] templatesMapKeySetArray = templatesMapKeySet.toArray(new String[templatesMap.size()]);
templateSelectItem.setValueMap(templatesMapKeySetArray);
templateSelectItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
if (null == event || "".equals(event.getValue())) {
return;
}
setSelectedTemplate((String) event.getValue(), templatesMap);
}
});
formItems.add(templateSelectItem);
form.setItems(formItems.toArray(new FormItem[formItems.size()]));
// set value to first in list
templateSelectItem.setValue(templatesMapKeySetArray[0]);
setSelectedTemplate(templatesMapKeySetArray[0], templatesMap);
}
return form;
}