question: protected void calculateItemWidth ( CategoryPlot plot , Rectangle2D dataArea , int rendererIndex , CategoryItemRendererState state ) { CategoryAxis domainAxis = getDomainAxis ( plot , rendererIndex ) ; CategoryDataset dataset = plot . getDataset ( rendererIndex ) ; if ( dataset != null ) { int columns = dataset . getColumnCount ( ) ; int rows = state . getVisibleSeriesCount ( ) >= 0 ? state . getVisibleSeriesCount ( ) : dataset . getRowCount ( ) ; double space = 0.0 ; PlotOrientation orientation = plot . getOrientation ( ) ; if ( orientation == PlotOrientation . HORIZONTAL ) { space = dataArea . getHeight ( ) ; } else if ( orientation == PlotOrientation . VERTICAL ) { space = dataArea . getWidth ( ) ; } double maxWidth = space * getMaximumItemWidth ( ) ; double categoryMargin = 0.0 ; double currentItemMargin = 0.0 ; if ( columns > 1 ) { categoryMargin = domainAxis . getCategoryMargin ( ) ; } if ( rows > 1 ) { currentItemMargin = getItemMargin ( ) ; } double used = space * ( 1 - domainAxis . getLowerMargin ( ) - domainAxis . getUpperMargin ( ) - categoryMargin - currentItemMargin ) ; if ( ( rows * columns ) > 0 ) { state . setBarWidth ( Math . min ( used / ( rows * columns ) , maxWidth ) ) ; } else { state . setBarWidth ( Math . min ( used , maxWidth ) ) ; } } }
target:  Calculates the bar width and stores it in the renderer state.