validate cover extension in metadata dialog
[fnpeditor.git] / src / editor / plugins / core / canvasElements.js
index e74adee..ba72c03 100644 (file)
@@ -1,8 +1,13 @@
 define(function(require) {
     
 'use strict';
-var $ = require('libs/jquery');
 
+var $ = require('libs/jquery'),
+    genericElement = require('modules/documentCanvas/canvas/genericElement'), // TODO: This should be accessible via plugin infrastructure
+    linkElement = require('./links/linkElement'),
+    imgElement = require('./img/imgElement'),
+    videoElement = require('./video/videoElement')
+    ;
 
 var widgets = {
     footnoteHandler: function(clickHandler) {
@@ -53,9 +58,10 @@ var widgets = {
 };
 
 
-var comment = {
+var comment = Object.create(genericElement);
+$.extend(comment, {
     init: function() {
-        this.super.init.call(this);
+        genericElement.init.call(this);
         this.commentAdnotation = widgets.commentAdnotation(this.wlxmlNode);
         this.addWidget(this.commentAdnotation, 'show');
         this.commentAdnotation.DOM.show();
@@ -70,11 +76,12 @@ var comment = {
     onMetadataRemoved: function(event) {
         return this.onMetadataChanged(event);
     }
-};
+});
 
-var footnote = {
+var footnote = Object.create(genericElement);
+$.extend(footnote, {
     init: function() {
-        this.super.init.call(this);
+        genericElement.init.call(this);
         var clickHandler = function() {
             this.toggle(true);
         }.bind(this);
@@ -103,12 +110,15 @@ var footnote = {
             this.trigger('elementToggled', toggle, this);
         }
     }
-};
+});
 
 
 return [
-    {tag: 'aside',   klass: 'comment', prototype: comment, extending: {tag: 'div'}},
-    {tag: 'aside', klass: 'footnote', prototype: footnote, extending: {tag: 'aside'}}
+    {tag: 'aside', klass: 'comment', prototype: null},
+    {tag: 'aside', klass: 'footnote', prototype: footnote},
+    {tag: 'span', klass: 'link', prototype: linkElement},
+    {tag: 'div', klass: 'img', prototype: imgElement},
+    {tag: 'div', klass: 'video', prototype: videoElement}
 ];