private void drawGridsAndAxes(double timeSpan, Graphics2D g2D) {

			String text = null;
			FontMetrics metrics = g2D.getFontMetrics();
			g2D.setColor(gridColor);
			g2D.setStroke(dashedStk);
			
			Composite previousComposite = g2D.getComposite();
			g2D.setComposite(transpComp);
			
			int heightGph = (int)(numPE * scaleY_);
			int widthGph = (int)(timeSpan * scaleX_);
			int x = SHIFT_X, y = SHIFT_Y;
			
			for(int i=0; i<=widthGph; i+=50) {
				x = SHIFT_X + i;
				g2D.drawLine(x, SHIFT_Y, x, SHIFT_Y + heightGph);
			}
			
			g2D.setComposite(previousComposite);
			g2D.setStroke(normalStk);
			
			g2D.setColor(bdColor);
			g2D.drawRect(SHIFT_X, SHIFT_Y, widthGph, heightGph);
			
			for(int i=0; i <= widthGph; i+=50) {
				x = SHIFT_X + i;
				g2D.drawLine(x, SHIFT_Y + heightGph - 5, x, SHIFT_Y + heightGph + 3);
			}

			g2D.setColor(xTxtColor);
			y = SHIFT_Y + heightGph + 20;
			for(int i=0; i<=widthGph; i+=50) {
				text = "" + (int)convertTime((i/scaleX_));
				g2D.drawString(text, SHIFT_X + i - 
						SwingUtilities.computeStringWidth(metrics, text) / 2, y);
			}

			g2D.setColor(topTxtColor);
			text = "CT: "+ (int)(convertTime(currentTime));
			g2D.drawString(text, SHIFT_X + (int)(currentTime * scaleX_) - 
					SwingUtilities.computeStringWidth(metrics, text) / 2, 
					SHIFT_Y - 10);
		
			text = "Time Span: " + (int)(convertTime(timeSpan));
			y = SHIFT_Y  + SwingUtilities.computeStringWidth(metrics, text);
			x = widthGph + SHIFT_X + 15;
			rotateAndPaint(g2D, x, y, 1.571, text);
			
			x = SHIFT_X - 5;
			y = heightGph + SHIFT_Y - 10;
			rotateAndPaint(g2D, x, y, 1.571, " Processing Elements: " + numPE);
			
			g2D.setColor(ctLnColor);
			x = SHIFT_X + (int)(currentTime * scaleX_);
			g2D.drawLine(x, SHIFT_Y - 7, x, SHIFT_Y + heightGph + 10);
		}