Commit Graph

204 Commits

Author SHA1 Message Date
John Firebaugh 3b8d640cfb Preserve Entity immutability
Reintroduced an Entity class. Entity mutations will be
expressed as methods that return a new Entity.

Extract a move operation from the drag behavior. Instead
of updating an entity in place, the drag event produces
a new entity and graph and replaces the current history
version, which was created by doing a noop on dragstart.

pdata is no longer used. It was previously removed from
Graph, and I think it makes more sense to have a specialized
Entity class as well.
2012-11-09 18:58:16 -08:00
John Firebaugh b3f3d0eff4 Local graph variable 2012-11-09 17:43:25 -08:00
John Firebaugh 59ce3f0ee8 Remove unused argument 2012-11-09 17:42:09 -08:00
John Firebaugh 13ea3325ee Preserve Graph immutability
The connection calls back with a Graph, rather than
updating the one passed in the constructor in-place.

History takes care of merging the new Graph into each
version. (If we used prototype-based sharing, we could
instead update a single special-case mutable root entity
map.)
2012-11-09 17:01:06 -08:00
John Firebaugh e403571370 Clone and manipulate entities directly 2012-11-09 16:51:46 -08:00
John Firebaugh 7f2dc815cd Use instanceof trick for consistent construction style
Fixes #67.
2012-11-09 16:33:47 -08:00
John Firebaugh c9c40311e7 Refactoring Graph manipulation
Extract iD.History from Graph. History is a versioned
series of Graphs that knows how to do, undo, and redo.

Graph holds entities and an annotation. A parallel array
of annotations in history is no longer necessary.

Operations no longer need a map object to be threaded
through.

Fixed #65.
2012-11-08 21:42:10 -08:00
John Firebaugh 68ee31ea29 Move controller to own file 2012-11-08 15:45:39 -08:00
John Firebaugh a7e8466328 Missing file 2012-11-08 14:43:25 -08:00
Tom MacWright d904d22c57 Comments and docs 2012-11-07 15:44:06 -05:00
Tom MacWright 08ed9c5af2 Remove operation, hooked into inspector 2012-11-06 17:35:56 -05:00
Tom MacWright f00ad5b169 Fix dragging ways, add way method to connection 2012-11-06 17:22:46 -05:00
Tom MacWright 26d093ee1d Fix id, use full names for removing events 2012-11-06 16:51:24 -05:00
Tom MacWright 2b38b38313 Fixup tests 2012-11-06 16:23:50 -05:00
Tom MacWright d38c2739ab Remove entity, dragdrop config, and uuid 2012-11-06 14:29:33 -05:00
Tom MacWright c9aa40a38d Prefix ids for objects, separate counters for new objects of each type 2012-11-06 14:12:40 -05:00
Tom MacWright 50f8e7f224 Prefer assignment over push
jsperf made me do it http://jsperf.com/array-direct-assignment-vs-push/5
2012-11-06 12:43:27 -05:00
Tom MacWright 525f9fdc51 Support changing tags 2012-11-05 16:24:06 -05:00
Tom MacWright 4d6c54b87e Mark new things as modified 2012-11-05 16:10:46 -05:00
Tom MacWright 2ee2b1cf46 Starting road drawing. Has bugs but exists. 2012-11-05 16:10:21 -05:00
Tom MacWright 2340b89921 Use querystring-style hash 2012-11-05 15:16:00 -05:00
Tom MacWright 2b1df4a2d2 First shot at magical extra fields for inspector 2012-11-05 14:57:21 -05:00
Tom MacWright 9101aa8772 First working revision of undo redo 2012-11-05 14:23:01 -05:00
Tom MacWright 812aff870e Avoid trying to derive points which are not loaded 2012-11-05 13:39:06 -05:00
Tom MacWright 035869d971 Resurrect handle functionality. But this does not yet update data
correctly.
2012-11-05 13:28:58 -05:00
Tom MacWright 84e54112e1 Display undo title in button 2012-11-05 13:21:24 -05:00
Tom MacWright 91cb8cd83e Remove augmentSelect hack. 2012-11-05 11:58:59 -05:00
Tom MacWright 81cb5eaad1 Fixup handles, add unknown graphic. 2012-11-05 11:52:52 -05:00
Tom MacWright 15b2ec0fa6 Fix point positioning 2012-11-05 11:32:23 -05:00
Tom MacWright e7a895c884 Re-introduce idea of operations, add 'add node' operation 2012-11-05 11:23:50 -05:00
Tom MacWright c8b5e238b3 Use simple objects for data, simplify graph 2012-11-05 10:48:58 -05:00
tyrasd 264119ea99 fixed typo (semicolon instead of comma in var[iables] definition) 2012-11-03 17:43:04 +01:00
Tom MacWright ed0795b2f4 Reimplement fetch 2012-11-02 18:19:55 -04:00
Tom MacWright 49205a9bce Fix zooming then dragging 2012-11-02 17:37:57 -04:00
Tom MacWright 9edc918b57 Add uuid 2012-11-02 17:36:42 -04:00
Tom MacWright c2a46eca33 Restyle 2012-11-02 17:35:34 -04:00
Tom MacWright b9acb41321 Escape actions with the escape key 2012-11-02 16:32:36 -04:00
Tom MacWright c27aba6500 Comment out intentions 2012-11-02 16:19:57 -04:00
Tom MacWright 4df2712906 Update actions, highlight modes 2012-11-02 16:17:57 -04:00
Tom MacWright f7d881ad60 Reorganize, update notes 2012-11-02 16:00:11 -04:00
Tom MacWright 8ba279f659 Prior art 2012-11-02 14:30:17 -04:00
Tom MacWright 4c90bf44d5 Indicate support, take DOM elements as input. Fixes #55. 2012-11-02 14:14:47 -04:00
Tom MacWright a2005aaaee Cleanup, document. 2012-11-02 13:56:18 -04:00
Tom MacWright 5cec40c808 Refactor, clean up map 2012-11-01 17:51:18 -04:00
Tom MacWright 8780805506 Indirection for IDs 2012-11-01 17:39:03 -04:00
Tom MacWright b9e9331064 Make style code faster 2012-11-01 17:38:47 -04:00
Tom MacWright 24922d401a Fix marker rendering, complete Way XML output, work on Node XML output. 2012-11-01 16:04:24 -04:00
Tom MacWright c3422fdb33 Initial serialization in JS 2012-11-01 12:33:24 -04:00
Tom MacWright b2e780c4c9 Reorganize inspector 2012-11-01 12:00:27 -04:00
Tom MacWright affb49e3ba Optimize tiling, turn opacity back up on tiles 2012-11-01 11:22:51 -04:00