@ -288,15 +288,25 @@ public class GridUI extends ComponentUI {
}
}
}
GridRange gridRange = GridRange . range ( grid . getHorizontalBeginValue ( ) , horizontalEndValue , grid . getVerticalBeginValue ( ) , verticalEndValue )
int xBeginIndex = grid . getHorizontalBeginValue ( ) ;
int xEndIndex = horizontalEndValue ;
int yBeginIndex = grid . getVerticalBeginValue ( ) ;
int yEndIndex = verticalEndValue ;
if ( ! grid . isShowExtraGridLine ( ) ) {
xBeginIndex = 0 ;
xEndIndex = Math . max ( 0 , report . getColumnCount ( ) - 1 ) ;
yBeginIndex = 0 ;
yEndIndex = Math . max ( 0 , report . getRowCount ( ) - 1 ) ;
}
GridRange gridRange = GridRange . range ( xBeginIndex , xEndIndex , yBeginIndex , yEndIndex )
. rangeList ( rowHeightList , columnWidthList )
. realSize ( realWidth , realHeight ) ;
new DrawVerticalLineHelper ( gridRange , grid . isShowGridLine ( ) ,
new DrawVerticalLineHelper ( gridRange , grid . isShowGridLine ( ) , grid . isShowExtraGridLine ( ) ,
isShowVerticalPaginateLine , paperPaintHeight ,
paginateLineList , resolution ) . iterateStart2End ( g2d ) ;
new DrawHorizontalLineHelper ( gridRange , grid . isShowGridLine ( ) ,
new DrawHorizontalLineHelper ( gridRange , grid . isShowGridLine ( ) , grid . isShowExtraGridLine ( ) ,
isShowHorizontalPaginateLine , paperPaintWidth ,
paginateLineList , resolution ) . iterateStart2End ( g2d ) ;
}
@ -320,6 +330,7 @@ public class GridUI extends ComponentUI {
protected GridRange gridRange ;
protected boolean showGridLine ;
protected boolean showExtraGridLine ;
protected boolean showPaginateLine ;
protected double paperPaintSize ;
@ -332,11 +343,12 @@ public class GridUI extends ComponentUI {
protected static final double THRESHOLD = 1 . 0E - 4D ;
DrawLineHelper ( GridRange gridRange , boolean showGridLine ,
DrawLineHelper ( GridRange gridRange , boolean showGridLine , boolean showExtraGridLine ,
boolean showPaginateLine , double paperPaintSize ,
List paginateLineList , int resolution ) {
this . gridRange = gridRange ;
this . showGridLine = showGridLine ;
this . showExtraGridLine = showExtraGridLine ;
this . showPaginateLine = showPaginateLine ;
this . paperPaintSize = paperPaintSize ;
@ -353,10 +365,10 @@ public class GridUI extends ComponentUI {
private class DrawVerticalLineHelper extends DrawLineHelper {
DrawVerticalLineHelper ( GridRange gridRange , boolean showGridLine ,
DrawVerticalLineHelper ( GridRange gridRange , boolean showGridLine , boolean discardExtraGridLine ,
boolean showPaginateLine , double paperPaintSize ,
List paginateLineList , int resolution ) {
super ( gridRange , showGridLine , showPaginateLine ,
super ( gridRange , showGridLine , discardExtraGridLine , showPaginateLine ,
paperPaintSize , paginateLineList , resolution ) ;
}
@ -372,7 +384,7 @@ public class GridUI extends ComponentUI {
@Override
protected void iterateStart2End ( Graphics2D g2d ) {
float rowHeight , paperYAxisSumSize = 0 , yAxisSumSize = 0 ;
float rowHeight , paperYAxisSumSize = 0 , maxXAxisSumSize = 0 , yAxisSumSize = 0 ;
for ( int i = 0 ; i < = gridRange . yEndIndex ; i + + ) {
if ( i = = 0 ) {
i = gridRange . yBeginIndex ;
@ -397,6 +409,9 @@ public class GridUI extends ComponentUI {
}
xAxisSumSize + = columnWidth ;
}
if ( xAxisSumSize > maxXAxisSumSize ) {
maxXAxisSumSize = xAxisSumSize ;
}
}
if ( showPaginateLine & & paperYAxisSumSize - paperPaintSize > THRESHOLD ) {
paginateLineList . add ( getPaginateLine2D ( ( int ) yAxisSumSize ) ) ;
@ -406,17 +421,21 @@ public class GridUI extends ComponentUI {
}
// paint 最后一个横线..
if ( showGridLine ) {
drawLastLine ( g2d , ( int ) yAxisSumSize ) ;
if ( showExtraGridLine ) {
drawLastLine ( g2d , ( int ) yAxisSumSize ) ;
} else {
GraphHelper . drawLine ( g2d , 0 , yAxisSumSize , maxXAxisSumSize , yAxisSumSize ) ;
}
}
}
}
private class DrawHorizontalLineHelper extends DrawLineHelper {
DrawHorizontalLineHelper ( GridRange gridRange , boolean showGridLine ,
DrawHorizontalLineHelper ( GridRange gridRange , boolean showGridLine , boolean discardExtraGridLine ,
boolean showPaginateLine , double paperPaintSize ,
List paginateLineList , int resolution ) {
super ( gridRange , showGridLine , showPaginateLine ,
super ( gridRange , showGridLine , discardExtraGridLine , showPaginateLine ,
paperPaintSize , paginateLineList , resolution ) ;
}
@ -432,7 +451,7 @@ public class GridUI extends ComponentUI {
@Override
protected void iterateStart2End ( Graphics2D g2d ) {
float columnWidth , paperXAxisSumSize = 0 , xAxisSumSize = 0 ;
float columnWidth , paperXAxisSumSize = 0 , maxYAxisSumSize = 0 , xAxisSumSize = 0 ;
for ( int i = 0 ; i < = gridRange . xEndIndex ; i + + ) {
if ( i = = 0 ) {
i = gridRange . xBeginIndex ;
@ -456,6 +475,9 @@ public class GridUI extends ComponentUI {
}
yAxisSumSize + = rowHeight ;
}
if ( yAxisSumSize > maxYAxisSumSize ) {
maxYAxisSumSize = yAxisSumSize ;
}
}
if ( showPaginateLine & & paperXAxisSumSize - paperPaintSize > THRESHOLD ) {
paginateLineList . add ( getPaginateLine2D ( ( int ) xAxisSumSize ) ) ;
@ -465,7 +487,11 @@ public class GridUI extends ComponentUI {
}
// paint 最后一个横线..
if ( showGridLine ) {
drawLastLine ( g2d , ( int ) xAxisSumSize ) ;
if ( showExtraGridLine ) {
drawLastLine ( g2d , ( int ) xAxisSumSize ) ;
} else {
GraphHelper . drawLine ( g2d , xAxisSumSize , 0 , xAxisSumSize , maxYAxisSumSize ) ;
}
}
}
}