How to get column's values from Grid

Hey guys,

I’m using Grid to display FedEx rate. I want to add a extra footer to sum the total price for each column. Does someone know how to get the column’s values?

Here is my code:

Grid<QuoteDetails> items = new Grid<QuoteDetails>();

		items.addColumn(QuoteDetails::getProductName).setId("item").setCaption("Item").setWidth(120)
				.setResizable(false);
		// items.addColumn(QuoteDetails::getWeight).setId("itemWeight").setCaption("Weight").setResizable(false);
		items.addComponentColumn(quoteDetail -> {
			TextField data = new TextField();
			data.setSizeFull();
			data.addStyleName(ValoTheme.TEXTFIELD_BORDERLESS);
			data.setValue(quoteDetail.getWeight());
			data.addValueChangeListener(event -> {
				if (!event.getValue().isEmpty() && event.getValue() != null) {
					quoteDetail.setWeight(event.getValue());
				}
			});
			data.addFocusListener(event -> data.selectAll());
			return data;
		}).setId("itemWeight").setCaption("Weight").setResizable(false);

		items.addColumn(QuoteDetails::getLength).setId("itemLength").setCaption("L").setResizable(false);
		items.addColumn(QuoteDetails::getWidth).setId("itemWidth").setCaption("W").setResizable(false);
		items.addColumn(QuoteDetails::getHeight).setId("itemHeight").setCaption("H").setResizable(false);
		items.addColumn(QuoteDetails::getQty).setId("itemQty").setCaption("QTY").setResizable(false);
		items.addColumn(QuoteDetails::getHome_listPrice).setId("h_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getHome_ourPrice).setId("h_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getGround_listPrice).setId("g_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getGround_ourPrice).setId("g_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getFirstOvernight_listPrice).setId("fon_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getFirstOvernight_ourPrice).setId("fon_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getPriorityOvernight_listPrice).setId("pon_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getPriorityOvernight_ourPrice).setId("pon_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getStandardOvernight_listPrice).setId("son_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getStandardOvernight_ourPrice).setId("son_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getTwoDayAM_listPrice).setId("2am_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getTwoDayAM_ourPrice).setId("2am_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getTwoDay_listPrice).setId("2_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getTwoDay_ourPrice).setId("2_our").setCaption("Our Price");
		items.addColumn(QuoteDetails::getExpressSaver_listPrice).setId("es_list").setCaption("List Price");
		items.addColumn(QuoteDetails::getExpressSaver_ourPrice).setId("es_our").setCaption("Our Price");
		
		
		
		HeaderRow groupingHeader = items.prependHeaderRow();
		groupingHeader.join("item", "itemWeight", "itemLength", "itemWidth", "itemHeight", "itemQty");
		groupingHeader.join("h_list", "h_our").setHtml("Home");
		groupingHeader.join("g_list", "g_our").setHtml("Ground");
		groupingHeader.join("fon_list", "fon_our").setHtml("First ON");
		groupingHeader.join("pon_list", "pon_our").setHtml("Priority ON");
		groupingHeader.join("son_list", "son_our").setHtml("Standard ON");
		groupingHeader.join("2am_list", "2am_our").setHtml("2Day AM");
		groupingHeader.join("2_list", "2_our").setHtml("2Day");
		groupingHeader.join("es_list", "es_our").setHtml("3Day");
		
		FooterRow totalFooter = items.appendFooterRow();
		totalFooter.join("item", "itemWeight", "itemLength", "itemWidth", "itemHeight", "itemQty").setText("Total :");
		totalFooter.getCell("h_list").setText("sum");  **<- how to sum column's data? Can I use lambda here? **
		
		
		FooterRow deliveryDateFooter = items.appendFooterRow();
		deliveryDateFooter.join("item", "itemWeight", "itemLength", "itemWidth", "itemHeight", "itemQty").setText("Delivery Date :");

Hi,

you will need to get the value from the backing data / DataProvider.

-Olli