public DynamicForm getCustomSettingsForm() {
final DynamicForm form = new DynamicForm();
form.setWidth(750);
form.setNumCols(1);
final CanvasItem selectorItem = new CanvasItem();
selectorItem.setTitleOrientation(TitleOrientation.TOP);
selectorItem.setShowTitle(false);
final SingleResourceGroupSelector resourceGroupSelector = new SingleResourceGroupSelector(
GroupCategory.COMPATIBLE, false);
resourceGroupSelector.setWidth(700);
resourceGroupSelector.setHeight(300);
final SelectItem metric = new SortedSelectItem(CFG_DEFINITION_ID, MSG.common_title_metric()) {
@Override
protected Criteria getPickListFilterCriteria() {
Criteria criteria = new Criteria();
if (resourceGroupSelector.getSelection().size() == 1) {
int groupId = resourceGroupSelector.getSelection().iterator().next();
criteria.addCriteria(CFG_RESOURCE_GROUP_ID, groupId);
form.setValue(CFG_RESOURCE_GROUP_ID, groupId);
}
return criteria;
}
};
metric.setWidth(300);
metric.setTitleOrientation(TitleOrientation.TOP);
metric.setValueField("id");
metric.setDisplayField("displayName");
metric.setOptionDataSource(new ResourceScheduledMetricDatasource());
resourceGroupSelector.addAssignedItemsChangedHandler(new AssignedItemsChangedHandler() {
public void onSelectionChanged(AssignedItemsChangedEvent event) {
if (resourceGroupSelector.getSelection().size() == 1) {
metric.fetchData();
form.clearValue(CFG_DEFINITION_ID);
}
}
});
final DashboardPortlet storedPortlet = portletWindow.getStoredPortlet();
if (storedPortlet.getConfiguration().getSimple(CFG_RESOURCE_GROUP_ID) != null) {
Integer integerValue = storedPortlet.getConfiguration().getSimple(CFG_RESOURCE_GROUP_ID).getIntegerValue();
if (integerValue != null) {
form.setValue(CFG_RESOURCE_GROUP_ID, integerValue);
ListGridRecord group = new ListGridRecord();
group.setAttribute("id", integerValue);
ListGridRecord[] groups = { group };
resourceGroupSelector.setAssigned(groups);
}
PropertySimple propertySimple = storedPortlet.getConfiguration().getSimple(CFG_DEFINITION_ID);
if (propertySimple != null && propertySimple.getIntegerValue() != null)
form.setValue(CFG_DEFINITION_ID, propertySimple.getIntegerValue());
}
selectorItem.setCanvas(resourceGroupSelector);
form.setFields(selectorItem, metric, new SpacerItem());
form.addSubmitValuesHandler(new SubmitValuesHandler() {
public void onSubmitValues(SubmitValuesEvent submitValuesEvent) {
ResourceGroup selectedGroup = resourceGroupSelector.getSelectedGroup();