green1.dispose(); green2.dispose();
	protected void paintControl( PaintEvent e ) {		GC canvasGC = e.gc;					// does this help? probably not...			if (canvasGC == null) return;			if ( image != null ) {					int srcWidth = resizedImageData.width;						int srcHeight = resizedImageData.height;				int destWidth = e.width;			int destHeight = e.height;								Image bufferImage = new Image(null, resizedImageData);												GC bufferGC = new GC( bufferImage );				// progress bar							if ( type == isFileInfo ) {				int pix =  ( int ) ( ( fileInfo.getPerc() / 100 ) * ( double ) (srcWidth - 1) ) ;				bufferGC.setBackground( new Color(null, 15, 136, 0 ));				bufferGC.setForeground( new Color(null, 41, 187, 26));				bufferGC.fillGradientRectangle(0,0,pix,4,false);			}			// spacer in background colour				bufferGC.setForeground(getParent().getBackground());			bufferGC.drawLine(0,0,srcWidth-1, 0);							// round the corners			bufferGC.drawLine(0,1,0,1);			bufferGC.drawLine(0,srcHeight-1,0,srcHeight-1);			bufferGC.drawLine(srcWidth-1,1,srcWidth-1,1);			bufferGC.drawLine(srcWidth-1,srcHeight-1,srcWidth-1,srcHeight-1);				bufferGC.dispose();						try {								canvasGC.drawImage(				bufferImage,				e.x,				e.y,				e.width,				e.height,				e.x,				e.y,				e.width,				e.height );						} catch (Exception x) {								System.out.println("e.width: " + e.width +									" e.height: " + e.height + 									" bw: " + bufferImage.getBounds().width +									" bh: " + bufferImage.getBounds().height ); 				x.printStackTrace();							}				bufferImage.dispose();				} else { 			canvasGC.setBackground(getParent().getBackground());			canvasGC.fillRectangle(e.x, e.y, e.width, e.height);							}				canvasGC.dispose();	}