<!DOCTYPE HTML>
<html>

	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta charset="utf-8">

		<title>Select All in Multi ComboBox</title>

		<script id="sap-ui-bootstrap"
			src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
			data-sap-ui-libs="sap.m"
			data-sap-ui-theme="sap_Belize"
			data-sap-ui-xx-bindingSyntax="complex"
			data-sap-ui-preload="async"
			data-sap-ui-compatVersion="edge" 
			data-sap-ui-resourceroots='{"sap.m.sample.SelectAll": "./"}'>
		</script>

		<!-- Application launch configuration -->
		<script>

			sap.ui.getCore().attachInit(function() {
				new sap.m.App ({
					pages: [
						new sap.m.Page({
							title: "Select All in Multi ComboBox", 
							enableScrolling : true,
							content: [ new sap.ui.core.ComponentContainer({
								name : "sap.m.sample.SelectAll"
							})]
						})
					]
				}).placeAt("content");
			});

		</script>
	</head>

	<!-- UI Content -->
	<body class="sapUiBody" id="content" role="application">
	</body>

</html>
sap.ui.define(['jquery.sap.global',
    'sap/ui/core/mvc/Controller',
    'sap/ui/model/json/JSONModel'
  ],
  function(jQuery, Controller, JSONModel) {

    "use strict";

    var CController = Controller.extend("sap.m.sample.SelectAll.C", {


      onInit: function() {

        //Create Json Model
        var oModel = new JSONModel();

        //Load Data in Synchronous mode, 
        //so that we can edit the data to add Select All option 
        oModel.loadData("products.json", "", false);

        //Add Select All option as first record
        if (oModel.oData.ProductCollection.length > 0) {
          oModel.oData.ProductCollection.unshift({
            "ProductId": "All",
            "Name": "Select All",
          })
        } //if(!oModel.oData.ProductCollection)

        this.getView().setModel(oModel, "oMCBModel");
      },

      //Trigger on Selecting each record
      onSelctingMCB: function(oEvent) {

        var changedItem = oEvent.getParameter("changedItem");
        var isSelected = oEvent.getParameter("selected");
        var state = "Selected";

        if (!isSelected) {
          state = "Deselected"
        }

        //Check if "Selected All is selected
        if (changedItem.mProperties.key == "All") {
          var oName, res;

          //If it is Selected
          if (state == "Selected") {

            var oItems = oEvent.oSource.mAggregations.items;
            for (var i = 0; i < oItems.length; i++) {
              if (i == 0) {
                oName = oItems[i].mProperties.key;
              } else {
                oName = oName + ',' + oItems[i].mProperties.key;
              } //If i == 0									
            } //End of For Loop

            res = oName.split(",");
            oEvent.oSource.setSelectedKeys(res);

          } else {
            res = null;
            oEvent.oSource.setSelectedKeys(res);
          }
        }
      }


    });


    return CController;

  });
<mvc:View controllerName="sap.m.sample.SelectAll.C" xmlns:l="sap.ui.layout"
	xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m">
	<App>
		<Page title="Select All in Multi Combo Box" class="sapUiContentPadding">
			<content>
				<Label text="Multi Combo Box" labelFor="MCB" width="300px" />
				<MultiComboBox width="300px" id="MCB" selectionChange="onSelctingMCB"
					items="{
				path: 'oMCBModel>/ProductCollection'	}">
					<core:Item key="{oMCBModel>ProductId}" text="{oMCBModel>Name}" />
				</MultiComboBox>
			</content>
		</Page>
	</App>
