Forum Discussion

Husain's avatar
Husain
Advocate I
6 years ago

Selections for matrix data view mapping

Hi,

 

I am trying to create selections using SELECTION MANAGER for a custom visual which uses matrix data mapping but to no avail

 

Here are the relevant excerpts. Would be so grateful for your time and help

 

 constructor(options: VisualConstructorOptions) {
            this.selectionManager = options.host.createSelectionManager();
            this.selectionIdBuilder = options.host.createSelectionIdBuilder();
    }

public update(options: VisualUpdateOptions) {
        let dataViews = options.dataViews[0].matrix;
        if (!dataViews
            || !dataViews.rows
            || !dataViews.rows.root
            || !dataViews.rows.root.children
            || !dataViews.rows.root.children.length
            || !dataViews.columns
            || !dataViews.columns.root
            || !dataViews.columns.root.children
            || !dataViews.columns.root.children.length) { return }

  let root = d3.hierarchy(dataViews.rows.root)

 root.each(d => d.selectionId = this.selectionIdBuilder.withMatrixNode(d, dataViews.rows.levels)
              .createSelectionId())
console.log(root)

 here is dataview mapping from my Capabilities.json 

   "dataViewMappings": [
        {
            "matrix": {
                "rows": {
                    "for": {
                        "in": "Category"
                    }
                },
                "values": {
                    "select": [
                        {
                            "for": {
                                "in": "Measure"
                            }
                        }
                    ]
                }
            }
        }
    ]

 

Following is snap for my console. I get the selectionID property but it is same for all nodes(parent/child) and the key is null

 


dm-p 
Nishantjain Anonymous