WorkThreadPool ioThreadPool = VFSManager.getIOThreadPool();
		public void paintComponent(Graphics g)		{			FontMetrics fm = g.getFontMetrics();			JEditTextArea textArea = view.getTextArea();			int dot = textArea.getCaretPosition();			int currLine = textArea.getCaretLine();			int start = textArea.getLineStartOffset(currLine);			int numLines = textArea.getLineCount();			WorkThreadPool ioThreadPool = VFSManager.getIOThreadPool();			String str = String.valueOf(ioThreadPool.getRequestCount());			Insets insets = IOProgress.this.getBorder()				.getBorderInsets(this);			int offx = IOProgress.this.getWidth() - insets.right				- fm.stringWidth(str);			g.drawString(str,offx,(IOProgress.this.getHeight()				+ fm.getAscent()) / 2 - 1);			int progressHeight = (IOProgress.this.getHeight()				- insets.top - insets.bottom)				/ ioThreadPool.getThreadCount();			int progressWidth = IOProgress.this.getWidth() - insets.left				- insets.right - fm.stringWidth(str);			for(int i = 0; i < ioThreadPool.getThreadCount(); i++)			{				WorkThread thread = ioThreadPool.getThread(i);				int max = thread.getProgressMaximum();				if(!thread.isRequestRunning() || max == 0)					continue;				double progressRatio = ((double)thread					.getProgressValue() / max);				// when loading gzip files, for example,				// progressValue (data read) can be larger				// than progressMaximum (file size)				progressRatio = Math.min(progressRatio,1.0);				g.fillRect(insets.left,insets.top					+ i * progressHeight,					(int)(progressRatio * progressWidth),					progressHeight);			}		}