/*
 * Paper.js
 *
 * This file is part of Paper.js, a JavaScript Vector Graphics Library,
 * based on Scriptographer.org and designed to be largely API compatible.
 * http://paperjs.org/
 * http://scriptographer.org/
 *
 * Distributed under the MIT license. See LICENSE file for details.
 *
 * Copyright (c) 2011, Juerg Lehni & Jonathan Puckey
 * http://lehni.org/ & http://jonathanpuckey.com/
 *
 * All rights reserved.
 */

var PointText = this.PointText = TextItem.extend({
	beans: true,

	initialize: function(point) {
		this.base();
		this._point = Point.read(arguments, 0);
		this.matrix = new Matrix().translate(this._point);
	},

	getPoint: function() {
		return this._point;
	},

	setPoint: function(point) {
		point = Point.read(arguments);
		if (point) {
			var delta = point.subtract(this._point);
			this.matrix.preConcatenate(new Matrix().translate(delta));
			this._point = point;
		}
	},
	
	getPosition: function() {
		return this._point;
	},
	
	setPosition: function(point) {
		// TODO: position should be the center point of the bounds
		// but we currently don't support bounds for PointText.
		this.setPoint.apply(this, arguments);
	},
	
	_transform: function(matrix, flags) {
		this.matrix.preConcatenate(matrix);
		if (!matrix.isIdentity()) {
			matrix._transformPoint(this._point);
		}
	},
	
	draw: function(ctx) {
		if (this.content == null)
			return;
		ctx.save();
		ctx.font = this._characterStyle.fontSize + 'pt ' +
				this._characterStyle.font;
		ctx.textAlign = this._paragraphStyle.justification;
		this.matrix.applyToContext(ctx);
		
		var fillColor = this.getFillColor();
		var strokeColor = this.getStrokeColor();
		if (!fillColor || !strokeColor)
			ctx.globalAlpha = this.opacity;
		if (fillColor) {
			ctx.fillStyle = fillColor.getCanvasStyle(ctx);
			ctx.fillText(this.content, 0, 0);
		}
		if (strokeColor) {
			ctx.strokeStyle = strokeColor.getCanvasStyle(ctx);
			ctx.strokeText(this.content, 0, 0);
		}
		ctx.restore();
	}
});

/*
 * Paper.js
 *
 * This file is part of Paper.js, a JavaScript Vector Graphics Library,
 * based on Scriptographer.org and designed to be largely API compatible.
 * http://paperjs.org/
 * http://scriptographer.org/
 *
 * Distributed under the MIT license. See LICENSE file for details.
 *
 * Copyright (c) 2011, Juerg Lehni & Jonathan Puckey
 * http://lehni.org/ & http://jonathanpuckey.com/
 *
 * All rights reserved.
 */

var PointText = this.PointText = TextItem.extend({
	beans: true,

	initialize: function(point) {
		this.base();
		this._point = Point.read(arguments, 0);
		this.matrix = new Matrix().translate(this._point);
	},

	getPoint: function() {
		return this._point;
	},

	setPoint: function(point) {
		point = Point.read(arguments);
		if (point) {
			var delta = point.subtract(this._point);
			this.matrix.preConcatenate(new Matrix().translate(delta));
			this._point = point;
		}
	},
	
	// TODO: position should be the center point of the bounds
	// but we currently don't support bounds for PointText.
	getPosition: function() {
		return this._point;
	},
	
	setPosition: function(point) {
		this.setPoint.apply(this, arguments);
	},
	
	_transform: function(matrix, flags) {
		this.matrix.preConcatenate(matrix);
		if (!matrix.isIdentity()) {
			matrix._transformPoint(this._point);
		}
	},
	
	draw: function(ctx) {
		if (this.content == null)
			return;
		ctx.save();
		ctx.font = this._characterStyle.fontSize + 'pt ' +
				this._characterStyle.font;
		ctx.textAlign = this._paragraphStyle.justification;
		this.matrix.applyToContext(ctx);
		
		var fillColor = this.getFillColor();
		var strokeColor = this.getStrokeColor();
		if (!fillColor || !strokeColor)
			ctx.globalAlpha = this.opacity;
		if (fillColor) {
			ctx.fillStyle = fillColor.getCanvasStyle(ctx);
			ctx.fillText(this.content, 0, 0);
		}
		if (strokeColor) {
			ctx.strokeStyle = strokeColor.getCanvasStyle(ctx);
			ctx.strokeText(this.content, 0, 0);
		}
		ctx.restore();
	}
});

Move comment.