</mvc:View>
sap.ui.define(['sap/ui/core/UIComponent'],
	function(UIComponent) {
	"use strict";

	var Component = UIComponent.extend("sap.m.sample.SelectAll.Component", {

		metadata : {
			rootView : "sap.m.sample.SelectAll.V",
			dependencies : {
				libs : [
					"sap.m",
					"sap.ui.layout"
				]
			},
			config : {
				sample : {
					files : [
						"V.view.xml",
						"C.controller.js"
					]
				}
			}
		}
	});

	return Component;

});
{
	"ProductCollection": [
		{
			"ProductId": "1239102",
			"Name": "Power Projector 4713",
			"Category": "Projector",
			"SupplierName": "Titanium",
			"Description": "A very powerful projector with special features for Internet usability, USB",
			"WeightMeasure": 1467,
			"WeightUnit": "g",
			"Price": 856.49,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 3,
			"UoM": "PC",
			"Width": 51,
			"Depth": 42,
			"Height": 18,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-6100.jpg"
		},
		{
			"ProductId": "2212-121-828",
			"Name": "Gladiator MX",
			"Category": "Graphics Card",
			"SupplierName": "Technocom",
			"Description": "Gladiator MX: DDR2 RoHS 128MB Supporting 512MB Clock rate: 350 MHz Memory Clock: 533 MHz, Bus Type: PCI-Express, Memory Type: DDR2 Memory Bus: 32-bit Highlighted Features: DVI Out, TV Out , HDTV",
			"WeightMeasure": 321,
			"WeightUnit": "g",
			"Price": 81.7,
			"CurrencyCode": "EUR",
			"Status": "Discontinued",
			"Quantity": 10,
			"UoM": "PC",
			"Width": 34,
			"Depth": 14,
			"Height": 2,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1071.jpg"
		},
		{
			"ProductId": "K47322.1",
			"Name": "Hurricane GX",
			"Category": "Graphics Card",
			"SupplierName": "Red Point Stores",
			"Description": "Hurricane GX: DDR2 RoHS 512MB Supporting 1024MB Clock rate: 550 MHz Memory Clock: 933 MHz, Bus Type: PCI-Express, Memory Type: DDR2 Memory Bus: 64-bit Highlighted Features: DVI Out, TV-In, TV-Out, HDTV",
			"WeightMeasure": 588,
			"WeightUnit": "g",
			"Price": 219,
			"CurrencyCode": "EUR",
			"Status": "Out of Stock",
			"Quantity": 25,
			"UoM": "PC",
			"Width": 34,
			"Depth": 14,
			"Height": 2,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1072.jpg"
		},
		{
			"ProductId": "22134T",
			"Name": "Webcam",
			"Category": "Accessory",
			"SupplierName": "Technocom",
			"Description": "Web camera, color, High-Speed USB",
			"WeightMeasure": 700,
			"WeightUnit": "g",
			"Price": 59,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 22,
			"UoM": "PC",
			"Width": 18,
			"Depth": 19,
			"Height": 21,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1112.jpg"
		},
		{
			"ProductId": "P1239823",
			"Name": "Monitor Locking Cable",
			"Category": "Accessory",
			"SupplierName": "Technocom",
			"Description": "Lock for Monitor",
			"WeightMeasure": 40,
			"WeightUnit": "g",
			"Price": 13.49,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 30,
			"UoM": "PC",
			"Width": 11,
			"Depth": 11,
			"Height": 3,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1111.jpg"
		},
		{
			"ProductId": "214-121-828",
			"Name": "Laptop Case",
			"Category": "Accessory",
			"SupplierName": "Red Point Stores",
			"Description": "Laptop Case with room for pencils and other items",
			"WeightMeasure": 1289,
			"WeightUnit": "g",
			"Price": 78.99,
			"CurrencyCode": "EUR",
			"Status": "Discontinued",
			"Quantity": 15,
			"UoM": "PC",
			"Width": 53,
			"Depth": 34,
			"Height": 7,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1114.jpg"
		},
		{
			"ProductId": "XKP-312548",
			"Name": "USB Stick 16 GByte",
			"Category": "Accessory",
			"SupplierName": "Red Point Stores",
			"Description": "USB 2.0 HighSpeed 16GB",
			"WeightMeasure": 11,
			"WeightUnit": "g",
			"Price": 17.19,
			"CurrencyCode": "EUR",
			"Status": "Out of Stock",
			"Quantity": 45,
			"UoM": "PC",
			"Width": 6,
			"Depth": 2,
			"Height": 0.5,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-6120.jpg"
		},
		{
			"ProductId": "KTZ-12012.V2",
			"Name": "Deskjet Super Highspeed",
			"Category": "Printer",
			"SupplierName": "Red Point Stores",
			"Description": "1200 dpi x 1200 dpi - up to 25 ppm (mono) / up to 24 ppm (colour) - capacity: 100 sheets - Hi-Speed USB2.0, Ethernet",
			"WeightMeasure": 100,
			"WeightUnit": "g",
			"Price": 117.19,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 10,
			"UoM": "PC",
			"Width": 87,
			"Depth": 45,
			"Height": 39,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1052.jpg"
		},
		{
			"ProductId": "89932-922",
			"Name": "Laser Allround Pro",
			"Category": "Printer",
			"SupplierName": "Red Point Stores",
			"Description": "Print up to 25 ppm letter and 24 ppm A4 color or monochrome, with a first-page-out-time of less than 13 seconds for monochrome and less than 15 seconds for color",
			"WeightMeasure": 2134,
			"WeightUnit": "g",
			"Price": 39.99,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 12,
			"UoM": "PC",
			"Width": 42,
			"Depth": 29,
			"Height": 31,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1040.jpg"
		},
		{
			"ProductId": "38094020.1",
			"Name": "Flat S",
			"Category": "Monitor",
			"SupplierName": "Very Best Screens",
			"Description": "19 inches Optimum Resolution 1600 x 1200 @ 85Hz, Max resolution 1984 x 1488 @ 75Hz, Dot Pitch: 0.24mm",
			"WeightMeasure": 1401,
			"WeightUnit": "g",
			"Price": 339,
			"CurrencyCode": "EUR",
			"Status": "Out of Stock",
			"Quantity": 12,
			"UoM": "PC",
			"Width": 88,
			"Depth": 13,
			"Height": 49,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1030.jpg"
		},
		{
			"ProductId": "870394932",
			"Name": "Flat Medium",
			"Category": "Monitor",
			"SupplierName": "Very Best Screens",
			"Description": "21 inches Optimum Resolution 1984 x 1488 @ 85Hz, Max resolution 1720 x 1280 @ 75Hz, Dot Pitch: 0.24mm",
			"WeightMeasure": 1800,
			"WeightUnit": "g",
			"Price": 639,
			"CurrencyCode": "EUR",
			"Status": "Out of Stock",
			"Quantity": 16,
			"UoM": "PC",
			"Width": 102,
			"Depth": 13,
			"Height": 54,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1032.jpg"
		},
		{
			"ProductId": "282948303-02",
			"Name": "Flat X-large II",
			"Category": "Monitor",
			"SupplierName": "Very Best Screens",
			"Description": "23 inches Optimum Resolution 2048 × 1536 @ 85Hz, Max resolution 2080 × 1560 @ 75Hz, Dot Pitch: 0.24mm",
			"WeightMeasure": 2100,
			"WeightUnit": "g",
			"Price": 1239,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 5,
			"UoM": "PC",
			"Width": 112,
			"Depth": 13,
			"Height": 60,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1138.jpg"
		},
		{
			"ProductId": "OP-38800002",
			"Name": "High End Laptop 2b",
			"Category": "Laptop",
			"SupplierName": "Titanium",
			"Description": "Notebook Professional 17 with 2,3GHz - 17 inches XGA - 2048MB DDR2 SDRAM - 40GB Hard Disc - DVD-Writer (DVD-R/+R/-RW/-RAM)",
			"WeightMeasure": 1190,
			"WeightUnit": "g",
			"Price": 939,
			"CurrencyCode": "EUR",
			"Status": "Out of Stock",
			"Quantity": 18,
			"UoM": "PC",
			"Width": 64,
			"Depth": 34,
			"Height": 4,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1010.jpg"
		},
		{
			"ProductId": "977700-11",
			"Name": "Hardcore Hacker",
			"Category": "Keyboard",
			"SupplierName": "Titanium",
			"Description": "Corded Keyboard with special keys for media control, USB",
			"WeightMeasure": 651,
			"WeightUnit": "g",
			"Price": 89,
			"CurrencyCode": "EUR",
			"Status": "Available",
			"Quantity": 20,
			"UoM": "PC",
			"Width": 53,
			"Depth": 24,
			"Height": 6,
			"DimUnit": "cm",
			"ProductPicUrl": "https://openui5.hana.ondemand.com/test-resources/sap/ui/demokit/explored/img/HT-1063.jpg"
		}
	],
	"ProductCollectionStats": {
		"Counts": {
			"Total": 14,
			"Weight": {
				"Ok": 7,
				"Heavy": 5,
				"Overweight": 2
			}
		},
		"Groups": {
			"Category": {
				"Projector": 1,
				"Graphics Card": 2,
				"Accessory": 4,
				"Printer": 2,
				"Monitor": 3,
				"Laptop": 1,
				"Keyboard": 1
			},
			"SupplierName": {
				"Titanium": 3,
				"Technocom": 3,
				"Red Point Stores": 5,
				"Very Best Screens": 3
			}
		},
		"Filters": [
			{
				"type": "Category",
				"values": [
					{
						"text": "Projector",
						"data": 1
					},
					{
						"text": "Graphics Card",
						"data": 2
					},
					{
						"text": "Accessory",
						"data": 4
					},
					{
						"text": "Printer",
						"data": 2
					},
					{
						"text": "Monitor",
						"data": 3
					},
					{
						"text": "Laptop",
						"data": 1
					},
					{
						"text": "Keyboard",
						"data": 1
					}
				]
			},
			{
				"type": "SupplierName",
				"values": [
					{
						"text": "Titanium",
						"data": 3
					},
					{
						"text": "Technocom",
						"data": 3
					},
					{
						"text": "Red Point Stores",
						"data": 5
					},
					{
						"text": "Very Best Screens",
						"data": 3
					}
				]
			}
		]
	}
}