public CArrowImage()

in taverna-ui/src/main/java/org/apache/taverna/lang/ui/CArrowImage.java [53:192]


	public CArrowImage(int nWidth, int nHeight, int nArrowDirection) {
		super(nWidth, nHeight, TYPE_INT_ARGB_PRE); // Set the width, height and
		// image type

		Map<Key, Object> map = new HashMap<Key, Object>();
		map.put(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		map.put(RenderingHints.KEY_RENDERING,
				RenderingHints.VALUE_RENDER_QUALITY);
		RenderingHints hints = new RenderingHints(map);

		Graphics2D g2 = this.createGraphics(); // Create a graphics context for
		// this buffered image
		g2.setRenderingHints(hints);

		float h = getHeight();
		float w = getWidth();
		float w13 = w / 3;
		float w12 = w / 2;
		float w23 = w * 2 / 3;
		float h13 = h / 3;
		float h12 = h / 2;
		float h23 = h * 2 / 3;

		switch (nArrowDirection) {
		case ARROW_UP:
			_pathArrow.moveTo(w12, h12);
			_pathArrow.lineTo(w12, 0);
			_pathArrow.lineTo(w, h - 1);
			_pathArrow.lineTo(0, h - 1);
			_pathArrow.closePath();
			g2.setPaint(new GradientPaint(w13, h13,
					SystemColor.controlLtHighlight, w, h - 1,
					SystemColor.controlShadow));

			g2.fill(_pathArrow);

			g2.setColor(SystemColor.controlDkShadow);
			g2.draw(new Line2D.Float(0, h - 1, w, h - 1));
			g2.setColor(SystemColor.controlShadow);
			g2.draw(new Line2D.Float(w12, 0, w, h - 1));
			g2.setColor(SystemColor.controlLtHighlight);
			g2.draw(new Line2D.Float(0, h - 1, w12, 0));
			break;

		case ARROW_DOWN:
			_pathArrow.moveTo(w12, h12);
			_pathArrow.lineTo(w, 0);
			_pathArrow.lineTo(w12, h - 1);
			_pathArrow.closePath();
			g2.setPaint(new GradientPaint(0, 0, SystemColor.controlLtHighlight,
					w23, h23, SystemColor.controlShadow));
			g2.fill(_pathArrow);

			g2.setColor(SystemColor.controlDkShadow);
			g2.draw(new Line2D.Float(w, 0, w12, h - 1));
			g2.setColor(SystemColor.controlShadow);
			g2.draw(new Line2D.Float(w12, h - 1, 0, 0));
			g2.setColor(SystemColor.controlLtHighlight);
			g2.draw(new Line2D.Float(0, 0, w, 0));
			break;

		case ARROW_LEFT:
			_pathArrow.moveTo(w - 1, h13);
			_pathArrow.lineTo(w13, h13);
			_pathArrow.lineTo(w13, 0);
			_pathArrow.lineTo(0, h12);
			_pathArrow.lineTo(w13, h - 1);
			_pathArrow.lineTo(w13, h23);
			_pathArrow.lineTo(w - 1, h23);
			_pathArrow.closePath();
			g2.setPaint(new GradientPaint(0, 0, Color.white, // SystemColor.
																// controlLtHighlight
																// ,
					0, h, SystemColor.controlShadow));
			g2.fill(_pathArrow);

			_pathArrow.reset();
			_pathArrow.moveTo(w13, 0);
			_pathArrow.lineTo(w13, h13);
			_pathArrow.moveTo(w - 1, h13);
			_pathArrow.lineTo(w - 1, h23);
			_pathArrow.lineTo(w13, h23);
			_pathArrow.lineTo(w13, h - 1);
			g2.setColor(SystemColor.controlDkShadow);
			g2.draw(_pathArrow);

			g2.setColor(SystemColor.controlShadow);
			g2.draw(new Line2D.Float(0, h12, w13, h - 1));

			_pathArrow.reset();
			_pathArrow.moveTo(0, h12);
			_pathArrow.lineTo(w13, 0);
			_pathArrow.moveTo(w13, h13);
			_pathArrow.lineTo(w - 1, h13);
			g2.setColor(SystemColor.controlLtHighlight);
			g2.draw(_pathArrow);
			break;

		case ARROW_RIGHT:
		default: {
			_pathArrow.moveTo(0, h13);
			_pathArrow.lineTo(w23, h13);
			_pathArrow.lineTo(w23, 0);
			_pathArrow.lineTo(w - 1, h12);
			_pathArrow.lineTo(w23, h - 1);
			_pathArrow.lineTo(w23, h23);
			_pathArrow.lineTo(0, h23);
			_pathArrow.closePath();
			g2.setPaint(new GradientPaint(0, 0, Color.white, // SystemColor.
																// controlLtHighlight
																// ,
					0, h, SystemColor.controlShadow));
			g2.fill(_pathArrow);

			_pathArrow.reset();
			_pathArrow.moveTo(0, h23);
			_pathArrow.lineTo(w23, h23);
			_pathArrow.moveTo(w23, h - 1);
			_pathArrow.lineTo(w - 1, h12);
			g2.setColor(SystemColor.controlDkShadow);
			g2.draw(_pathArrow);

			g2.setColor(SystemColor.controlShadow);
			g2.draw(new Line2D.Float(w - 1, h12, w23, 0));

			_pathArrow.reset();
			_pathArrow.moveTo(w23, 0);
			_pathArrow.lineTo(w23, h13);
			_pathArrow.lineTo(0, h13);
			_pathArrow.lineTo(0, h23);
			_pathArrow.moveTo(w23, h23);
			_pathArrow.lineTo(w23, h - 1);
			g2.setColor(SystemColor.controlLtHighlight);
			g2.draw(_pathArrow);
			break;
		}
		}

	}