}  else { if (null == solid) { solid = new ArrayList(); } solid.add(borders[i]);
		private void drawBorder(BorderInfo[] borders)		{			//double>solid>dashed>dotted>none			ArrayList dbl = null;			ArrayList solid = null;			ArrayList dashed = null;			ArrayList dotted = null;				 		for(int i=0; i<borders.length; i++)			{				if ( "double".equalsIgnoreCase(borders[i].borderStyle) ) //$NON-NLS-1$				{					if (null == dbl)					{						dbl = new ArrayList();					}					dbl.add(borders[i]);				}				if ( "solid".equalsIgnoreCase(borders[i].borderStyle) ) //$NON-NLS-1$				{					if (null == solid)					{						solid = new ArrayList();					}					solid.add(borders[i]);				}				if ( "dashed".equalsIgnoreCase(borders[i].borderStyle) ) //$NON-NLS-1$				{					if (null == dashed)					{						dashed = new ArrayList();					}					dashed.add(borders[i]);				}				if ( "dotted".equalsIgnoreCase(borders[i].borderStyle) ) //$NON-NLS-1$				{					if (null == dotted)					{						dotted = new ArrayList();					}					dotted.add(borders[i]);				}			}	 		if ( null != dotted )	 		{	 			for (Iterator it=dotted.iterator(); it.hasNext();)	 			{	 				BorderInfo bi = (BorderInfo)it.next();	 				drawLine( layoutPointX2PDF( bi.startX ), layoutPointY2PDF( bi.startY ), 	 						layoutPointX2PDF( bi.endX ), layoutPointY2PDF( bi.endY ), 	 						pdfMeasure(bi.borderWidth), bi.borderColor, "dotted", cb ); //$NON-NLS-1$	 			}	 		}	 		if ( null != dashed )	 		{	 			for (Iterator it=dashed.iterator(); it.hasNext();)	 			{	 				BorderInfo bi = (BorderInfo)it.next();	 				drawLine( layoutPointX2PDF( bi.startX ), layoutPointY2PDF( bi.startY ), 	 						layoutPointX2PDF( bi.endX ), layoutPointY2PDF( bi.endY ), 	 						pdfMeasure(bi.borderWidth), bi.borderColor, "dashed", cb ); //$NON-NLS-1$	 			}	 		}	 		if ( null != solid )	 		{	 			for (Iterator it=solid.iterator(); it.hasNext();)	 			{	 				BorderInfo bi = (BorderInfo)it.next();	 				drawLine( layoutPointX2PDF( bi.startX ), layoutPointY2PDF( bi.startY ), 	 						layoutPointX2PDF( bi.endX ), layoutPointY2PDF( bi.endY ), 	 						pdfMeasure(bi.borderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 			}	 		}	 		if ( null != dbl )	 		{	 			for (Iterator it=dbl.iterator(); it.hasNext();)	 			{	 				BorderInfo bi = (BorderInfo)it.next();	 				int outerBorderWidth=bi.borderWidth/3, innerBorderWidth=bi.borderWidth/3;	 					 				switch (bi.borderType)	 				{	 				case BorderInfo.TOP_BORDER:	 					drawLine( layoutPointX2PDF( bi.startX ), layoutPointY2PDF( bi.startY-bi.borderWidth/2+outerBorderWidth/2 ), 	 	 						layoutPointX2PDF( bi.endX ), layoutPointY2PDF( bi.endY-bi.borderWidth/2+outerBorderWidth/2 ), 	 	 						pdfMeasure(outerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				drawLine( layoutPointX2PDF( bi.startX+2*borders[BorderInfo.LEFT_BORDER].borderWidth/3 ), 	 	 						layoutPointY2PDF( bi.startY+bi.borderWidth/2-innerBorderWidth/2 ), 	 	 						layoutPointX2PDF( bi.endX-2*borders[BorderInfo.RIGHT_BORDER].borderWidth/3 ), 	 	 						layoutPointY2PDF( bi.endY+bi.borderWidth/2-innerBorderWidth/2 ), 	 	 						pdfMeasure(innerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				break;	 				case BorderInfo.RIGHT_BORDER:	 					drawLine( layoutPointX2PDF( bi.startX+bi.borderWidth/2-outerBorderWidth/2 ), layoutPointY2PDF( bi.startY ), 	 	 						layoutPointX2PDF( bi.endX+bi.borderWidth/2-outerBorderWidth/2 ), layoutPointY2PDF( bi.endY ), 	 	 						pdfMeasure(outerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				drawLine( layoutPointX2PDF( bi.startX-bi.borderWidth/2+innerBorderWidth/2 ), 	 	 						layoutPointY2PDF( bi.startY+2*borders[BorderInfo.TOP_BORDER].borderWidth/3 ), 	 	 						layoutPointX2PDF( bi.endX-bi.borderWidth/2+innerBorderWidth/2 ), 	 	 						layoutPointY2PDF( bi.endY-2*borders[BorderInfo.BOTTOM_BORDER].borderWidth/3 ), 	 	 						pdfMeasure(innerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				break;	 				case BorderInfo.BOTTOM_BORDER:	 					drawLine( layoutPointX2PDF( bi.startX ), layoutPointY2PDF( bi.startY+bi.borderWidth/2-outerBorderWidth/2 ), 	 	 						layoutPointX2PDF( bi.endX ), layoutPointY2PDF( bi.endY+bi.borderWidth/2-outerBorderWidth/2 ), 	 	 						pdfMeasure(outerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				drawLine( layoutPointX2PDF( bi.startX+2*borders[BorderInfo.LEFT_BORDER].borderWidth/3 ), 	 	 						layoutPointY2PDF( bi.startY-bi.borderWidth/2+innerBorderWidth/2 ), 	 	 						layoutPointX2PDF( bi.endX-2*borders[BorderInfo.RIGHT_BORDER].borderWidth/3 ), 	 	 						layoutPointY2PDF( bi.endY-bi.borderWidth/2+innerBorderWidth/2 ), 	 	 						pdfMeasure(innerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				break;	 				case BorderInfo.LEFT_BORDER:	 					drawLine( layoutPointX2PDF( bi.startX-bi.borderWidth/2+outerBorderWidth/2 ), layoutPointY2PDF( bi.startY ), 	 	 						layoutPointX2PDF( bi.endX-bi.borderWidth/2+outerBorderWidth/2 ), layoutPointY2PDF( bi.endY ), 	 	 						pdfMeasure(outerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				drawLine( layoutPointX2PDF( bi.startX+bi.borderWidth/2-innerBorderWidth/2 ), 	 	 						layoutPointY2PDF( bi.startY+2*borders[BorderInfo.TOP_BORDER].borderWidth/3 ), 	 	 						layoutPointX2PDF( bi.endX+bi.borderWidth/2-innerBorderWidth/2 ), 	 	 						layoutPointY2PDF( bi.endY-2*borders[BorderInfo.BOTTOM_BORDER].borderWidth/3 ), 	 	 						pdfMeasure(innerBorderWidth), bi.borderColor, "solid", cb ); //$NON-NLS-1$	 	 				break;	 				}	 			}	 		}		}