Catrope
7465b670e1
Add and update an offset map in DocumentNode
...
This has some TODOs still but I want to land it now anyway, and fix the
TODOs later.
* Add this.offsetMap which maps each linear model offset to a model tree node
* Refactor createNodesFromData()
** Rename it to buildSubtreeFromData()
** Have it build an offset map as well as a node subtree
** Have it set the root on the fake root node so that when the subtree
is attached to the main tree later, we don't get a rippling root
update all the way down
** Normalize the way the loop processes content, that way adding offsets
for content is easier
* Add rebuildNodes() which uses buildSubtreeFromData() to rebuild stuff
* Use rebuildNodes() in DocumentSynchronizer
* Use pushRebuild() in TransactionProcessor
* Optimize setRoot() for the case where the root is already set correctly
Change-Id: I8b827d0823c969e671615ddd06e5f1bd70e9d54c
2012-04-13 16:46:02 -07:00
Robmoen
8a06ea5adc
Merge "Changed to using structured lists"
2012-04-06 18:28:04 +00:00
Inez Korczynski
50acc0c785
Make toolbar and context menu works
...
Change-Id: Ice981390b22a257158b3417dda3a1945d777cb14
2012-04-06 17:43:14 +02:00
Inez Korczynski
a57ae2692e
Merge changes from branch ce-poll
...
Change-Id: Ibb6da1ac5229ed5afeda1a3944fe7deff3bfb9a7
2012-04-06 17:10:30 +02:00
Trevor Parscal
85b807ed5d
Changed to using structured lists
...
This makes it possible to get identical rendering in the editor, but may make other things more complex. The Wikitext serializer is no longer compatible for rendering lists so it's been stubbed out. Also the way the toolbar works with lists is broken, so that's been disabled. The HTML serializer has been fixed to work correctly and no-longer-used styles have been removed.
Change-Id: If156f55068b1f6d229b3fa789164f28b2e3dfc76
2012-04-05 14:32:08 -07:00
Trevor Parscal
519d225d2f
Cleanup of white space, missing semi-colons, line breaks, etc.
...
Change-Id: Ifa96a9f70fa8d149a4c403521aaa88a3e0546ef0
2012-04-02 15:28:26 -07:00
Catrope
7a726b0278
Add tree synchronization for replace
...
To handle replace operations that are not themselves consistent (these
are common, for instance when replacing an opening element in one place,
then replacing the closing element somewhere else), we process
subsequent replace operations inside the first one until things are
balanced again, then issue a single rebuild for the whole thing.
Change-Id: Ide4613f046fabfeeef383138c39e350b1b710033
2012-03-26 02:51:30 -07:00
Roan Kattouw
05333b1f3d
Put the invert state / method (commit or rollback) in the TransactionProcessor object and no longer pass it as a parameter to each operation. This makes it easier for operations to execute other operations.
2012-03-14 21:02:36 +00:00
Roan Kattouw
bf5ea06db5
Factor out process() into nextOperation() and executeOperation()
2012-03-14 21:02:34 +00:00
Roan Kattouw
2c43a34f74
Rewrite the rebuild action to take two ranges rather than a node and some data.
2012-03-14 21:02:31 +00:00
Roan Kattouw
37a59016e8
Break out pushAction() into separate functions for each action. This will allow me to change the rebuild action to take totally different parameters.
2012-03-14 21:02:29 +00:00
Roan Kattouw
bd9a86dd55
Remove the offset adjustment feature from DocumentSynchronizer. It gets in the way when I try to use this class in TransactionProcessor.
2012-03-14 21:02:27 +00:00
Roan Kattouw
1e17285afb
Move computation of missing offset from pushAction() to synchronize(), and only compute offsets for actions that require them. This also fixes an issue where offsets computed by pushAction() would be adjusted incorrectly by pushAction().
2012-03-14 21:02:26 +00:00
Roan Kattouw
7dd2b8b725
Make DocumentSynchronizer clear the queue after it's done with it
2012-03-14 21:02:24 +00:00
Roan Kattouw
29f416937e
Fix some usages of splice.apply in the data model to use
...
ve.batchedSplice(). Added FIXME comments for occurrences outside of DM
2012-03-10 00:31:28 +00:00
Trevor Parscal
2f9fcde16e
Removed duplicate static methods and members that were copied to ve.dm - lets just leave them in ve.dm.DocumentNode for now.
2012-03-09 21:54:00 +00:00
Roan Kattouw
b13d0a849d
Add a check for the length of unwrapOuter, and add a test for each
...
exception
2012-03-09 01:44:31 +00:00
Roan Kattouw
bc600b34be
Make prepareWrap() use the data from the model rather than the unwrap
...
parameters. This fixes the case where rolling back a list unwrap would
restore the list items without their attributes
2012-03-09 01:14:41 +00:00
Roan Kattouw
04910777d9
Fix stupid typos so wrapEach actually works
2012-03-09 00:38:34 +00:00
Roan Kattouw
ab26581b2e
Fix cursor adjustment in replace()
2012-03-08 23:21:28 +00:00
Roan Kattouw
5054ed320e
Implement prepareWrap and add tests for it
2012-03-08 23:21:26 +00:00
Roan Kattouw
9b66749575
Add documentation for to-be-written prepareWrap function
2012-03-08 23:21:24 +00:00
Roan Kattouw
d978797fca
Add a very simple transaction builder for content replacements
2012-03-08 23:21:21 +00:00
Roan Kattouw
cac9971299
Implement the replace operation for the linear model
2012-03-08 23:21:20 +00:00
Roan Kattouw
93deba7b5c
Add replace operation
2012-03-08 23:21:17 +00:00
Trevor Parscal
becb1daa39
Added more tests for ve.dm.DocumentSynchronizer and fixed some bugs along the way
2012-03-08 19:35:51 +00:00
Trevor Parscal
459c4fa271
Added some basic tests for resize and insert. Fixed some bugs in both of those code paths along the way.
2012-03-08 00:52:30 +00:00
Trevor Parscal
de0f83643b
Typo in file name
2012-03-07 23:48:58 +00:00
Trevor Parscal
55cf0c8ada
Added sketch for ve.dm.DocumentSynchronizer which is a utility object for queueing up actions to be performed on the model tree such as deletion, insertion, rebuilding, resizing and updating of node. Using this approach, we can collect actions across multiple steps, and then normalize them to avoid duplicate work and mutate the model tree in a single step.
2012-03-07 20:21:32 +00:00
Inez Korczynski
2e9ab44719
Update class names, from ve.es to ve.cs, and update code that uses those classes
2012-03-06 22:39:43 +00:00
Inez Korczynski
7de9e98583
Fix couple of poll interval bugs in Surface and add new parameter called 'byref' to method getAnnotationsFromOffset which makes it return array references instead of copy of arrays.
2012-03-02 00:10:08 +00:00
Rob Moen
dab0396b54
minor fixes: removed whitespace, added semicolon
2012-02-24 00:49:28 +00:00
Trevor Parscal
696f5cb2a0
Replaced "set" and "clear" method for attribute transactions with "replace" method, which allows correct reversion. Also fixed list item tools to correctly use the new function signature.
2012-02-22 21:23:28 +00:00
Trevor Parscal
d172b220b7
Minor fixes (line length breaking, jshint nagging, etc)
2012-02-07 00:42:16 +00:00
Trevor Parscal
6dcc39fe11
Migrated es.* to new ve.* namespace which is more structured, and will make it easier to keep data model, edit surface, user interface and content editable work separated cleanly
2012-02-06 23:50:56 +00:00