Files
Mostly-Harmless/fancy-settings/js/classes/tab.js
T

52 lines
1.6 KiB
JavaScript
Executable File

//
// Copyright (c) 2011 Frank Kohlhepp
// https://github.com/frankkohlhepp/fancy-settings
// License: LGPL v2.1
//
(function () {
var Bundle = new Class({
"initialize": function (creator) {
this.creator = creator;
// Create DOM elements
this.tab = new Element("div", {"class": "tab"});
this.content = new Element("div", {"class": "tab-content"});
// Create event handlers
this.tab.addEvent("click", this.activate.bind(this));
},
"activate": function () {
if (this.creator.activeBundle && this.creator.activeBundle !== this) {
this.creator.activeBundle.deactivate();
}
this.tab.addClass("active");
this.content.addClass("show");
this.creator.activeBundle = this;
},
"deactivate": function () {
this.tab.removeClass("active");
this.content.removeClass("show");
this.creator.activeBundle = null;
}
});
this.Tab = new Class({
"activeBundle": null,
"initialize": function (tabContainer, tabContentContainer) {
this.tabContainer = tabContainer;
this.tabContentContainer = tabContentContainer;
},
"create": function () {
var bundle = new Bundle(this);
bundle.tab.inject(this.tabContainer);
bundle.content.inject(this.tabContentContainer);
if (!this.activeBundle) { bundle.activate(); }
return bundle;
}
});
}());