Nation Notes module contributed by Z&H Healthcare.
[openemr.git] / library / custom_template / ckeditor / _source / core / htmlparser / basicwriter.js
blob2d03a26ff83348662728bb73e9ca3c97d96f8a46
1 /*
2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.html or http://ckeditor.com/license
4 */
6 CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass(
8         $ : function()
9         {
10                 this._ =
11                 {
12                         output : []
13                 };
14         },
16         proto :
17         {
18                 /**
19                  * Writes the tag opening part for a opener tag.
20                  * @param {String} tagName The element name for this tag.
21                  * @param {Object} attributes The attributes defined for this tag. The
22                  *              attributes could be used to inspect the tag.
23                  * @example
24                  * // Writes "<p".
25                  * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );
26                  */
27                 openTag : function( tagName, attributes )
28                 {
29                         this._.output.push( '<', tagName );
30                 },
32                 /**
33                  * Writes the tag closing part for a opener tag.
34                  * @param {String} tagName The element name for this tag.
35                  * @param {Boolean} isSelfClose Indicates that this is a self-closing tag,
36                  *              like "br" or "img".
37                  * @example
38                  * // Writes "&gt;".
39                  * writer.openTagClose( 'p', false );
40                  * @example
41                  * // Writes " /&gt;".
42                  * writer.openTagClose( 'br', true );
43                  */
44                 openTagClose : function( tagName, isSelfClose )
45                 {
46                         if ( isSelfClose )
47                                 this._.output.push( ' />' );
48                         else
49                                 this._.output.push( '>' );
50                 },
52                 /**
53                  * Writes an attribute. This function should be called after opening the
54                  * tag with {@link #openTagClose}.
55                  * @param {String} attName The attribute name.
56                  * @param {String} attValue The attribute value.
57                  * @example
58                  * // Writes ' class="MyClass"'.
59                  * writer.attribute( 'class', 'MyClass' );
60                  */
61                 attribute : function( attName, attValue )
62                 {
63                         // Browsers don't always escape special character in attribute values. (#4683, #4719).
64                         if ( typeof attValue == 'string' )
65                                 attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
67                         this._.output.push( ' ', attName, '="', attValue, '"' );
68                 },
70                 /**
71                  * Writes a closer tag.
72                  * @param {String} tagName The element name for this tag.
73                  * @example
74                  * // Writes "&lt;/p&gt;".
75                  * writer.closeTag( 'p' );
76                  */
77                 closeTag : function( tagName )
78                 {
79                         this._.output.push( '</', tagName, '>' );
80                 },
82                 /**
83                  * Writes text.
84                  * @param {String} text The text value
85                  * @example
86                  * // Writes "Hello Word".
87                  * writer.text( 'Hello Word' );
88                  */
89                 text : function( text )
90                 {
91                         this._.output.push( text );
92                 },
94                 /**
95                  * Writes a comment.
96                  * @param {String} comment The comment text.
97                  * @example
98                  * // Writes "&lt;!-- My comment --&gt;".
99                  * writer.comment( ' My comment ' );
100                  */
101                 comment : function( comment )
102                 {
103                         this._.output.push( '<!--', comment, '-->' );
104                 },
106                 /**
107                  * Writes any kind of data to the ouput.
108                  * @example
109                  * writer.write( 'This is an &lt;b&gt;example&lt;/b&gt;.' );
110                  */
111                 write : function( data )
112                 {
113                         this._.output.push( data );
114                 },
116                 /**
117                  * Empties the current output buffer.
118                  * @example
119                  * writer.reset();
120                  */
121                 reset : function()
122                 {
123                         this._.output = [];
124                         this._.indent = false;
125                 },
127                 /**
128                  * Empties the current output buffer.
129                  * @param {Boolean} reset Indicates that the {@link reset} function is to
130                  *              be automatically called after retrieving the HTML.
131                  * @returns {String} The HTML written to the writer so far.
132                  * @example
133                  * var html = writer.getHtml();
134                  */
135                 getHtml : function( reset )
136                 {
137                         var html = this._.output.join( '' );
139                         if ( reset )
140                                 this.reset();
142                         return html;
143                 }
144         }