private RowProvider buildProviderForRowLayout(KeyValueList properties) {

    if (!properties.contains("key")) {
      throw new RuntimeException(
          "row-layout expects a key for the data model array providing data for each row");
    }

    final String rowLayout = properties.getValue("row-layout");

    final String key = properties.getValue("key");
    return new RowProviderRowLayout(key, rowLayout);
  }
  private RowProvider buildProviderForTableLayout(KeyValueList properties) {

    final TableLayout tableLayout =
        GlobalState.fluidApp.getViewManager().getTableLayout(properties.getValue("table-layout"));

    RowProvider provider = new RowProviderTableLayout(tableLayout);
    return provider;
  }