Collaborative Editing
From JCurlWiki
Contents |
Goal
JCurlShotPlanner should become a collaborative real time editing tool. Every editing action (change to the underlying datamodel) is replicated to all participating users. Including "file open / reset" and the like - though vetoable.
Means
- use a Jabber/XMPP chat session to transport real text communication and graphical changes
- hook this communication layer into the Undo
Problems
- avoid restrictive locking whenever possible
Approach
Scenario
Let's assume Bob and Sally want to discuss some curling tactics, then
- Bob launches JCurlShotPlanner
- Bob configures his jabber account and connects the jabber server
- Bob starts a new file
- Sally launches JCurlShotPlanner
- Sally configures her jabber account and connects the jabber server
- Bob sees Sally in his presence list
- Sally invites Bob to join a "session"
- Bob sees the invitation (dialog) and a warning that he'd loose the pending file changes.
- Bob chooses to save this current file and then accept the conversation.
- Sally's current file gets wired to Bob
- both edit concurrently.
- dragged objects are locked on "startdrag" (first change) and unlocked on drop.
- undo/redo operations are pushed as new edits ontop the other's undo stack
Consequences
- some housekeeping dialogs required (jabber account and session management, presence display)
- chat text input & output display required
- display current participants (most important for multi-user chats)
- display a edit-history labelled with originating user
- mark the locked objects somehow (use a enabled property? Or does this need to be personalised? Something like a nullable lockholder property?)
- add a "force break lock" command
Links
- http://docsynch.sourceforge.net/index.php?page%5b%5d=9.Scientific_Background
- http://www.google.com/search?q=graphics+collaborative+editing+grace
- http://citeseer.ist.psu.edu/cs?q=graphics+collaborative+editing
Wikipedia
- Floor control
- Whiteboarding
- Paint Chat
- List of collaborative software
- Collaborative real-time editor
- Collaborative software
- Collaborative writing
- Collaborative editing
- HCI
- a collaborative editor
- Computer-supported collaboration
- Mobile HCI
- LaTeX/Collaborative Writing of LaTeX Documens
Papers
- Consistency maintenance in real-time collaborative graphics editing systems[1]
- Undoing any operation in collaborative graphics editing systems[2]
- Undo any operation at any time in group editors[3]
- A framework for undoing actions in collaborative systems[4]
- Multi-User Undo/Redo[5]
- Enable collaborative graphics editing in mobile environment[6]
References
- ↑ Sun, C., & Chen, D. (2002). Consistency maintenance in real-time collaborative graphics editing systems. Computer-Human Interaction, 9(1), 1–41. Bib
- ↑ Chen, D., & Sun, C. 2001. Undoing Any Operation in Collaborative Graphics Editing Systems. Bib
- ↑ Sun, C. (2000). Undo any operation at any time in group editors. Paper presented at Computer Supported Cooperative Work. Bib
- ↑ Prakash, A., & Knister, M. J. (1994). A framework for undoing actions in collaborative systems. ACM Transactions on Computer-Human Interaction, 1(4), 295. Bib
- ↑ Choudhary, R., & Dewan, P. 1992. Multi-User Undo/Redo. Bib
- ↑ Jiang, B., Zhang, H., Chen, C., & Yang, J. (2005). Enable collaborative graphics editing in mobile environment. Computer Supported Cooperative Work in Design, 2005. Proceedings of the Ninth International Conference on, 1. Bib

