Comments (3)
Things to note:
- Move events run in reverse work by moving a block based on its oldParentId, oldInputName, OldCoordinate.
- When a Blockly Event is serialized, it does not store the oldParentId, oldInputName or OldCoordinate.
- WorkspaceClient currently stores events as JSON.
The reason we are hitting this error is that when we run an event in reverse, we take the event as a JSON from WorkspaceClient and convert it to a new Blockly Event that can be run. However, at this point, the new Blockly Event has lost any information regarding its oldParentId, oldInputName, and oldCoordinate and does not have sufficient information for it to be correctly run in reverse.
To eliminate this error, WorkspaceClient will store local events in their original Blockly Events format so that they retain all information.
from blockly-samples.
I'm surprised that the JSON event has insufficient information to run it backwards. Does that mean the event serialization is incomplete?
from blockly-samples.
When it was first implemented the undo stack used the event objects directly. Neil suggested skipping the previous state in the serialization to save space on the wire because we didn't think you'd need to undo someone else's changes.
As Navil mentioned, converting the JSON events from the server into Event objects so that you still have the undo info for the local events works around this. I'm unsure if it would be worth the extra data to remove the confusion, though.
from blockly-samples.
Related Issues (20)
- Move Codelabs from blocklycodelabs.dev to DevSite
- Migration script readme gives invalid order of arguments
- Migration script includes 'Blockly' -> 'Blockly' rename, causing the script to exit early
- Content highlight doesn't highlight deserialized content HOT 1
- Field colour hsv sliders renders incorrectly in zelos when block has other fields HOT 1
- Scroll options plugin puts dragged block behind blocks in the workspace HOT 1
- Scroll options doesn't work with v11
- Cleanup after deleting blocks and fields from core HOT 3
- Convert `generateFieldTestBlocks` in `dev-tools` to use JSON
- Test generated code for field colour blocks HOT 1
- Clean up code style in generators for field colour blocks
- Plugin content highlight does not refresh when refrshing webpage HOT 2
- auto deserialize JSON/XML in advanced playground HOT 3
- Continuous toolbox doesn't include padding above category labels when scrolling to them HOT 2
- Update field colour readme to include the information currently on devsite HOT 1
- Disposing of a procedure definition disposes caller *and* next blocks
- Field bitmap throwing errors for non-square bitmaps
- Scroll options plugin is missing an import in utils.js
- shareable procedure plugin only support json format lost xml way,hope support it again HOT 1
- `FieldMultilineInput` is rendered badly, hiding first line HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blockly-samples.