Skip to content

Commit b1eaedb

Browse files
committed
Editor does not know about menu
Menu API simplified Renamed navigator => menuRenderer Menu does not know about menuRenderer
1 parent 67a3dca commit b1eaedb

File tree

6 files changed

+420
-499
lines changed

6 files changed

+420
-499
lines changed

puddle-editor/source/lib/editor.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ var $ = require('jquery');
55
var io = require('socket.io-client');
66
var syntax = require('./puddle-syntax-0.1.2');
77
var syntaxNew = require('puddle-syntax');
8+
var EventEmitter = require('events').EventEmitter;
9+
var emitter = new EventEmitter();
810
var assert = require('./assert');
911
var view = require('./view');
10-
var menu = global.menu = require('./menu');
1112
var corpus = require('./corpus');
1213
var debug = require('debug')('puddle:editor');
1314
var trace = require('./trace')(debug);
@@ -75,7 +76,7 @@ var insertLine = function (line, done, fail) {
7576
};
7677

7778
// incoming create
78-
var onInsertLine = function (id,line) {
79+
var onInsertLine = function (id, line) {
7980
ids.push(id);
8081
var churchTerm = syntaxNew.compiler.load(line);
8182
var root = syntax.tree.load(churchTerm);
@@ -223,6 +224,7 @@ var initCursor = function () {
223224

224225
var moveCursorLine = function (delta) {
225226
trace('moveCursorLine', arguments);
227+
226228
if (lineChanged) {
227229
commitLine();
228230
}
@@ -250,7 +252,9 @@ var moveCursor = function (direction) {
250252
}
251253
};
252254
};
253-
shared.actions = {
255+
256+
257+
var pureActions = {
254258
commitLine: commitLine,
255259
revertLine: function () {
256260
trace('revertLine', arguments);
@@ -324,6 +328,13 @@ shared.actions = {
324328
widenSelection: moveCursor('U')
325329
};
326330

331+
var sharedActions = _.each(pureActions, function (value, key, hash) {
332+
hash[key] = function () {
333+
value.apply(this,_.toArray(arguments));
334+
emitter.emit('update');
335+
};
336+
});
337+
327338
module.exports = {
328339
main: function () {
329340
loadAllLines();
@@ -343,7 +354,6 @@ module.exports = {
343354
}
344355
});
345356
initCursor();
346-
menu.init(shared);
347357
},
348358
getTerms: function () {
349359
return ids.map(function (id) {
@@ -355,6 +365,16 @@ module.exports = {
355365
remove: onRemoveLine,
356366
update: onUpdateLine
357367
},
358-
shared: shared
368+
getActions: function () {
369+
return sharedActions;
370+
},
371+
on: _.bind(emitter.on, emitter),
372+
getCursor: function () {
373+
return shared.cursor;
374+
},
375+
//TODO this function has to be replaced by methods of forest.
376+
getCorpus: function () {
377+
return corpus;
378+
}
359379

360380
};

puddle-editor/source/lib/main.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
var corpus = global.corpus = require('./corpus');
44
var editor = global.editor = require('./editor');
5+
var Menu = require('./menu/menu');
6+
var menuRenderer = require('./menu/menuRenderer');
57
var serverSyntax = require('./server-syntax');
68
var _ = require('lodash');
79
var puddleSocket = global.puddleSocket;
810

911
var debug = require('debug')('puddle:editor:main');
1012
var trace = require('./trace')(debug);
1113

14+
//TODO refactor editor to expose reset method
1215
var initEditor = _.once(function () {
1316
trace('Init editor');
1417
var newData = [];
@@ -20,6 +23,9 @@ var initEditor = _.once(function () {
2023

2124
corpus.loadAll(newData);
2225
editor.main();
26+
//TODO refactor for better API
27+
var menu = Menu(editor);
28+
menuRenderer(menu, editor);
2329
});
2430

2531
var reinitEditor = function () {
@@ -45,3 +51,4 @@ puddleSocket.on('update', function (id, obj) {
4551

4652

4753

54+

puddle-editor/source/lib/menu.js

Lines changed: 0 additions & 260 deletions
This file was deleted.

0 commit comments

Comments
 (0)