/** {@inheritDoc} */ @Override public boolean validate(ERTable table, NormalColumn column) { if (column.getType() == null || column.getType().getAlias(table.getDiagram().getDatabase()) == null) { ValidateResult validateResult = new ValidateResult(); validateResult.setMessage( ResourceString.getResourceString("error.validate.no.column.type1") + table.getPhysicalName() + ResourceString.getResourceString("error.validate.no.column.type2") + column.getPhysicalName()); validateResult.setLocation(table.getLogicalName()); validateResult.setSeverity(IMarker.SEVERITY_WARNING); validateResult.setObject(table); this.addError(validateResult); } return true; }
/** {@inheritDoc} */ @Override public void generate( IProgressMonitor monitor, HSSFWorkbook workbook, int sheetNo, boolean useLogicalNameAsSheetName, Map<String, Integer> sheetNameMap, Map<String, ObjectModel> sheetObjectMap, ERDiagram diagram, Map<String, LoopDefinition> loopDefinitionMap) { this.clear(); List<ERTable> nodeSet = null; if (diagram.getCurrentCategory() != null) { nodeSet = diagram.getCurrentCategory().getTableContents(); } else { nodeSet = diagram.getDiagramContents().getContents().getTableSet().getList(); } for (ERTable table : nodeSet) { String name = null; if (useLogicalNameAsSheetName) { name = table.getLogicalName(); } else { name = table.getPhysicalName(); } HSSFSheet newSheet = createNewSheet(workbook, sheetNo, name, sheetNameMap); sheetObjectMap.put(workbook.getSheetName(workbook.getSheetIndex(newSheet)), table); this.setTableData(workbook, newSheet, table); monitor.worked(1); } }
public void setTableData(HSSFWorkbook workbook, HSSFSheet sheet, ERTable table) { POIUtils.replace( sheet, KEYWORD_LOGICAL_TABLE_NAME, this.getValue(this.keywordsValueMap, KEYWORD_LOGICAL_TABLE_NAME, table.getLogicalName())); POIUtils.replace( sheet, KEYWORD_PHYSICAL_TABLE_NAME, this.getValue(this.keywordsValueMap, KEYWORD_PHYSICAL_TABLE_NAME, table.getPhysicalName())); POIUtils.replace( sheet, KEYWORD_TABLE_DESCRIPTION, this.getValue(this.keywordsValueMap, KEYWORD_TABLE_DESCRIPTION, table.getDescription())); POIUtils.replace( sheet, KEYWORD_TABLE_CONSTRAINT, this.getValue(this.keywordsValueMap, KEYWORD_TABLE_CONSTRAINT, table.getConstraint())); CellLocation cellLocation = POIUtils.findCell(sheet, FIND_KEYWORDS_OF_COLUMN); if (cellLocation != null) { int rowNum = cellLocation.r; HSSFRow templateRow = sheet.getRow(rowNum); if (this.columnTemplate == null) { this.columnTemplate = this.loadColumnTemplate(workbook, sheet, cellLocation); } int order = 1; for (NormalColumn normalColumn : table.getExpandedColumns()) { HSSFRow row = POIUtils.insertRow(sheet, rowNum++); this.setColumnData(this.keywordsValueMap, columnTemplate, row, normalColumn, table, order); order++; } this.setCellStyle( columnTemplate, sheet, cellLocation.r, rowNum - cellLocation.r, templateRow.getFirstCellNum()); } CellLocation fkCellLocation = POIUtils.findCell(sheet, FIND_KEYWORDS_OF_FK_COLUMN); if (fkCellLocation != null) { int rowNum = fkCellLocation.r; HSSFRow templateRow = sheet.getRow(rowNum); if (this.fkColumnTemplate == null) { this.fkColumnTemplate = this.loadColumnTemplate(workbook, sheet, fkCellLocation); } int order = 1; for (NormalColumn normalColumn : table.getExpandedColumns()) { if (normalColumn.isForeignKey()) { HSSFRow row = POIUtils.insertRow(sheet, rowNum++); this.setColumnData( this.keywordsValueMap, this.fkColumnTemplate, row, normalColumn, table, order); order++; } } this.setCellStyle( this.fkColumnTemplate, sheet, fkCellLocation.r, rowNum - fkCellLocation.r, templateRow.getFirstCellNum()); } this.setIndexMatrix(workbook, sheet, table); this.setComplexUniqueKeyMatrix(workbook, sheet, table); }