示例#1
0
 /**
  * Set the tables parameters
  *
  * @param formWidget the widget
  * @param evaluatedExpressions the map of evaluated expressions
  * @param context the context including the URL parameters
  * @throws FormNotFoundException
  * @throws FormServiceProviderNotFoundException
  */
 @SuppressWarnings("unchecked")
 public void setTablesParams(
     final FormWidget formWidget,
     final Map<String, Serializable> evaluatedExpressions,
     final Map<String, Object> context)
     throws FormNotFoundException, FormServiceProviderNotFoundException {
   final String widgetId = formWidget.getId();
   if (WidgetType.TABLE.equals(formWidget.getType())
       || WidgetType.EDITABLE_GRID.equals(formWidget.getType())) {
     final Object valueColumnIndex =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_VALUE_COLUMN_INDEX);
     if (valueColumnIndex != null) {
       try {
         formWidget.setValueColumnIndex((Integer) valueColumnIndex);
       } catch (final Exception e) {
         if (LOGGER.isLoggable(Level.WARNING)) {
           LOGGER.log(
               Level.WARNING,
               "The max number of columns has to be set with an integer or a groovy expression returning an integer.");
         }
         formWidget.setValueColumnIndex(0);
       }
     }
     final Object maxColumns =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_MAX_COLUMNS);
     if (maxColumns != null) {
       try {
         formWidget.setMaxColumns((Integer) maxColumns);
       } catch (final Exception e) {
         if (LOGGER.isLoggable(Level.WARNING)) {
           LOGGER.log(
               Level.WARNING,
               "The max number of columns has to be set with an integer or a groovy expression returning an integer.");
         }
         formWidget.setMaxColumns(-1);
       }
     } else {
       formWidget.setMaxColumns(-1);
     }
     final Object minColumns =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_MIN_COLUMNS);
     if (minColumns != null) {
       try {
         formWidget.setMinColumns((Integer) minColumns);
       } catch (final Exception e) {
         if (LOGGER.isLoggable(Level.WARNING)) {
           LOGGER.log(
               Level.WARNING,
               "The min number of columns has to be set with an integer or a groovy expression returning an integer.");
         }
         formWidget.setMinColumns(-1);
       }
     } else {
       formWidget.setMinColumns(-1);
     }
     final Object maxRows =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_MAX_ROWS);
     if (maxRows != null) {
       try {
         formWidget.setMaxRows((Integer) maxRows);
       } catch (final Exception e) {
         if (LOGGER.isLoggable(Level.WARNING)) {
           LOGGER.log(
               Level.WARNING,
               "The max number of rows has to be set with an integer or a groovy expression returning an integer.");
         }
         formWidget.setMaxRows(-1);
       }
     } else {
       formWidget.setMaxRows(-1);
     }
     final Object minRows =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_MIN_ROWS);
     if (minRows != null) {
       try {
         formWidget.setMinRows((Integer) minRows);
       } catch (final Exception e) {
         if (LOGGER.isLoggable(Level.WARNING)) {
           LOGGER.log(
               Level.WARNING,
               "The max number of rows has to be set with an integer or a groovy expression returning an integer.");
         }
         formWidget.setMinRows(-1);
       }
     } else {
       formWidget.setMinRows(-1);
     }
     final Object verticalHeader =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_VERTICAL_HEADER);
     List<String> verticalHeaderList = null;
     if (verticalHeader != null) {
       try {
         verticalHeaderList = new ArrayList<String>((Collection<String>) verticalHeader);
       } catch (final ClassCastException e) {
         if (LOGGER.isLoggable(Level.SEVERE)) {
           LOGGER.log(
               Level.SEVERE,
               "The vertical header expression for widget "
                   + formWidget.getId()
                   + " should return a Collection.",
               e);
         }
       }
     } else if (evaluatedExpressions.containsKey(
         widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_VERTICAL_HEADER + 0)) {
       verticalHeaderList = new ArrayList<String>();
       int verticalHeaderIndex = 0;
       do {
         final Object verticalHeaderCell =
             evaluatedExpressions.get(
                 widgetId
                     + EXPRESSION_KEY_SEPARATOR
                     + WIDGET_VERTICAL_HEADER
                     + verticalHeaderIndex);
         try {
           verticalHeaderList.add((String) verticalHeaderCell);
         } catch (final ClassCastException e) {
           if (LOGGER.isLoggable(Level.SEVERE)) {
             LOGGER.log(
                 Level.SEVERE,
                 "All the vertical header expressions for widget "
                     + formWidget.getId()
                     + " should return a String.",
                 e);
           }
         }
         verticalHeaderIndex++;
       } while (evaluatedExpressions.containsKey(
           widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_VERTICAL_HEADER + verticalHeaderIndex));
     }
     formWidget.setVerticalHeader(verticalHeaderList);
     final Object horizontalHeader =
         evaluatedExpressions.get(widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_HORIZONTAL_HEADER);
     List<String> horizontalHeaderList = null;
     if (horizontalHeader != null) {
       try {
         horizontalHeaderList = new ArrayList<String>((Collection<String>) horizontalHeader);
       } catch (final ClassCastException e) {
         if (LOGGER.isLoggable(Level.SEVERE)) {
           LOGGER.log(
               Level.SEVERE,
               "The horizontal header expression for widget "
                   + formWidget.getId()
                   + " should return a Collection.",
               e);
         }
       }
     } else if (evaluatedExpressions.containsKey(
         widgetId + EXPRESSION_KEY_SEPARATOR + WIDGET_HORIZONTAL_HEADER + 0)) {
       horizontalHeaderList = new ArrayList<String>();
       int horizontalHeaderIndex = 0;
       do {
         final Object horizontalHeaderCell =
             evaluatedExpressions.get(
                 widgetId
                     + EXPRESSION_KEY_SEPARATOR
                     + WIDGET_HORIZONTAL_HEADER
                     + horizontalHeaderIndex);
         try {
           horizontalHeaderList.add((String) horizontalHeaderCell);
         } catch (final ClassCastException e) {
           if (LOGGER.isLoggable(Level.SEVERE)) {
             LOGGER.log(
                 Level.SEVERE,
                 "All the horizontal header expressions for widget "
                     + formWidget.getId()
                     + " should return a String.",
                 e);
           }
         }
         horizontalHeaderIndex++;
       } while (evaluatedExpressions.containsKey(
           widgetId
               + EXPRESSION_KEY_SEPARATOR
               + WIDGET_HORIZONTAL_HEADER
               + horizontalHeaderIndex));
     }
     formWidget.setHorizontalHeader(horizontalHeaderList);
   }
 }