trying to implement bind
This commit is contained in:
parent
69c60aac07
commit
1dee54a11a
|
@ -213,7 +213,7 @@ will be:
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Example 3
|
Example 3 "field"
|
||||||
|
|
||||||
|
|
||||||
We want to make it easy to query from the view. That's why each
|
We want to make it easy to query from the view. That's why each
|
||||||
|
|
|
@ -11,6 +11,14 @@
|
||||||
var isString = plt.baselib.strings.isString;
|
var isString = plt.baselib.strings.isString;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FIXME: as soon as we get real parameters, use parameters
|
||||||
|
// instead. Global: defines the currently running big bang.
|
||||||
|
// Parameterized around the call to bigBang.
|
||||||
|
var currentBigBangRecord = undefined;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var resourceStructType =
|
var resourceStructType =
|
||||||
MACHINE.modules['whalesong/resource/structs.rkt'].namespace['struct:resource'];
|
MACHINE.modules['whalesong/resource/structs.rkt'].namespace['struct:resource'];
|
||||||
|
|
||||||
|
@ -206,18 +214,25 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
MockView.prototype.bind = function(name, worldF) {
|
MockView.prototype.bind = function(name, worldF) {
|
||||||
// return new EventHandler('on-tick',
|
|
||||||
// new TickEventSource(delay),
|
|
||||||
// onTick);
|
|
||||||
|
|
||||||
return this.act(
|
return this.act(
|
||||||
function(cursor) {
|
function(cursor) {
|
||||||
return cursor;
|
var newCursor = cursor.replaceNode($(cursor.node).clone(true).get(0));
|
||||||
//return cursor.replaceNode($(cursor.node).clone(true).bind(name,
|
var handler = new EventHandler('on-tick',
|
||||||
|
new DomEventSource(name,
|
||||||
|
newCursor.node),
|
||||||
|
worldF);
|
||||||
|
currentBigBangRecord.startEventHandler(handler);
|
||||||
|
return newCursor;
|
||||||
},
|
},
|
||||||
|
|
||||||
function(view) {
|
function(view) {
|
||||||
return view;
|
var handler = new EventHandler('on-tick',
|
||||||
//view.focus.bind...
|
new DomEventSource(
|
||||||
|
name,
|
||||||
|
view.focus.get(0)),
|
||||||
|
worldF);
|
||||||
|
view.addEventHandler(handler);
|
||||||
|
currentBigBangRecord.startEventHandler(handler);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -557,6 +572,7 @@
|
||||||
// bigBang.
|
// bigBang.
|
||||||
var bigBang = function(MACHINE, world, handlers) {
|
var bigBang = function(MACHINE, world, handlers) {
|
||||||
var oldArgcount = MACHINE.argcount;
|
var oldArgcount = MACHINE.argcount;
|
||||||
|
var oldCurrentBigBangRecord = currentBigBangRecord;
|
||||||
|
|
||||||
var running = true;
|
var running = true;
|
||||||
var dispatchingEvents = false;
|
var dispatchingEvents = false;
|
||||||
|
@ -580,6 +596,7 @@
|
||||||
stopEventHandlers();
|
stopEventHandlers();
|
||||||
restart(function(MACHINE) {
|
restart(function(MACHINE) {
|
||||||
MACHINE.argcount = oldArgcount;
|
MACHINE.argcount = oldArgcount;
|
||||||
|
currentBigBangRecord = oldCurrentBigBangRecord;
|
||||||
finalizeClosureCall(MACHINE, world);
|
finalizeClosureCall(MACHINE, world);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -588,6 +605,7 @@
|
||||||
running = false;
|
running = false;
|
||||||
stopEventHandlers();
|
stopEventHandlers();
|
||||||
restart(function(MACHINE) {
|
restart(function(MACHINE) {
|
||||||
|
currentBigBangRecord = oldCurrentBigBangRecord;
|
||||||
plt.baselib.exceptions.raise(MACHINE, exn);
|
plt.baselib.exceptions.raise(MACHINE, exn);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -701,6 +719,11 @@
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
currentBigBangRecord = { stop : onCleanRestart,
|
||||||
|
stopWithExn : onMessyRestart,
|
||||||
|
startEventHandler : startEventHandler,
|
||||||
|
stopEventHandler : stopEventHandler };
|
||||||
|
|
||||||
view.initialRender(top);
|
view.initialRender(top);
|
||||||
startEventHandlers();
|
startEventHandlers();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user