radio/libjs/wController/imagePane.js

41 lines
1.1 KiB
JavaScript

"use strict";
var Address = require("../wType/address");
var Vocabulary = require("./vocabulary");
var File = require("./file/file");
var ImagePane = Vocabulary.inherit({
"className": "ImagePane",
"constructor": function(addr) {
Vocabulary.fn.constructor.call(this, addr);
this._hasImage = false;
this.image = null;
},
"addElement": function(key, element) {
if (key === "image" && !this._hasImage) {
this._hasImage = true;
this.image = new File(new Address(["images", element.toString()]));
this.addForeignController("Corax", this.image);
}
Vocabulary.fn.addElement.call(this, key, element);
},
"hasImage": function() {
return this._hasImage;
},
"removeElement": function(key) {
Vocabulary.fn.removeElement.call(this, key);
if (key === "image" && this._hasImage) {
this.removeForeignController(this.image);
this._hasImage = false;
this.image.destructor();
this.image = null;
}
}
});
module.exports = ImagePane;