<!DOCTYPE html>
<html>
<head>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta charset="utf-8">
<title>DEA</title>
<script id='sap-ui-bootstrap'
src='https://sapui5.hana.ondemand.com/resources/sap-ui-core.js'
data-sap-ui-theme='sap_horizon'
data-sap-ui-libs='sap.m, sap.viz'
data-sap-ui-xx-bindingSyntax='complex'></script>
<script id="view1" type="sapui5/xmlview">
<mvc:View controllerName="myController"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:viz="sap.viz.ui5.controls"
xmlns:viz.data="sap.viz.ui5.data"
xmlns:viz.feeds="sap.viz.ui5.controls.common.feeds">
<FlexBox direction="Row" justifyContent="SpaceAround" renderType="Div" class="sapUiSmallMargin">
<VBox width="45%">
<viz:VizFrame
class="sapUiLargeMarginTop"
id="donutChart"
width="100%"
height="300px"
vizType="donut"
selectData="onChartSelectionChanged"
deselectData="onChartSelectionChanged">
<viz:dataset>
<viz.data:FlattenedDataset data="{/chartData}">
<viz.data:dimensions>
<viz.data:DimensionDefinition name="Category" value="{category}" />
</viz.data:dimensions>
<viz.data:measures>
<viz.data:MeasureDefinition name="Value" value="{value}" />
</viz.data:measures>
</viz.data:FlattenedDataset>
</viz:dataset>
<viz:feeds>
<viz.feeds:FeedItem uid="size" type="Measure" values="Value"/>
<viz.feeds:FeedItem uid="color" type="Dimension" values="Category"/>
</viz:feeds>
</viz:VizFrame>
</VBox>
<VBox width="50%">
<Table id="tableId" items="{/tableData}">
<headerToolbar>
<Toolbar>
<Title id="tableHeader" text="All DEAs"/>
</Toolbar>
</headerToolbar>
<columns>
<Column><Text text="Name"/></Column>
<Column><Text text="Status"/></Column>
</columns>
<items>
<ColumnListItem>
<cells>
<Text text="{name}"/>
<Text text="{status}"/>
</cells>
</ColumnListItem>
</items>
</Table>
</VBox>
</FlexBox>
</mvc:View>
</script>
<script>
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel",
"sap/ui/model/Filter",
"sap/ui/model/FilterOperator"
], function(Controller, JSONModel, Filter, FilterOperator) {
"use strict";
return Controller.extend("myController", {
onInit: function () {
var oData = {
chartData: [
{ category: "Technology", value: 33 },
{ category: "Cloud", value: 33 },
{ category: "Basis", value: 33 }
],
tableData: [
{ name: "Aarav Mehta", status: "Technology" },
{ name: "Lena Thompson", status: "Cloud" },
{ name: "Carlos Ortega", status: "Basis" },
{ name: "Fatima Al-Fulan", status: "Technology" },
{ name: "Junho Park", status: "Cloud" },
{ name: "Nina Kozlova", status: "Cloud" }
]
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel);
var oVizFrame = this.byId("donutChart");
oVizFrame.setVizProperties({
title: { text: "Areas" },
tooltip: {
visible: false
},
interaction: {
selectability: {
mode: "SINGLE",
}
}
});
},
onChartSelectionChanged: function (oEvent) {
var oVizFrame = oEvent.getSource();
var oTable = this.byId("tableId");
var oBinding = oTable.getBinding("items");
var aSelection = oVizFrame.vizSelection();
if (aSelection && aSelection.length > 0) {
var selectedCategory = aSelection[0].data.Category;
var oFilter = new Filter("status", FilterOperator.EQ, selectedCategory);
this.byId("tableHeader").setText("DEAs for: " + selectedCategory);
oBinding.filter([oFilter]);
} else {
this.byId("tableHeader").setText("All DEAs");
oBinding.filter([]);
}
}
});
});
var myView = sap.ui.xmlview({
viewContent: jQuery('#view1').html()
});
myView.placeAt('content');
</script>
</head>
<body id='content' class='sapUiBody'>
</body>
</html>