code: protected void layoutGroupFooterLabels(DJGroup djgroup, JRDesignGroup jgroup, int x, int y, int width, int height) {
  		//List footerVariables = djgroup.getFooterVariables();
  		DJGroupLabel label = djgroup.getFooterLabel();
  
  		//if (label == null || footerVariables.isEmpty())
  			//return;
  
  		//PropertyColumn col = djgroup.getColumnToGroupBy();
  		JRDesignBand band =  LayoutUtils.getBandFromSection((JRDesignSection) jgroup.getGroupFooterSection());
  
  //		log.debug("Adding footer group label for group " + djgroup);
  
  		/*DJGroupVariable lmvar = findLeftMostColumn(footerVariables);
  		AbstractColumn lmColumn = lmvar.getColumnToApplyOperation();
  		int width = lmColumn.getPosX().intValue()  - col.getPosX().intValue();
  
  		int yOffset = findYOffsetForGroupLabel(band);*/
  
  		JRDesignExpression labelExp;
  		if (label.isJasperExpression()) //a text with things like "$F{myField}"
  			labelExp = ExpressionUtils.createStringExpression(label.getText());
  		else if (label.getLabelExpression() != null){
  			labelExp = ExpressionUtils.createExpression(jgroup.getName() + "_labelExpression", label.getLabelExpression(), true);
  		} else //a simple text
  			//labelExp = ExpressionUtils.createStringExpression("\""+ Utils.escapeTextForExpression(label.getText())+ "\"");
  			labelExp = ExpressionUtils.createStringExpression("\""+ label.getText() + "\"");
  		JRDesignTextField labelTf = new JRDesignTextField();
  		labelTf.setExpression(labelExp);
  		labelTf.setWidth(width);
  		labelTf.setHeight(height);
  		labelTf.setX(x);
  		labelTf.setY(y);
  		//int yOffsetGlabel = labelTf.getHeight();
  		labelTf.setPositionType( PositionTypeEnum.FIX_RELATIVE_TO_TOP );
  		applyStyleToElement(label.getStyle(), labelTf);
  		band.addElement(labelTf);
  	}
docs: Creates needed textfields for general label in footer groups.
  @param djgroup
  @param jgroup