outline/queryByExample.js
function viewAndSaveQuery (outline, selection) {
  var qs = outline.qs
  UI.log.info('outline.doucment is now ' + outline.document.location)
  var q = saveQuery(selection, qs)
  /*
  if (tabulator.isExtension) {
    // tabulator.drawInBestView(q)
  } else
  */

  for (let i = 0; i < qs.listeners.length; i++) {
    qs.listeners[i].getActiveView().view.drawQuery(q)
    qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())
  }
}
function viewAndSaveQuery (outline, selection) {
  var qs = outline.qs
  UI.log.info('outline.doucment is now ' + outline.document.location)
  var q = saveQuery(selection, qs)
  /*
  if (tabulator.isExtension) {
    // tabulator.drawInBestView(q)
  } else
  */

  for (let i = 0; i < qs.listeners.length; i++) {
    qs.listeners[i].getActiveView().view.drawQuery(q)
    qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())
  }
}
When the user asks for all list of all matching parts of the data