4136673ad4b3deb847b0c4ce9103984bc2858b36
[fnpeditor.git] / src / wlxml / extensions / metadata / metadata.js
1 define(function(require) {
2     
3 'use strict';
4
5 var _ = require('libs/underscore'),
6     metadataKey = 'wlxml.metadata';
7
8
9 var methods = {
10     getMetadata: function() {
11         return this.getData(metadataKey) || [];
12     }
13 };
14
15 var transformations = {
16     addMetadataRow: function(row) {
17         this.setMetadataRow(null, row);
18     },
19
20     setMetadataRow: function(index, row) {
21         var metadata = this.getData(metadataKey) || [];
22         if(typeof index !== 'number' || index > metadata.length - 1) {
23             metadata.push(row);
24             index = metadata.length - 1;
25         } else {
26             metadata[index] = _.extend(metadata[index], row);
27         }
28         this.setData(metadataKey, metadata);
29         this.triggerChangeEvent('metadataChange', {index: index});
30     }
31 };
32
33 return {
34     elementNode: {
35         methods: methods,
36         transformations: transformations,
37     }
38 };
39
40 });
41