@Override
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		
		Graphics2D graphics = (Graphics2D) g;
		
		if(imageWidth == 0 || imageHeight == 0)
		{
			return;
		}
		
		for(int x = 0; x < this.getWidth(); x += imageWidth)
		{
			for(int y = 0; y < this.getHeight(); y += imageHeight)
			{
				graphics.drawImage(image, x, y, imageWidth, imageHeight, this);
			}
		}
		
		for(PermClass p : PermData.getData().classes)
		{
			for(PermClass p2 : p.inheritsFrom)
			{
				SpecialPaint.drawNodeConnection((Graphics2D) graphics, p.x + 30, p.y + 15, p2.x, p2.y + 15);
			}
		}
		

		
		if(selectedOne != null)
		{
			if(rdown)
			{
				SpecialPaint.drawNodeConnection((Graphics2D) graphics, selectedOne.x + 30, selectedOne.y + 15, mx, my);
			}
		}

		for(PermClass p : PermData.getData().classes)
		{
			//(int) font.getStringBounds("Hello World", graphics.getFontRenderContext()).getWidth()
			NodeDrawer.drawNode(graphics, p.x, p.y, 30, 30, NodeType.global, p == selectedOne);
			//graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
			//		RenderingHints.VALUE_ANTIALIAS_ON);
			//graphics.setFont(font);

			//graphics.drawString("Hello World", p.x, p.y);

		}
	}