package org.insightech.er.editor.model.dbexport.excel.sheet_generator;
import java.util.Map;
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.sequence.Sequence;
import org.insightech.er.util.Format;
import org.insightech.er.util.POIUtils;
public class SequenceSheetGenerator extends AbstractSheetGenerator {
private static final String KEYWORD_SEQUENCE_NAME = "$PSN";
private static final String KEYWORD_SEQUENCE_DESCRIPTION = "$SDSC";
private static final String KEYWORD_INCREMENT = "$INC";
private static final String KEYWORD_MIN = "$MIN";
private static final String KEYWORD_MAX = "$MAX";
private static final String KEYWORD_START = "$STR";
private static final String KEYWORD_CACHE = "$CACHE";
private static final String KEYWORD_CYCLE = "$CYC";
/**
* �V�[�P���X�V�[�g�Ƀf�[�^��ݒ肵�܂�.
*
* @param workbook
* @param sheet
* @param sequence
*/
public void setSequenceData(HSSFWorkbook workbook, HSSFSheet sheet,
Sequence sequence) {
POIUtils.replace(sheet, KEYWORD_SEQUENCE_NAME, this.getValue(
this.keywordsValueMap, KEYWORD_SEQUENCE_NAME, sequence
.getName()));
POIUtils.replace(sheet, KEYWORD_SEQUENCE_DESCRIPTION, this.getValue(
this.keywordsValueMap, KEYWORD_SEQUENCE_DESCRIPTION, sequence
.getDescription()));
POIUtils.replace(sheet, KEYWORD_INCREMENT, this.getValue(
this.keywordsValueMap, KEYWORD_INCREMENT, Format
.toString(sequence.getIncrement())));
POIUtils.replace(sheet, KEYWORD_MIN, this.getValue(
this.keywordsValueMap, KEYWORD_MIN, Format.toString(sequence
.getMinValue())));
POIUtils.replace(sheet, KEYWORD_MAX, this.getValue(
this.keywordsValueMap, KEYWORD_MAX, Format.toString(sequence
.getMaxValue())));
POIUtils.replace(sheet, KEYWORD_START, this.getValue(
this.keywordsValueMap, KEYWORD_START, Format.toString(sequence
.getStart())));
POIUtils.replace(sheet, KEYWORD_CACHE, this.getValue(
this.keywordsValueMap, KEYWORD_CACHE, Format.toString(sequence
.getCache())));
POIUtils.replace(sheet, KEYWORD_CYCLE, this.getValue(
this.keywordsValueMap, KEYWORD_CYCLE, sequence.isCycle()));
}
@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) {
for (Sequence sequence : diagram.getDiagramContents().getSequenceSet()) {
String name = sequence.getName();
HSSFSheet newSheet = createNewSheet(workbook, sheetNo, name,
sheetNameMap);
sheetObjectMap.put(workbook.getSheetName(workbook
.getSheetIndex(newSheet)), sequence);
this.setSequenceData(workbook, newSheet, sequence);
monitor.worked(1);
}
}
@Override
public String getTemplateSheetName() {
return "sequence_template";
}
@Override
public String[] getKeywords() {
return new String[] { KEYWORD_SEQUENCE_NAME,
KEYWORD_SEQUENCE_DESCRIPTION, KEYWORD_INCREMENT, KEYWORD_MIN,
KEYWORD_MAX, KEYWORD_START, KEYWORD_CACHE, KEYWORD_CYCLE };
}
@Override
public int getKeywordsColumnNo() {
return 8;
}
@Override
public int count(ERDiagram diagram) {
return diagram.getDiagramContents().getSequenceSet().getSequenceList()
.size();
}
}