1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-18 15:08:22 +00:00
seahub/media/aloha-0.22.7/plugins/common/ui/lib/component.js
llj 720ac28c22 [aloha] upgraded to 0.22.7 and added textcolor plugin
* textcolor: fixed plugin bugs, added translation for zh
* image: fixed default.jpg src bug
* added 'ru' support for seaf edit
* rm aloha-0.22.3 and ununsed files in aloha-0.22.7
2013-01-15 14:48:04 +08:00

122 lines
2.3 KiB
JavaScript

define([
'aloha/core',
'jquery',
'util/class'
], function (
Aloha,
$,
Class
) {
'use strict';
var idCounter = 0;
/**
* Component class and manager.
*
* This implementation constitues the base of all UI components (buttons,
* and labels). The `Component' constructor object, with its static
* properties and functions, manages all components instances.
*
* @class
* @base
*/
var Component = Class.extend({
id: 0,
/**
* Flag to indicate that this is an instance of a component and not the class object.
*/
isInstance: true,
/**
* The Container instance or null if this component was not
* adopted by a counter by calling Component.adopt().
*/
container: null,
/**
* Will be set in Component.define()
*/
type: null,
/**
* @type {boolean} Whether or not this component is visible.
*/
visible: true,
/**
* The type property is set in Component.define(), so components should only ever be instantiated through define.
* @constructor
*/
_constructor: function () {
this.id = idCounter++;
this.init();
},
adoptParent: function (container) {
this.container = container;
},
/**
* Initializes this component. To be implemented in subclasses.
*/
init: function () {},
isVisible: function () {
return this.visible;
},
/**
* Shows this component.
*/
show: function (show_opt) {
if (false === show_opt) {
this.hide();
return;
}
// Only call container.childVisible if we switch from hidden to visible
if (!this.visible) {
this.visible = true;
this.element.show();
if (this.container) {
this.container.childVisible(this, true);
}
}
},
/**
* Hides this component.
*/
hide: function () {
// Only call container.childVisible if we switch from visible to hidden
if (this.visible) {
this.visible = false;
this.element.hide();
if (this.container) {
this.container.childVisible(this, false);
}
}
},
focus: function () {
this.element.focus();
if (this.container) {
this.container.childFocus(this);
}
},
foreground: function () {
if (this.container) {
this.container.childForeground(this);
}
},
enable: function (enable_opt) {},
disable: function () {}
});
return Component;
});