<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>The source code</title>
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
<style type="text/css">
|
.highlight { display: block; background-color: #ddd; }
|
</style>
|
<script type="text/javascript">
|
function highlight() {
|
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
|
}
|
</script>
|
</head>
|
<body onload="prettyPrint(); highlight();">
|
<pre class="prettyprint lang-js"><span id='Ext-layout-ClassList'>/**
|
</span> * This class provides a DOM ClassList API to buffer access to an element's class.
|
* Instances of this class are created by {@link Ext.layout.ContextItem#getClassList}.
|
*/
|
Ext.define('Ext.layout.ClassList', (function () {
|
|
var splitWords = Ext.String.splitWords,
|
toMap = Ext.Array.toMap;
|
|
return {
|
dirty: false,
|
|
constructor: function (owner) {
|
this.owner = owner;
|
this.map = toMap(this.classes = splitWords(owner.el.className));
|
},
|
|
<span id='Ext-layout-ClassList-method-add'> /**
|
</span> * Adds a single class to the class list.
|
*/
|
add: function (cls) {
|
var me = this;
|
|
if (!me.map[cls]) {
|
me.map[cls] = true;
|
me.classes.push(cls);
|
if (!me.dirty) {
|
me.dirty = true;
|
me.owner.markDirty();
|
}
|
}
|
},
|
|
<span id='Ext-layout-ClassList-method-addMany'> /**
|
</span> * Adds one or more classes in an array or space-delimited string to the class list.
|
*/
|
addMany: function (classes) {
|
Ext.each(splitWords(classes), this.add, this);
|
},
|
|
contains: function (cls) {
|
return this.map[cls];
|
},
|
|
flush: function () {
|
this.owner.el.className = this.classes.join(' ');
|
this.dirty = false;
|
},
|
|
<span id='Ext-layout-ClassList-method-remove'> /**
|
</span> * Removes a single class from the class list.
|
*/
|
remove: function (cls) {
|
var me = this;
|
|
if (me.map[cls]) {
|
delete me.map[cls];
|
me.classes = Ext.Array.filter(me.classes, function (c) {
|
return c != cls;
|
});
|
if (!me.dirty) {
|
me.dirty = true;
|
me.owner.markDirty();
|
}
|
}
|
},
|
|
<span id='Ext-layout-ClassList-method-removeMany'> /**
|
</span> * Removes one or more classes in an array or space-delimited string from the class
|
* list.
|
*/
|
removeMany: function (classes) {
|
var me = this,
|
remove = toMap(splitWords(classes));
|
|
me.classes = Ext.Array.filter(me.classes, function (c) {
|
if (!remove[c]) {
|
return true;
|
}
|
|
delete me.map[c];
|
if (!me.dirty) {
|
me.dirty = true;
|
me.owner.markDirty();
|
}
|
return false;
|
});
|
}
|
};
|
}()));
|
</pre>
|
</body>
|
</html>
|