package org.insightech.er.editor.model.dbexport.excel.sheet_generator; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.eclipse.core.runtime.IProgressMonitor; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.ObjectModel; import org.insightech.er.editor.model.dbexport.excel.ExportToExcelManager.LoopDefinition; import org.insightech.er.editor.model.diagram_contents.not_element.trigger.Trigger; import org.insightech.er.util.POIUtils; public class AllTriggerSheetGenerator extends TriggerSheetGenerator { @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) { LoopDefinition loopDefinition = loopDefinitionMap.get(this .getTemplateSheetName()); HSSFSheet newSheet = createNewSheet(workbook, sheetNo, loopDefinition.sheetName, sheetNameMap); sheetObjectMap.put(workbook.getSheetName(workbook .getSheetIndex(newSheet)), diagram.getDiagramContents() .getTriggerSet()); HSSFSheet oldSheet = workbook.getSheetAt(sheetNo); boolean first = true; for (Trigger trigger : diagram.getDiagramContents().getTriggerSet()) { if (first) { first = false; } else { POIUtils .copyRow(oldSheet, newSheet, loopDefinition.startLine - 1, oldSheet .getLastRowNum(), newSheet .getLastRowNum() + loopDefinition.spaceLine + 1); } this.setTriggerData(workbook, newSheet, trigger); newSheet.setRowBreak(newSheet.getLastRowNum() + loopDefinition.spaceLine); monitor.worked(1); } if (first) { for (int i = loopDefinition.startLine - 1; i <= newSheet .getLastRowNum(); i++) { HSSFRow row = newSheet.getRow(i); if (row != null) { newSheet.removeRow(row); } } } } @Override public String getTemplateSheetName() { return "all_trigger_template"; } }