private List<AttrColumnDescription> getAttrColumnsUsedInSheet(ExcelImport<EmployeeBillingExcelRow> importer) { final List<String> columnNames = importer.getColumnNames(); return ExtendEmployeeDataEnum .getAllAttrColumnDescriptions() .stream() .filter(desc -> columnNames.contains(I18nHelper.getLocalizedMessage(desc.getI18nKey()))) .collect(Collectors.toList()); }
private void createAttrColumns(ExtendEmployeeDataEnum eede, List<IColumn<EmployeeDO, String>> columns, boolean sortable, CellItemListener<EmployeeDO> cellItemListener) { if (eede != null) { columns.addAll( eede.getAttrColumnDescriptions() .stream() .map(desc -> new AttrInputCellItemListenerPropertyColumn<>( new ResourceModel(desc.getI18nKey()), getSortable(desc.getI18nKey(), sortable), desc.getGroupName(), desc.getPropertyName(), cellItemListener, timeableService, employeeService, guiAttrSchemaService, form.selectedMonth, form.selectedYear)) .collect(Collectors.toList())); } }
@Override protected void addHeadColumns(final RepeatingView headColRepeater) { headColRepeater.add(new Label(headColRepeater.newChildId(), getString("id"))); headColRepeater.add(new Label(headColRepeater.newChildId(), getString("fibu.employee.user"))); final List<AttrColumnDescription> attrColumnsInSheet = parentPage.getAttrColumnsInSheet(); if (attrColumnsInSheet != null) { attrColumnsInSheet.forEach( desc -> headColRepeater.add(new Label(headColRepeater.newChildId(), getString(desc.getI18nKey()))) ); } }
private List<AttrColumnDescription> importEmployeeBillings(final ExcelImport<EmployeeBillingExcelRow> importer) { final ImportedSheet<EmployeeDO> importedSheet = new ImportedSheet<>(); storage.addSheet(importedSheet); importedSheet.setName(NAME_OF_EXCEL_SHEET); importer.setNameRowIndex(ROW_INDEX_OF_COLUMN_NAMES); importer.setStartingRowIndex(ROW_INDEX_OF_COLUMN_NAMES + 1); // mapping from excel column name to the bean field name final Map<String, String> map = new HashMap<>(); map.put("Id", "id"); map.put(I18nHelper.getLocalizedMessage("fibu.employee.user"), "fullName"); ExtendEmployeeDataEnum.getAllAttrColumnDescriptions().forEach( desc -> map.put(I18nHelper.getLocalizedMessage(desc.getI18nKey()), desc.getCombinedName())); importer.setColumnMapping(map); final List<AttrColumnDescription> attrColumnsInSheet = getAttrColumnsUsedInSheet(importer); final EmployeeBillingExcelRow[] rows = importer.convertToRows(EmployeeBillingExcelRow.class); for (final EmployeeBillingExcelRow row : rows) { final ImportedElement<EmployeeDO> element = convertRowToDo(attrColumnsInSheet, row); importedSheet.addElement(element); } return attrColumnsInSheet; }