11import { Table } from "../models/table" ;
22import { BasePadCalculator } from "./basePadCalculator" ;
3- import { FirstColumnPadCalculator } from "./left/firstColumnPadCalculator " ;
4- import { LastColumnPadCalculator } from "./left/lastColumnPadCalculator " ;
5- import { MiddleColumnPadCalculator } from "./left/middleColumnPadCalculator " ;
3+ import * as LeftAlignment from "./left" ;
4+ import * as RightAlignment from "./right " ;
5+ import { Alignment } from "../models/alignment " ;
66
77export class PadCalculatorSelector {
88 public select ( table : Table , column : number ) : BasePadCalculator {
9- if ( column == 0 ) return new FirstColumnPadCalculator ( ) ;
10- if ( column == table . columnCount - 1 ) return new LastColumnPadCalculator ( ) ;
11- return new MiddleColumnPadCalculator ( ) ;
9+ switch ( table . alignments [ column ] ) {
10+ case Alignment . Center : return this . leftAlignmentPadCalculator ( table , column ) ;
11+ case Alignment . Right : return this . rightAlignmentPadCalculator ( table , column ) ;
12+ default : return this . leftAlignmentPadCalculator ( table , column ) ;
13+ }
14+ }
15+
16+ private leftAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
17+ if ( column == 0 ) return new LeftAlignment . FirstColumnPadCalculator ( ) ;
18+ if ( column == table . columnCount - 1 ) return new LeftAlignment . LastColumnPadCalculator ( ) ;
19+ return new LeftAlignment . MiddleColumnPadCalculator ( ) ;
20+ }
21+
22+ private rightAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
23+ if ( column == 0 ) return new RightAlignment . FirstColumnPadCalculator ( ) ;
24+ if ( column == table . columnCount - 1 ) return new RightAlignment . LastColumnPadCalculator ( ) ;
25+ return new RightAlignment . MiddleColumnPadCalculator ( ) ;
1226 }
1327}
0 commit comments