begin implementing xml support
This commit is contained in:
		
							parent
							
								
									b750d95b98
								
							
						
					
					
						commit
						977e4d2a7c
					
				@ -74,7 +74,8 @@
 | 
				
			|||||||
    HistoryBuffer.prototype.getReservedUniqueIdentifier = function() {
 | 
					    HistoryBuffer.prototype.getReservedUniqueIdentifier = function() {
 | 
				
			||||||
      return {
 | 
					      return {
 | 
				
			||||||
        creator: '_',
 | 
					        creator: '_',
 | 
				
			||||||
        op_number: "_" + (this.reserved_identifier_counter++)
 | 
					        op_number: "_" + (this.reserved_identifier_counter++),
 | 
				
			||||||
 | 
					        doSync: false
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -231,24 +231,11 @@
 | 
				
			|||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
          </ul>
 | 
					          </ul>
 | 
				
			||||||
          <ul>
 | 
					 | 
				
			||||||
            <li class='letter'>x</li>
 | 
					 | 
				
			||||||
            <ul>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <a href='file/lib/Types/XmlTypes.coffee.html'>
 | 
					 | 
				
			||||||
                  XmlTypes.coffee
 | 
					 | 
				
			||||||
                </a>
 | 
					 | 
				
			||||||
                <small>
 | 
					 | 
				
			||||||
                  (lib/Types)
 | 
					 | 
				
			||||||
                </small>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
          </ul>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -302,7 +302,7 @@ data from the received intent.</p>
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -335,7 +335,7 @@ JsonFramework was initialized (Depending on the HistoryBuffer implementation).</
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -466,7 +466,7 @@ if (x.type === "JsonType") {
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -139,7 +139,7 @@ console.log(w.newProperty == "Awesome") # true!</code></pre>
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -222,7 +222,7 @@ on how to do that with urls.</p>
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -356,7 +356,7 @@ JsonFramework was initialized (Depending on the HistoryBuffer implementation).</
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -415,7 +415,7 @@ yatta.bind(textbox);</code></pre>
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,7 @@ But I would become really motivated if you gave me some feedback :) (<a href="ht
 | 
				
			|||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li>XML support</li>
 | 
					<li>XML support</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
<h2 id="support">Support</h2><p>Please report any issues to the <a href="https://github.com/DadaMonad/Yatta/issues">Github issue page</a>!</p><h2 id="license">License</h2><p>Yatta! is licensed under the <a href="./LICENSE.txt">MIT License</a>.</p><a href="mailto:kevin.jahns@rwth-aachen.de">kevin.jahns@rwth-aachen.de</a>
 | 
					<h2 id="support">Support</h2><p>Please report any issues to the <a href="https://github.com/DadaMonad/Yatta/issues">Github issue page</a>!</p><h2 id="license">License</h2><p>Yatta! is licensed under the <a href="./LICENSE.txt">MIT License</a>.</p><a href="mailto:kevin.jahns@rwth-aachen.de">kevin.jahns@rwth-aachen.de</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -79,7 +79,7 @@ But I would become really motivated if you gave me some feedback :) (<a href="ht
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -100,7 +100,7 @@
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -158,7 +158,7 @@
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,7 @@
 | 
				
			|||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@
 | 
				
			|||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@
 | 
				
			|||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,7 @@
 | 
				
			|||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -37,7 +37,7 @@
 | 
				
			|||||||
      </table>
 | 
					      </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div id='footer'>
 | 
					    <div id='footer'>
 | 
				
			||||||
  September 17, 14 18:11:46 by
 | 
					  September 23, 14 12:59:35 by
 | 
				
			||||||
  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
					  <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
 | 
				
			||||||
    Codo
 | 
					    Codo
 | 
				
			||||||
  </a>
 | 
					  </a>
 | 
				
			||||||
 | 
				
			|||||||
@ -145,14 +145,6 @@
 | 
				
			|||||||
            lib/Types
 | 
					            lib/Types
 | 
				
			||||||
          </small>
 | 
					          </small>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
        <li>
 | 
					 | 
				
			||||||
          <a href='file/lib/Types/XmlTypes.coffee.html' target='main'>
 | 
					 | 
				
			||||||
            XmlTypes.coffee
 | 
					 | 
				
			||||||
          </a>
 | 
					 | 
				
			||||||
          <small class='namespace'>
 | 
					 | 
				
			||||||
            lib/Types
 | 
					 | 
				
			||||||
          </small>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
      </ul>
 | 
					      </ul>
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        <li>
 | 
					        <li>
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -69,6 +69,7 @@ class HistoryBuffer
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      creator : '_'
 | 
					      creator : '_'
 | 
				
			||||||
      op_number : "_#{@reserved_identifier_counter++}"
 | 
					      op_number : "_#{@reserved_identifier_counter++}"
 | 
				
			||||||
 | 
					      doSync: false
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #
 | 
					  #
 | 
				
			||||||
 | 
				
			|||||||
@ -26,13 +26,14 @@ module.exports = (HB)->
 | 
				
			|||||||
      @is_deleted = false
 | 
					      @is_deleted = false
 | 
				
			||||||
      @doSync = true
 | 
					      @doSync = true
 | 
				
			||||||
      @garbage_collected = false
 | 
					      @garbage_collected = false
 | 
				
			||||||
      if uid?
 | 
					      if not uid?
 | 
				
			||||||
        @doSync = not isNaN(parseInt(uid.op_number))
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        uid = HB.getNextOperationIdentifier()
 | 
					        uid = HB.getNextOperationIdentifier()
 | 
				
			||||||
 | 
					      if not uid.doSync?
 | 
				
			||||||
 | 
					        uid.doSync = not isNaN(parseInt(uid.op_number))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        'creator': @creator
 | 
					        'creator': @creator
 | 
				
			||||||
        'op_number' : @op_number
 | 
					        'op_number' : @op_number
 | 
				
			||||||
 | 
					        'doSync' : @doSync
 | 
				
			||||||
      } = uid
 | 
					      } = uid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    type: "Insert"
 | 
					    type: "Insert"
 | 
				
			||||||
 | 
				
			|||||||
@ -341,7 +341,6 @@ module.exports = (HB)->
 | 
				
			|||||||
      if @content?
 | 
					      if @content?
 | 
				
			||||||
        @content.applyDelete()
 | 
					        @content.applyDelete()
 | 
				
			||||||
        @content.dontSync()
 | 
					        @content.dontSync()
 | 
				
			||||||
      @beforeDelete = @content # TODO!!!!!!!!!!
 | 
					 | 
				
			||||||
      @content = null
 | 
					      @content = null
 | 
				
			||||||
      super
 | 
					      super
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,125 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					json_types_uninitialized = require "./JsonTypes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = (HB)->
 | 
				
			||||||
 | 
					  json_types = json_types_uninitialized HB
 | 
				
			||||||
 | 
					  types = json_types.types
 | 
				
			||||||
 | 
					  parser = json_types.parser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Manages XML types
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  class XmlType extends types.Insert
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    constructor: (uid, @tagname, attributes, elements, prev_cl, next_cl, origin)->
 | 
				
			||||||
 | 
					      super uid, prev_cl, next_cl, origin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if attributes? and elements?
 | 
				
			||||||
 | 
					        @saveOperation 'attributes', attributes
 | 
				
			||||||
 | 
					        @saveOperation 'elements', elements
 | 
				
			||||||
 | 
					      else if (not attributes?) and (not elements?)
 | 
				
			||||||
 | 
					        @attributes = new types.JsonType()
 | 
				
			||||||
 | 
					        HB.addOperation(@attributes).execute()
 | 
				
			||||||
 | 
					        @elements = new types.WordType()
 | 
				
			||||||
 | 
					        HB.addOperation(@elements).execute()
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        throw new Error "Either define attribute and elements both, or none of them"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Identifies this class.
 | 
				
			||||||
 | 
					    # Use it in order to check whether this is an xml-type or something else.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    type: "XmlType"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    applyDelete: ()->
 | 
				
			||||||
 | 
					      @attributes.applyDelete()
 | 
				
			||||||
 | 
					      @elements.applyDelete()
 | 
				
			||||||
 | 
					      super()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cleanup: ()->
 | 
				
			||||||
 | 
					      super()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    val: ()->
 | 
				
			||||||
 | 
					      if document?
 | 
				
			||||||
 | 
					        if arguments.length is 0
 | 
				
			||||||
 | 
					          if not @xml?
 | 
				
			||||||
 | 
					            @xml = document.createElement @tagname
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            attr = @attributes.val()
 | 
				
			||||||
 | 
					            for attr_name, value of attr
 | 
				
			||||||
 | 
					              a = document.createAttribute attr_name
 | 
				
			||||||
 | 
					              a.value = value
 | 
				
			||||||
 | 
					              @xml.setAttributeNode a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            e = @elements.beginning.next_cl
 | 
				
			||||||
 | 
					            while e.type isnt "Delimiter"
 | 
				
			||||||
 | 
					              if not e.isDeleted()
 | 
				
			||||||
 | 
					                @xml.appendChild e.val()
 | 
				
			||||||
 | 
					              e.next_cl
 | 
				
			||||||
 | 
					          @xml
 | 
				
			||||||
 | 
					        else if arguments.length is 1
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          throw new Error "Can only parse one parameter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # If possible set the replace manager in the content.
 | 
				
			||||||
 | 
					    # @see WordType.setReplaceManager
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    execute: ()->
 | 
				
			||||||
 | 
					      super
 | 
				
			||||||
 | 
					    ###
 | 
				
			||||||
 | 
					      if not @validateSavedOperations()
 | 
				
			||||||
 | 
					        return false
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return true
 | 
				
			||||||
 | 
					    ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Get the parent of this JsonType.
 | 
				
			||||||
 | 
					    # @return {XmlType}
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    getParent: ()->
 | 
				
			||||||
 | 
					      @parent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # @private
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Convert all relevant information of this operation to the json-format.
 | 
				
			||||||
 | 
					    # This result can be send to other clients.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    _encode: ()->
 | 
				
			||||||
 | 
					      json =
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          'type' : @type
 | 
				
			||||||
 | 
					          'attributes' : @attributes.getUid()
 | 
				
			||||||
 | 
					          'elements' : @elements.getUid()
 | 
				
			||||||
 | 
					          'tagname' : @tagname
 | 
				
			||||||
 | 
					          'uid' : @getUid()
 | 
				
			||||||
 | 
					          'uid' : @getUid()
 | 
				
			||||||
 | 
					          'prev': @prev_cl.getUid()
 | 
				
			||||||
 | 
					          'next': @next_cl.getUid()
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      if @origin isnt @prev_cl
 | 
				
			||||||
 | 
					        json["origin"] = @origin.getUid()
 | 
				
			||||||
 | 
					      json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  parser['XmlType'] = (json)->
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      'uid' : uid
 | 
				
			||||||
 | 
					      'attributes' : attributes
 | 
				
			||||||
 | 
					      'elements' : elements
 | 
				
			||||||
 | 
					      'tagname' : tagname
 | 
				
			||||||
 | 
					      'prev': prev
 | 
				
			||||||
 | 
					      'next': next
 | 
				
			||||||
 | 
					      'origin' : origin
 | 
				
			||||||
 | 
					    } = json
 | 
				
			||||||
 | 
					    new XmlType uid, tagname, attributes, elements, prev, next, origin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  types['XmlType'] = XmlType
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  json_types
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user