From 5d0f1d6d5f767c5d6f7da372fdedaec30d5e619e Mon Sep 17 00:00:00 2001 From: Hyyan Abo Fakher Date: Tue, 16 Jan 2018 14:01:07 +0100 Subject: [PATCH] Resolve issue #8 - implement setSelectedRow() --- BBjGridExWidget.bbj | 30 ++++++++++++++++++++++++++++++ js/BBjGridExWidget.js | 10 ++++++++++ 2 files changed, 40 insertions(+) diff --git a/BBjGridExWidget.bbj b/BBjGridExWidget.bbj index 86f6fcba..a6fc0c6d 100644 --- a/BBjGridExWidget.bbj +++ b/BBjGridExWidget.bbj @@ -114,6 +114,36 @@ class public BBjGridExWidget extends BBjWidget #GroupChildCount=status! methodend + rem /** + rem * set the selected row + rem */ + method public void setSelectedRow(BBjNumber x!) + + script$="bbj_grid_widget_set_selected_rows([" + str(x!) + "]);" + #executeScript(script$) + methodend + + rem /** + rem * set the selected row indices + rem */ + method public void setSelectedRows(BBjVector x!) + + script$="bbj_grid_widget_set_selected_rows([" + it! = x!.iterator() + first=1 + while it!.hasNext() + if first + first=0 + else + script$=script$+"," + fi + script$=script$+str(it!.next()) + wend + script$=script$+"]);" + + #executeScript(script$) + methodend + rem /** rem * Event Handler for Native JavaScript Event (from the Grid) rem * Determines and dispatches the actual event diff --git a/js/BBjGridExWidget.js b/js/BBjGridExWidget.js index 8a550607..638915d8 100644 --- a/js/BBjGridExWidget.js +++ b/js/BBjGridExWidget.js @@ -131,6 +131,16 @@ function bbj_grid_widget_fit_grid(fitmode) { $doc.bbj_grid_widget.api.sizeColumnsToFit(); } +function bbj_grid_widget_set_selected_rows(rows) { + + console.log(rows); + $doc.bbj_grid_widget.api.forEachNode(function (node) { + if (rows.indexOf(node.rowIndex) > -1) { + node.setSelected( true ); + } + }.bind(this)); +} + function bbj_grid_widget_get_state() { var state = $doc.bbj_grid_widget.columnApi.getColumnState();