function Ruler (annotationModel, rulerLocation, rulerOverview, rulerStyle) {
		BaseRuler.call(this, rulerLocation, rulerOverview, rulerStyle);
		var self = this;
		this._listener = {
			onTextModelChanged: function(e) {
				self._onTextModelChanged(e);
			},
			onAnnotationModelChanged: function(e) {
				self._onAnnotationModelChanged(e);
			}
		};
		this.setAnnotationModel(annotationModel);
	}
/**
	 * Constructs a new ruler. 
	 * <p>
	 * The default implementation does not implement all the methods in the interface
	 * and is useful only for objects implementing rulers.
	 * <p/>
	 * 
	 * @param {orion.editor.AnnotationModel} annotationModel the annotation model for the ruler.
	 * @param {String} [rulerLocation="left"] the location for the ruler.
	 * @param {String} [rulerOverview="page"] the overview for the ruler.
	 * @param {orion.editor.Style} [rulerStyle] the style for the ruler. 
	 * 
	 * @class This interface represents a ruler for the text view.
	 * <p>
	 * A Ruler is a graphical element that is placed either on the left or on the right side of 
	 * the view. It can be used to provide the view with per line decoration such as line numbering,
	 * bookmarks, breakpoints, folding disclosures, etc. 
	 * </p><p>
	 * There are two types of rulers: page and document. A page ruler only shows the content for the lines that are
	 * visible, while a document ruler always shows the whole content.
	 * </p>
	 * <b>See:</b><br/>
	 * {@link orion.editor.LineNumberRuler}<br/>
	 * {@link orion.editor.AnnotationRuler}<br/>
	 * {@link orion.editor.OverviewRuler}<br/> 
	 * {@link orion.editor.TextView}<br/>
	 * {@link orion.editor.TextView#addRuler}
	 * </p>		 
	 * @name orion.editor.Ruler
	 * @borrows orion.editor.AnnotationTypeList#addAnnotationType as #addAnnotationType
	 * @borrows orion.editor.AnnotationTypeList#getAnnotationTypePriority as #getAnnotationTypePriority
	 * @borrows orion.editor.AnnotationTypeList#getAnnotationsByType as #getAnnotationsByType
	 * @borrows orion.editor.AnnotationTypeList#isAnnotationTypeVisible as #isAnnotationTypeVisible
	 * @borrows orion.editor.AnnotationTypeList#removeAnnotationType as #removeAnnotationType
	 */
Constructs a new ruler.

The default implementation does not implement all the methods in the interface
and is useful only for objects implementing rulers.

@param {orion.editor.AnnotationModel} annotationModel the annotation model for the ruler.
@param {String} [rulerLocation="left"] the location for the ruler.
@param {String} [rulerOverview="page"] the overview for the ruler.
@param {orion.editor.Style} [rulerStyle] the style for the ruler.

@class This interface represents a ruler for the text view.

A Ruler is a graphical element that is placed either on the left or on the right side of
the view. It can be used to provide the view with per line decoration such as line numbering,
bookmarks, breakpoints, folding disclosures, etc.

There are two types of rulers: page and document. A page ruler only shows the content for the lines that are
visible, while a document ruler always shows the whole content.
Constructs a new ruler . The default implementation does not implement all the methods in the interface and is useful only for objects implementing rulers . @param { orion . editor . AnnotationModel } annotationModel the annotation model for the ruler . @param { String } [ rulerLocation = " left " ] the location for the ruler . @param { String } [ rulerOverview = " page " ] the overview for the ruler . @param { orion . editor . Style } [ rulerStyle ] the style for the ruler . @class This interface represents a ruler for the text view . A Ruler is a graphical element that is placed either on the left or on the right side of the view . It can be used to provide the view with per line decoration such as line numbering bookmarks breakpoints folding disclosures etc . There are two types of rulers : page and document . A page ruler only shows the content for the lines that are visible while a document ruler always shows the whole content .
function Ruler (annotationModel, rulerLocation, rulerOverview, rulerStyle) {
		BaseRuler.call(this, rulerLocation, rulerOverview, rulerStyle);
		var self = this;
		this._listener = {
			onTextModelChanged: function(e) {
				self._onTextModelChanged(e);
			},
			onAnnotationModelChanged: function(e) {
				self._onAnnotationModelChanged(e);
			}
		};
		this.setAnnotationModel(annotationModel);
	}
function Ruler ( annotationModel , rulerLocation , rulerOverview , rulerStyle ) { BaseRuler . call ( this , rulerLocation , rulerOverview , rulerStyle ) ; var self = this ; this . _listener = { onTextModelChanged : function ( e ) { self . _onTextModelChanged ( e ) ; } , onAnnotationModelChanged : function ( e ) { self . _onAnnotationModelChanged ( e ) ; } } ; this . setAnnotationModel ( annotationModel ) ; }
Constructs a new ruler.
Constructs a new ruler .