ДИСПЕТЧЕР КОМПОНОВКИ

1. Машиночитаемый носитель, имеющий машиноисполняемые инструкции для инструктирования компьютеру выполнять этапы, содержащие:
- отслеживание "грязного" состояния элементов пользовательского интерфейса в дереве элементов пользовательского интерфейса, дерево содержит множество узлов, и "грязное" состояние функционирует так, чтобы позволить идентифицировать одно или более "грязных" поддеревьев узлов (208);
- идентификацию корневого узла для каждого из "грязных" поддеревьев (212); и
- обновление затронутых частей дерева, начиная с корневого узла, который был идентифицирован для каждого из "грязных" поддеревьев (210).
2. Машиночитаемый носитель по п. 1, в котором идентификация корневого узла для каждого из "грязных" поддеревьев выполняется посредством анализа "грязного" состояния и дополнительного состояния, ассоциированного с узлами в дереве (212).
3. Машиночитаемый носитель по п. 2, в котором дополнительное состояние включает в себя указатель, который указывает, имеет или нет выбранный один из узлов "грязного" узла-потомка (358).
4. Машиночитаемый носитель по п. 2, в котором дополнительное состояние включает в себя указатель, который указывает, имеет или нет выбранный один из узлов "грязного" узла-предка (356).
5. Машиночитаемый носитель по п. 2, в котором дополнительное состояние включает в себя указатель, который указывает, компонуется или нет в настоящее время выбранный один из узлов (398).
6. Машиночитаемый носитель по п. 1, в котором "грязное" состояние включает в себя указатель, который указывает, является или нет выбранный один из узлов "грязным" (352).
7. Машиночитаемый носитель по п. 1, дополнительно имеющий машиноисполняемые инструкции, чтобы инструктировать компьютеру выполнять этапы, содержащие:
- визуализацию элементов пользовательского интерфейса на устройстве вывода после обновления затронутых частей дерева элементов пользовательского интерфейса (210).
8. Машиночитаемый носитель по п. 1, в котором этап обновления начинается с корневого узла, который был идентифицирован для каждого из "грязных" поддеревьев, так что обновления не выполняются в дочерних узлах в "грязных" поддеревьях, которые затем позже перезаписываются в связи с обновлениями, выполненными в родительских узлах (212).
9. Способ использования состояния изменений узла-предка, чтобы сделать процесс компоновки более эффективным, способ, содержащий этапы:
- начала процесса компоновки в указанном узле (242);
- определения, изменились ли какие-либо предки указанного узла (244); и
- отмены любых процессов компоновки, которые в настоящее время выполняются в любых узлах-потомках измененного предка (248), и возобновления процесса компоновки в измененном предке (249), когда, по меньшей мере, один измененный предок указанного узла идентифицируется.
10. Способ по п. 9, дополнительно содержащий этапы:
- продолжения процесса компоновки, проходя вниз по пути узлов-потомков указанного узла (250), когда, по меньшей мере, один измененный предок указанного узла не идентифицируется.
11. Способ по п. 10, в котором, по меньшей мере, один предок указанного узла изменился, поскольку требуемый размер указанного узла изменился, и родительский узел указанного узла был, затем, помечен как "грязный" (320).
12. Способ по п. 9, в котором множество указателей используются, чтобы помогать в определении того, изменились ли какие-либо предки указанного узла (274).
13. Способ по п. 12, в котором, по меньшей мере, один из множества указателей указывает, является или нет конкретный узел "грязным" (352).
14. Способ по п. 12, в котором, по меньшей мере, один из множества указателей указывает, имеет или нет конкретный узел "грязного" потомка (358).
15. Способ по п. 12, в котором, по меньшей мере, один из множества указателей указывает, имеет или нет конкретный узел "грязного" предка (356).
16. Способ по п. 12, в котором, по меньшей мере, один из множества указателей указывает, компонуется или нет в настоящее время конкретный узел (398).
17. Способ по п. 9, в котором любые процессы компоновки отменяются, когда, по меньшей мере, один измененный предок указанного узла идентифицируется, так что обновления не выполняются в каких-либо узлах-потомках измененного предка, поскольку могут затем позже быть перезаписаны из-за обновлений, выполненных в измененном предке (278).
18. Способ отмены процесса компоновки для указанного узла, содержащий этапы:
- определения, является ли указанный узел уже "грязным" (392);
- отмечания указанного узла как "грязного" (396) и определения, является ли указанный узел предком, по меньшей мере, одного узла, который компонуется в настоящее время (398), когда указанный узел еще не является "грязным"; и
- пометки всех узлов по прямому пути от указанного узла к узлу, который в настоящее время компонуется, как имеющие "грязного" предка, но, не включая указанный узел (400), когда указанный узел является предком, по меньшей мере, одного узла, который в настоящее время компонуется (398).
19. Способ по п. 18, дополнительно содержащий этапы:
- завершения процесса отмены компоновки (394), когда указанный узел уже является "грязным".
20. Способ по п. 19, в котором указанный узел определяется как уже "грязный", поскольку указанный узел содержится в стеке компонуемых узлов (392).