code: private void decodeSelection(final FacesContext context, final Sheet sheet, final String jsonSelection) {
          if (LangUtils.isValueBlank(jsonSelection)) {
              return;
          }
  
          try {
              // data comes in: [ [row, col, oldValue, newValue] ... ]
              final JSONArray array = new JSONArray(jsonSelection);
              sheet.setSelectedRow(array.getInt(0));
              sheet.setSelectedColumn(sheet.getMappedColumn(array.getInt(1)));
              sheet.setSelectedLastRow(array.getInt(2));
              sheet.setSelectedLastColumn(array.getInt(3));
              sheet.setSelection(jsonSelection);
          }
          catch (final JSONException e) {
              throw new FacesException("Failed parsing Ajax JSON message for cell selection event:" + e.getMessage(), e);
          }
      }
docs: Decodes the user Selection JSON data
  
  @param context
  @param sheet
  @param jsonSelection