Clazz.declarePackage ("JM"); Clazz.load (["JM.Structure"], "JM.Chain", null, function () { c$ = Clazz.decorateAsClass (function () { this.model = null; this.chainID = 0; this.chainNo = 0; this.groups = null; this.groupCount = 0; this.selectedGroupCount = 0; Clazz.instantialize (this, arguments); }, JM, "Chain", null, JM.Structure); Clazz.makeConstructor (c$, function (model, chainID, chainNo) { this.model = model; this.chainID = chainID; this.chainNo = chainNo; this.groups = new Array (16); }, "JM.Model,~N,~N"); Clazz.defineMethod (c$, "getIDStr", function () { return (this.chainID == 0 ? "" : this.chainID < 256 ? "" + String.fromCharCode (this.chainID) : this.model.ms.vwr.getChainIDStr (this.chainID)); }); Clazz.defineMethod (c$, "calcSelectedGroupsCount", function (bsSelected) { this.selectedGroupCount = 0; for (var i = 0; i < this.groupCount; i++) this.groups[i].selectedIndex = (this.groups[i].isSelected (bsSelected) ? this.selectedGroupCount++ : -1); }, "JU.BS"); Clazz.defineMethod (c$, "fixIndices", function (atomsDeleted, bsDeleted) { for (var i = 0; i < this.groupCount; i++) this.groups[i].fixIndices (atomsDeleted, bsDeleted); }, "~N,JU.BS"); Clazz.overrideMethod (c$, "setAtomBits", function (bs) { for (var i = 0; i < this.groupCount; i++) this.groups[i].setAtomBits (bs); }, "JU.BS"); Clazz.overrideMethod (c$, "setAtomBitsAndClear", function (bs, bsOut) { for (var i = 0; i < this.groupCount; i++) this.groups[i].setAtomBitsAndClear (bs, bsOut); }, "JU.BS,JU.BS"); });