groupBySelectedColumnIndex = -1;
showGroupByConfig = false;
}
public void actionSaveTable(CommandRequest request) throws Exception {
DataSetTable dataSetTable = (DataSetTable) table;
String groupByPropId = request.getRequestObject().getParameter("groupbyproperty");
String closeGroupByConfig = request.getRequestObject().getParameter("closegroupbyconfig");
if (groupByPropId != null && !groupByPropId.equals("-1") && showGroupByConfig) {
// Capture the group by domain configuration.
DomainConfiguration config = new DomainConfiguration();
DomainConfigurationParser parser = new DomainConfigurationParser(config);
parser.parse(request);
config.apply(dataSetTable.getGroupByProperty());
dataSetTable.setGroupByShowTotals(Boolean.valueOf(request.getRequestObject().getParameter("groupbyshowtotals")).booleanValue());
dataSetTable.setGroupByTotalsHtmlStyle(request.getRequestObject().getParameter("groupbytotalshtmlstyle"));
// Get for the selected non-group by column the scalar function to apply.
if (dataSetTable.getNonGroupByColumnIndexes().length > 0) {
int currentSelectedColumnIndex = Integer.parseInt(request.getRequestObject().getParameter("groupbyfunctionindex"));
if (currentSelectedColumnIndex == groupBySelectedColumnIndex) {
String functionCode = request.getRequestObject().getParameter("groupbyfunctioncode");
DataProperty originalDataProperty = dataSetTable.getOriginalDataProperty(groupBySelectedColumnIndex);
if (originalDataProperty.getDomain().isScalarFunctionSupported(functionCode)) {
dataSetTable.setGroupByFunctionCode(groupBySelectedColumnIndex, functionCode);
}
} else {
groupBySelectedColumnIndex = currentSelectedColumnIndex;
}
}
// Refresh the group by after applying the changes.
dataSetTable.refreshGroupBy();
// Close the group by config if requested.
if (closeGroupByConfig != null && closeGroupByConfig.equals("true")) {
showGroupByConfig = false;
}