|
@@ -59,12 +59,14 @@ define(['./compatibility'], function () {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- TraitsBrik.deps = ["behaviors", "composition", "root"];
|
|
|
+ TraitsBrik.deps = ["behaviors", "composition", "arraySet", "root"];
|
|
|
function TraitsBrik (brikz, st) {
|
|
|
var coreFns = brikz.root.coreFns;
|
|
|
var SmalltalkBehaviorBody = brikz.behaviors.BehaviorBody;
|
|
|
var setupMethods = brikz.composition.setupMethods;
|
|
|
var buildBehaviorBody = brikz.behaviors.buildBehaviorBody;
|
|
|
+ var addElement = brikz.arraySet.addElement;
|
|
|
+ var removeElement = brikz.arraySet.removeElement;
|
|
|
|
|
|
function SmalltalkTrait () {
|
|
|
}
|
|
@@ -88,6 +90,12 @@ define(['./compatibility'], function () {
|
|
|
defineMethod(SmalltalkTrait, "methodRemoved", function (method) {
|
|
|
if (st._traitMethodRemoved) st._traitMethodRemoved(method, this);
|
|
|
});
|
|
|
+ defineMethod(SmalltalkTrait, "addUser", function (behaviorBody) {
|
|
|
+ addElement(this.traitUsers, behaviorBody);
|
|
|
+ });
|
|
|
+ defineMethod(SmalltalkTrait, "removeUser", function (behaviorBody) {
|
|
|
+ removeElement(this.traitUsers, behaviorBody);
|
|
|
+ });
|
|
|
|
|
|
function traitBuilder (className) {
|
|
|
return {
|
|
@@ -96,6 +104,7 @@ define(['./compatibility'], function () {
|
|
|
var that = new SmalltalkTrait();
|
|
|
that.className = className;
|
|
|
that.pkg = pkg;
|
|
|
+ that.traitUsers = [];
|
|
|
setupMethods(that);
|
|
|
return that;
|
|
|
},
|