public void mouseDragged(MouseEvent e) {

		Cursor currentCursor = controller.getCurrentSandboxCursor();

		if (currentCursor.getName().equals(defaultCursor.getName()))

		{

			if (e.getModifiers() == InputEvent.BUTTON1_MASK)

			{

				if (controller.getIsLink())

				{

					// Ignore me

					// System.out.println(e.getX() + ", " + e.getY());

				}

				else {

					int controlX = this.getX() + e.getX();// + this.getWidth() / 2;
					int controlY = this.getY() + e.getY();// + this.getHeight() / 2;

					if (controlX > SandBoxWidth) controlX = SandBoxWidth;
					else if (controlX < 0) controlX = 0;
					if (controlY > SandBoxHeight) controlY = SandBoxHeight;
					else if (controlY < 0) controlY = 0;
					this.setLocation(controlX-pressedX, controlY-pressedY);

					Point position = new Point(this.getX()+this.getWidth()/2, this.getY()+this.getHeight()/2);

					Iterator<String> it = vecConnectedLinks.iterator();

					while (it.hasNext()) {

						String linkString = it.next();

						String LinkDetails[] = linkString.split(":");

						controller.moveLink(LinkDetails[0], Integer
								.parseInt(LinkDetails[1]), position);

					}

				}

			}

		}

	}