Device, Method, and Graphical User Interface for Collaborative Editing in Documents
First Claim
1. A method of supporting collaborative editing, including:
- at a first device of multiple collaborating devices, wherein the first device comprises one or more processors, memory, and a display;
maintaining a directed acyclic graph to represent content collaboratively edited by the first device and one or more second devices of the multiple collaborating devices, wherein the directed acyclic graph includes a plurality of nodes each representing a respective content object that is created or edited by one or more of the multiple collaborating devices, wherein each node is connected to at least one neighboring node by a respective directed edge in accordance with a relative positional order of the respective content objects represented by the node and the at least one neighboring node, wherein at least a first node of the plurality of nodes represents a textual content object and at least a second node of the plurality of nodes represents a sketch content object, and wherein each node representing a corresponding sketch content object is associated with a respective command sequence used to create internal content of the corresponding sketch content object;
during a respective synchronization period, receiving one or more editing inputs from one or more devices of the multiple collaborating devices;
modifying the directed acyclic graph based on relationships between the editing inputs and existing content objects embodied in the directed acyclic graph;
traversing the directed acyclic graph in accordance with a predetermined ordering rule to obtain an object sequence;
determining whether the one or more editing inputs modifies an existing sketch content object represented in the directed acyclic graph; and
in accordance with a determination that a first editing input of the one or more editing inputs modifies a first existing sketch content object represented in the directed acyclic graph, updating a command sequence associated with the first existing sketch content object by merging each individual drawing command included the first editing input with the command sequence associated with the first existing sketch content object.
1 Assignment
0 Petitions
Accused Products
Abstract
A first electronic device maintains a directed acyclic graph to represent content collaboratively edited by the first device and one or more second devices of multiple collaborating devices. The first device receives one or more editing inputs from one or more devices of the multiple collaborating devices. The first device modifies the directed acyclic graph based on relationships between the editing inputs and existing content objects embodied in the directed acyclic graph, traverses the directed acyclic graph in accordance with a predetermined ordering rule to obtain an object sequence, and, if a first editing input of the one or more editing inputs modifies a first existing sketch content object represented in the directed acyclic graph, updates a command sequence associated with the first existing sketch content object by merging each individual drawing command included the first editing input with a command sequence associated with the first existing sketch content object.
-
Citations
28 Claims
-
1. A method of supporting collaborative editing, including:
at a first device of multiple collaborating devices, wherein the first device comprises one or more processors, memory, and a display; maintaining a directed acyclic graph to represent content collaboratively edited by the first device and one or more second devices of the multiple collaborating devices, wherein the directed acyclic graph includes a plurality of nodes each representing a respective content object that is created or edited by one or more of the multiple collaborating devices, wherein each node is connected to at least one neighboring node by a respective directed edge in accordance with a relative positional order of the respective content objects represented by the node and the at least one neighboring node, wherein at least a first node of the plurality of nodes represents a textual content object and at least a second node of the plurality of nodes represents a sketch content object, and wherein each node representing a corresponding sketch content object is associated with a respective command sequence used to create internal content of the corresponding sketch content object; during a respective synchronization period, receiving one or more editing inputs from one or more devices of the multiple collaborating devices; modifying the directed acyclic graph based on relationships between the editing inputs and existing content objects embodied in the directed acyclic graph; traversing the directed acyclic graph in accordance with a predetermined ordering rule to obtain an object sequence; determining whether the one or more editing inputs modifies an existing sketch content object represented in the directed acyclic graph; and in accordance with a determination that a first editing input of the one or more editing inputs modifies a first existing sketch content object represented in the directed acyclic graph, updating a command sequence associated with the first existing sketch content object by merging each individual drawing command included the first editing input with the command sequence associated with the first existing sketch content object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A first electronic device, comprising:
-
a display; one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for; maintaining a directed acyclic graph to represent content collaboratively edited by the first device and one or more second devices of the multiple collaborating devices, wherein the directed acyclic graph includes a plurality of nodes each representing a respective content object that is created or edited by one or more of the multiple collaborating devices, wherein each node is connected to at least one neighboring node by a respective directed edge in accordance with a relative positional order of the respective content objects represented by the node and the at least one neighboring node, wherein at least a first node of the plurality of nodes represents a textual content object and at least a second node of the plurality of nodes represents a sketch content object, and wherein each node representing a corresponding sketch content object is associated with a respective command sequence used to create internal content of the corresponding sketch content object; during a respective synchronization period, receiving one or more editing inputs from one or more devices of the multiple collaborating devices; modifying the directed acyclic graph based on relationships between the editing inputs and existing content objects embodied in the directed acyclic graph; traversing the directed acyclic graph in accordance with a predetermined ordering rule to obtain an object sequence; determining whether the one or more editing inputs modifies an existing sketch content object represented in the directed acyclic graph; and in accordance with a determination that a first editing input of the one or more editing inputs modifies a first existing sketch content object represented in the directed acyclic graph, updating a command sequence associated with the first existing sketch content object by merging each individual drawing command included the first editing input with the command sequence associated with the first existing sketch content object. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a first electronic device with a display, cause the first electronic device to:
-
maintain a directed acyclic graph to represent content collaboratively edited by the first device and one or more second devices of the multiple collaborating devices, wherein the directed acyclic graph includes a plurality of nodes each representing a respective content object that is created or edited by one or more of the multiple collaborating devices, wherein each node is connected to at least one neighboring node by a respective directed edge in accordance with a relative positional order of the respective content objects represented by the node and the at least one neighboring node, wherein at least a first node of the plurality of nodes represents a textual content object and at least a second node of the plurality of nodes represents a sketch content object, and wherein each node representing a corresponding sketch content object is associated with a respective command sequence used to create internal content of the corresponding sketch content object; during a respective synchronization period, receive one or more editing inputs from one or more devices of the multiple collaborating devices; modify the directed acyclic graph based on relationships between the editing inputs and existing content objects embodied in the directed acyclic graph; traverse the directed acyclic graph in accordance with a predetermined ordering rule to obtain an object sequence; determine whether the one or more editing inputs modifies an existing sketch content object represented in the directed acyclic graph; and in accordance with a determination that a first editing input of the one or more editing inputs modifies a first existing sketch content object represented in the directed acyclic graph, update a command sequence associated with the first existing sketch content object by merging each individual drawing command included the first editing input with the command sequence associated with the first existing sketch content object. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification