public ComponentGVO convert(
      Component component,
      Window currentWindow,
      ApplicationMapping applicationMapping,
      ApplicationContext context,
      SessionContainer ss) {
    ComponentGVO vo = null;
    if (component != null) {
      if (component instanceof BarChart) {
        BarChart c = (BarChart) component;
        BarChartGVO voTemp = new BarChartGVO();
        UIAssemblerHelper.copyFields(c, currentWindow, voTemp, applicationMapping, context, ss);
        voTemp.setLegend(c.getLegend());
        voTemp.setLinearAxis(
            (LinearAxisGVO)
                ComponentUIAssembler.convert(
                    c.getLinearAxis(), currentWindow, applicationMapping, context, ss));
        if (c.getChartItems() != null) {
          voTemp.setChartItems(new ArrayList<ChartItemGVO>());
          for (ChartItem ci : c.getChartItems()) {
            ChartItemGVO ciGvo =
                (ChartItemGVO)
                    ComponentUIAssembler.convert(
                        ci, currentWindow, applicationMapping, context, ss);
            voTemp.getChartItems().add(ciGvo);
          }
        }
        voTemp.setCategoryAxis(
            (CategoryAxisGVO)
                ComponentUIAssembler.convert(
                    c.getCategoryAxis(), currentWindow, applicationMapping, context, ss));

        vo = voTemp;
      }
    }
    return vo;
  }
  // CHECKSTYLE.OFF: CyclomaticComplexity
  public ComponentGVO convert(
      Component object,
      Window currentWindow,
      ApplicationMapping applicationMapping,
      ApplicationContext context,
      SessionContainer ss) {
    ComponentGVO vo = null;
    if (object != null) {
      if (object instanceof DataGrid) {
        DataGrid dataGrid = (DataGrid) object;
        DataGridGVO voTemp = new DataGridGVO();
        UIAssemblerHelper.copyFields(
            dataGrid, currentWindow, voTemp, applicationMapping, context, ss);
        // extra check on the dimension of the width:
        // Since the datagrid is inspired by the Flex Datagrid, we apply the same rules.

        if (voTemp.getWidth() == null || voTemp.getWidth().trim().length() == 0) {
          voTemp.setWidth(
              "300px"); // http://livedocs.adobe.com/flex/3/langref/mx/controls/DataGrid.html
        }
        if (voTemp.getHeight() == null || voTemp.getHeight().trim().length() == 0) {
          voTemp.setHeight(
              "140px"); // 7x 20 http://livedocs.adobe.com/flex/3/langref/mx/controls/DataGrid.html
        }

        voTemp.setMaxRows(dataGrid.getMaxRows());
        voTemp.setPageSize(dataGrid.getPageSize());
        voTemp.setPageScroll(dataGrid.getPageScroll());
        voTemp.setMinRows(dataGrid.getMinRows());
        voTemp.setDelete(dataGrid.getDelete());
        voTemp.setAdd(dataGrid.getAdd());
        voTemp.setExport(dataGrid.getExport());
        voTemp.setImportEnabled(dataGrid.getImportEnabled());
        voTemp.setMultipleSelect(dataGrid.getMultipleSelect());

        if (dataGrid.getRowColors() != null) {
          voTemp.setRowColors((dataGrid.getRowColors().trim()).split(","));
        }

        if (dataGrid.hasOverflow()) {
          voTemp.setOverflow(
              (PanelGVO)
                  ComponentUIAssembler.convert(
                      dataGrid.getOverflow(), currentWindow, applicationMapping, context, ss));
        }

        if (dataGrid.getColumns() != null) {
          Iterator<DataGridColumn> itr = dataGrid.getColumns().iterator();
          DataGridColumnGVO[] columns = new DataGridColumnGVO[dataGrid.getColumns().size()];

          int index = 0;
          while (itr.hasNext()) {
            columns[index] =
                (DataGridColumnGVO)
                    ComponentUIAssembler.convert(
                        (Component) itr.next(), currentWindow, applicationMapping, context, ss);
            columns[index].setParentName(dataGrid.getId());
            //						 if (columns[index].getIdentifyingField().booleanValue()){
            //							 voTemp.getIdFields().add(columns[index].getFieldName());
            //						 }
            index++;
          }

          /*if (dataGrid.getDelete()!=null && dataGrid.getDelete().booleanValue()){
          	columns[index] = (DataGridColumnGVO)ComponentUIAssembler.convert(createDeleteColumn(),applicationMapping);
          	columns[index].setParentName(dataGrid.getId());
          }*/

          voTemp.setColumns(columns);
        }
        if (dataGrid.getDelete().booleanValue()
            || dataGrid.getAdd().booleanValue()
            || dataGrid.getEditable().booleanValue()) {
          voTemp.setSaveComponent(
              createImage(dataGrid, "save", "images/save.png", "Save changes", dataGrid.getId()));
          voTemp.setRefreshComponent(
              createImage(
                  dataGrid, "refresh", "images/refresh.png", "Refresh Data", dataGrid.getId()));
          voTemp.setCancelComponent(
              createImage(dataGrid, "cancel", "images/undo.png", "Undo changes", dataGrid.getId()));
        }

        if (dataGrid.getDelete().booleanValue()) {
          voTemp.setDeleteComponent(
              createImage(
                  dataGrid, "delete", "images/delete.png", "Delete record(s)", dataGrid.getId()));
        }
        if (dataGrid.getAdd().booleanValue()) {
          voTemp.setAddComponent(
              createImage(dataGrid, "add", "images/add.gif", "Add a new record", dataGrid.getId()));
        }

        if (dataGrid.getExport().booleanValue()) {
          voTemp.setExportComponent(
              createImage(dataGrid, "export", "images/export.gif", "Export", dataGrid.getId()));
        }

        if (dataGrid.getPageSize() != null && dataGrid.getPageSize().intValue() > 0) {
          voTemp.setPageSizeComponent(
              createHiddenComponent(dataGrid, "pagesize", dataGrid.getPageSize()));
          voTemp.setPageSize(dataGrid.getPageSize());
          voTemp.setOffSetComponent(createHiddenComponent(dataGrid, "offset", "0"));
        }

        vo = voTemp;
      }
    }
    return vo;
  }