Skip to content

Commit

Permalink
started adding run action
Browse files Browse the repository at this point in the history
  • Loading branch information
KeithWoods committed Mar 3, 2016
1 parent 9ade273 commit 6c1a800
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 52 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "esp-js-devtools",
"version": "0.0.14",
"version": "0.0.15",
"description": "Evented State Processor (ESP) dev tools",
"main": "dist/esp-js-devtools.js",
"scripts": {
Expand Down
10 changes: 8 additions & 2 deletions src/model/analyticsMonitor.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,20 @@ export default class AnalyticsMonitor {
this._router.publishEvent(this._devToolsModelId,'eventPublished', {modelId: modelId, eventType: eventType, event:event});
}
broadcastEvent(eventType) {
this._router.publishEvent(this._devToolsModelId, 'broadcastEvent', {eventType: eventType});
}
executingEvent(modelId) {
executingEvent(eventType) {
this._router.publishEvent(this._devToolsModelId, 'executingEvent', {eventType: eventType});
}
runAction(modelId) {
if(modelId === DebugToolsModel.modelId) return;
this._router.publishEvent(this._devToolsModelId, 'runAction', {modelId: modelId});
}
eventEnqueued(modelId, eventType) {
}
eventIgnored(modelId, eventType) {
if(modelId === DebugToolsModel.modelId) return;
this._router.publishEvent(this._devToolsModelId,'eventIgnored', {modelId: modelId, eventType: eventType});
}
dispatchLoopStart() {
}
Expand Down Expand Up @@ -72,7 +78,7 @@ export default class AnalyticsMonitor {
dispatchLoopEnd() {
}
halted(modelIds, err) {
if(modelIds.indexOf(DebugToolsModel.modelId) >=0 ) return;
if(modelIds.indexOf(DebugToolsModel.modelId) >= 0) return;
this._router.publishEvent(this._devToolsModelId, 'routerHalted', {modelIds: modelIds, err: err});
}
registerMonitor(devToolsDiagnosticMonitor) {
Expand Down
24 changes: 14 additions & 10 deletions src/model/dataPoint.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,28 @@ import DataPointType from './dataPointType';
let dataPointId = 1;

export default class DataPoint {
constructor(publishedTime, data, modelId, pointType) {
constructor(timeRecordedAt, modelId, eventType, error, pointType) {
this._pointId = dataPointId++;
this._data = data;
this._publishedTime = publishedTime;
this._devToolsModelId = modelId;
this._timeRecordedAt = timeRecordedAt;
this._modelId = modelId;
this._eventType = eventType;
this._error = error;
this._pointType = pointType;
}
get pointId() {
return this._pointId;
}
get data() {
return this._data;
}
get publishedTime() {
return this._publishedTime;
get timeRecordedAt() {
return this._timeRecordedAt;
}
get modelId() {
return this._devToolsModelId;
return this._modelId;
}
get eventType() {
return this._eventType;
}
get error() {
return this._error;
}
get pointType() {
return this._pointType;
Expand Down
1 change: 1 addition & 0 deletions src/model/dataPointType.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@

export default class DataPointType {
static get eventPublished() { return 'eventPublished'; };
static get actionRan() { return 'actionRan'; };
static get routerHalted() { return 'routerHalted'; };
}
91 changes: 55 additions & 36 deletions src/model/devToolsModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,24 +111,31 @@ export default class DevToolsModel extends esp.model.DisposableBase {
}
@esp.observeEvent('eventPublished')
_onEventPublished(event) {
this._updateType.push(UpdateType.eventsChanged);
let registeredModel = this._registeredModels[event.modelId];
if (!registeredModel) {
this._addModel(event.modelId);
}
var dataPoint = new DataPoint(moment(), event.eventType, event.modelId, DataPointType.eventPublished);
this._addDataPoint(dataPoint);
if(this._shouldLogToConsole) {
console.log(`[ESP-Event] ModelId:[${event.modelId}] EventType:[${event.eventType}]`, event.event);
}
this._recordEvent(event.modelId, event.eventType, DataPointType.eventPublished, event.event);
}
@esp.observeEvent('broadcastEvent')
_onBroadcastEvent(event) {

}
@esp.observeEvent('executingEvent')
_onExecutingEvent(event) {

}
@esp.observeEvent('runAction')
_onRunAction(event) {
this._recordEvent(event.modelId, '__runAction', DataPointType.actionRan);
}
@esp.observeEvent('eventIgnored')
_onEventIgnored(event) {

}
@esp.observeEvent('routerHalted')
_onRouterHalted(event) {
for (var i = 0; i < event.modelIds.length; i++) {
var modelId = event.modelIds[i];
let registeredModel = this._registeredModels[modelId];
if(registeredModel) {
var dataPoint = new DataPoint(moment(), event.err, modelId, DataPointType.routerHalted);
var dataPoint = new DataPoint(moment(), modelId, null, event.err, DataPointType.routerHalted);
registeredModel.haltingError = event.err;
registeredModel.isHalted = true;
this._addDataPoint(dataPoint);
Expand All @@ -137,31 +144,6 @@ export default class DevToolsModel extends esp.model.DisposableBase {
this._updateType.push(UpdateType.modelsChanged);
this._updateType.push(UpdateType.eventsChanged);
}
_addModel(modelId) {
this._updateType.push(UpdateType.modelsChanged);
let registeredModel = this._registeredModels[modelId];
if(registeredModel) {
throw new Error(`model with id ${modelId} already registered`);
}
registeredModel = new RegisteredModel(modelId);
this._registeredModels[modelId] = registeredModel;
return registeredModel;
}
_addDataPoint(dataPoint) {
this._dataPointsById[dataPoint.pointId] = dataPoint;
this._dataPoints.push(dataPoint);
this._newDataPoints.push(dataPoint);
this._processedDataPointCount++;
if(this._processedDataPointCount > this._dataPointBufferSize) {
let numberToRemove = this._dataPoints.length - this._dataPointBufferSize;
let removedItems = this._dataPoints.splice(0, numberToRemove);
for (let i = 0; i < removedItems.length; i++) {
let dataPointToRemove = removedItems[i];
this._dataPointsIdsToRemove.push(dataPointToRemove.pointId);
delete this._dataPointsById[dataPointToRemove.pointId];
}
}
}
@esp.observeEvent('pointSelected')
_onPointSelected(event) {
this._shouldAutoScroll = false;
Expand Down Expand Up @@ -218,4 +200,41 @@ export default class DevToolsModel extends esp.model.DisposableBase {
clearInterval(this._timerSubscription);
}
}
_recordEvent(modelId, eventType, dataPointType:DataPointType, eventPayload) {
this._updateType.push(UpdateType.eventsChanged);
let registeredModel = this._registeredModels[modelId];
if (!registeredModel) {
this._addModel(modelId);
}
var dataPoint = new DataPoint(moment(), modelId, eventType, null, dataPointType);
this._addDataPoint(dataPoint);
if(this._shouldLogToConsole && typeof eventPayload !== 'undefined') {
console.log(`[ESP-Event] ModelId:[${modelId}] EventType:[${eventType}]`, eventPayload);
}
}
_addModel(modelId) {
this._updateType.push(UpdateType.modelsChanged);
let registeredModel = this._registeredModels[modelId];
if(registeredModel) {
throw new Error(`model with id ${modelId} already registered`);
}
registeredModel = new RegisteredModel(modelId);
this._registeredModels[modelId] = registeredModel;
return registeredModel;
}
_addDataPoint(dataPoint) {
this._dataPointsById[dataPoint.pointId] = dataPoint;
this._dataPoints.push(dataPoint);
this._newDataPoints.push(dataPoint);
this._processedDataPointCount++;
if(this._processedDataPointCount > this._dataPointBufferSize) {
let numberToRemove = this._dataPoints.length - this._dataPointBufferSize;
let removedItems = this._dataPoints.splice(0, numberToRemove);
for (let i = 0; i < removedItems.length; i++) {
let dataPointToRemove = removedItems[i];
this._dataPointsIdsToRemove.push(dataPointToRemove.pointId);
delete this._dataPointsById[dataPointToRemove.pointId];
}
}
}
}
8 changes: 5 additions & 3 deletions src/views/devToolsView.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ import vis from 'vis';
import 'vis/dist/vis.css';
import './devToolsView.less'
import UpdateType from '../model/updateType';
import template from './devToolsView.template.html';
import containerTempalte from './devToolsView.template.html';
import pointSelectedTempalte from './pointSelected.template.html';
import DataPointType from '../model/dataPointType';

export default class DevToolsView extends esp.model.DisposableBase {
Expand Down Expand Up @@ -70,7 +71,7 @@ export default class DevToolsView extends esp.model.DisposableBase {
let points = isStateOfTheWorld
? model.dataPoints
: model.newDataPoints;
for (var i = 0; i < points.length; i++) {
for (let i = 0; i < points.length; i++) {
var dataPoint = points[i];
let pointStyle = dataPoint.pointType == DataPointType.routerHalted
? 'background:red'
Expand Down Expand Up @@ -103,6 +104,7 @@ export default class DevToolsView extends esp.model.DisposableBase {
this._logEventsConsoleCheckbox.prop('checked', model.shouldLogToConsole);
}
if (this._eventDetailsDescriptionP && model.selectedDataPoint) {

this._eventDetailsDescriptionP.html(JSON.stringify(model.selectedDataPoint));
}
if(this._ringBufferSizeInput && !this._ringBufferSizeInput.is(":focus")) {
Expand All @@ -117,7 +119,7 @@ export default class DevToolsView extends esp.model.DisposableBase {
_createDevToolsElements() {
let _this = this;
$(() => {
let container = $(template);
let container = $(containerTempalte);

// note use of function so 'this' is the checkbox
this._autoscrollCheckbox = container.find('#autoscrollCheckbox');
Expand Down
6 changes: 6 additions & 0 deletions src/views/pointSelected.template.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<div id='event-details'>
<div id="timeRecordedAt" class="event-details-time-recorded-at"></div>
<div id="modelId" class="event-details-model-Id"></div>
<div id="eventType" class="event-details-event-type"></div>
<div id="error" class="event-details-error"></div>
</div>

0 comments on commit 6c1a800

Please sign in to comment.