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, and the first device includes one or more user-interface devices for receiving editing inputs from a user of the first device;
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 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 includes a respective command sequence used to create 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;
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 by a first command sequence in a first respective node in the directed acyclic graph, updating the first command sequence in the first respective node by merging each individual drawing command included in the first editing input with the first command sequence to produce, in the first respective node, an updated first command sequence of two or more commands that represents the first existing sketch content object as modified by the first editing input.
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.
25 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, and the first device includes one or more user-interface devices for receiving editing inputs from a user of the first device; 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 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 includes a respective command sequence used to create 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; 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 by a first command sequence in a first respective node in the directed acyclic graph, updating the first command sequence in the first respective node by merging each individual drawing command included in the first editing input with the first command sequence to produce, in the first respective node, an updated first command sequence of two or more commands that represents the first existing sketch content object as modified by the first editing input. - 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 first electronic device includes one or more user-interface devices for receiving editing inputs from a user of the first electronic device, and 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 electronic device and one or more second electronic devices of 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 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 includes a respective command sequence used to create 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; 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 by a first command sequence in a first respective node in the directed acyclic graph, updating the first command sequence in the first respective node by merging each individual drawing command included in the first editing input with the first command sequence to produce, in the first respective node, an updated first command sequence of two or more commands that represents the first existing sketch content object as modified by the first editing input. - 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, the first electronic device including one or more user-interface devices for receiving editing inputs from a user of the first electronic device, cause the first electronic device to:
-
maintain a directed acyclic graph to represent content collaboratively edited by the first electronic device and one or more second electronic devices of 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 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 includes a respective command sequence used to create 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; 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 by a first command sequence in a first respective node in the directed acyclic graph, update the first command sequence in the first respective node by merging each individual drawing command included in the first editing input with the first command sequence to produce, in the first respective node, an updated first command sequence of two or more commands that represents the first existing sketch content object as modified by the first editing input. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification