@SuppressWarnings("unchecked")
  @Override
  protected void prepareForm(final ActionContext context) throws Exception {
    final HttpServletRequest request = context.getRequest();

    if (!context.isBroker()) {
      throw new ValidationException();
    }

    final Member broker = (Member) context.getElement();
    final BrokerGroup brokerGroup = (BrokerGroup) broker.getGroup();

    // Get broker commission transaction fees (from member) related to the broker group, including
    // the not enabled ones
    final TransactionFeeQuery transactionFeeQuery = new TransactionFeeQuery();
    transactionFeeQuery.setEntityType(BrokerCommission.class);
    transactionFeeQuery.setGeneratedTransferTypeFromNature(AccountType.Nature.MEMBER);
    transactionFeeQuery.setBrokerGroup(brokerGroup);
    transactionFeeQuery.setReturnDisabled(true);
    final List<BrokerCommission> groupCommissions =
        (List<BrokerCommission>) transactionFeeService.search(transactionFeeQuery);

    // Get current default broker commissions
    final List<DefaultBrokerCommission> currentDefaults =
        commissionService.loadDefaultBrokerCommissions(
            broker, DefaultBrokerCommission.Relationships.BROKER_COMMISSION);

    // Prepare list to JSP
    final List<DefaultBrokerCommission> defaultBrokerCommissions =
        buildCommissions(groupCommissions, currentDefaults);

    request.setAttribute("broker", broker);
    request.setAttribute("defaultBrokerCommissions", defaultBrokerCommissions);
    RequestHelper.storeEnum(request, BrokerCommission.When.class, "whens");
    RequestHelper.storeEnum(request, Amount.Type.class, "amountTypes");
  }