Source: br-component/src/br/component/Component.js

"use strict";

/**
* @module br/component/Component
*/

var Errors = require('br/Errors');

/**
* @class
* @interface
* @alias module:br/component/Component
* 
* @classdesc
* This interface must be implemented by a presentation-level class. A
* presentation-level class represents something that occupies physical
* space on the page, such as the content of a panel or a
* dialog box.
* 
* <p> Each implementation of a Component represents a different <b>Component type</b>,
* for example a Grid or a Trade Panel.
* 
* <p>A component receives a Frame, on which it can set its content element and attach
* event listeners.
*
* <p>Components that can have their state saved should also implement br.component.Serializable.
*/
function Component() {
}

/**
 * @param {module:br/component/Frame} frame A frame provided by the layout manager that this component can
 * attach its visual DOM elements into.  Will be called only once.
 */
Component.prototype.setDisplayFrame = function(frame) {
	throw new Errors.UnimplementedAbstractMethodError("Component.setDisplayFrame: Your component needs to implement setDisplayFrame.");
};

module.exports = Component;