private IBindingContext makeColumnContext(int columnIndex, IBindingContext rowBindingContext) { // create name for the column open class String columnOpenClassName = String.format("%sColType%d", spreadsheetHeader.getName(), columnIndex); IBindingContext generalBindingContext = componentsBuilder.getBindingContext(); Map<Integer, SpreadsheetHeaderDefinition> headers = componentsBuilder.getRowHeaders(); ComponentOpenClass columnOpenClass = new ComponentOpenClass(columnOpenClassName, generalBindingContext.getOpenL()); int height = cells.length; for (int rowIndex = 0; rowIndex < height; rowIndex++) { SpreadsheetHeaderDefinition headerDefinition = headers.get(rowIndex); proc(rowIndex, columnOpenClass, columnIndex, headerDefinition); } return new SpreadsheetContext(rowBindingContext, columnOpenClass); }
private IBindingContext makeRowContext(int rowIndex) { /** create name for the row open class */ String rowOpenClassName = String.format("%sRowType%d", spreadsheetHeader.getName(), rowIndex); /** create row open class and populate it with fields **/ IBindingContext generalBindingContext = componentsBuilder.getBindingContext(); Map<Integer, SpreadsheetHeaderDefinition> headers = componentsBuilder.getColumnHeaders(); // create row open class for current row ComponentOpenClass rowOpenClass = new ComponentOpenClass(rowOpenClassName, generalBindingContext.getOpenL()); // get the width of the whole spreadsheet int width = cells[0].length; // create for each column in row its field for (int columnIndex = 0; columnIndex < width; columnIndex++) { SpreadsheetHeaderDefinition columnHeader = headers.get(columnIndex); proc(rowIndex, rowOpenClass, columnIndex, columnHeader); } /** create row binding context **/ return new SpreadsheetContext(spreadsheetBindingContext, rowOpenClass); }