Так что это лишь почва, которую мы подготавливаем.
Параметр userList представляет собой массив. Каждый элемент в массиве является объектом, который описывает пользователя. Каждый из этих объектов имеет только одно свойство – name. В строке 2 мы создаем ссылку с именем path на список userList. В строке 3 мы создаем переменную с именем enabled для хранения свойства enabled компонента списка userList.
То, что мы здесь делаем, не является особой хитростью, но требует некоторого внимания и обсуждения, с тем, чтобы вы могли понять все, что вам нужно знать о свойствах enabled, getEnabled(), и setEnabled(). Значение свойства enabled компонента списка ListBox может быть либо true, либо false. Если оно равно true (значение по умолчанию), то список активен. Если false, то список не активен, и вы не можете выбрать в нем ни одного пункта. Когда вы тестировали чат ранее и нажимали на другого пользователя для того, чтобы его вызвать, вы, возможно, обратили внимание, что список userList был недоступен (для того, чтобы пользователь не вызывал другого пользователя, пока текущий вызов не принят, не отклонен, либо не отменен). Как только вы отклоните вызов, список становится доступным снова. Каждый раз, когда вызывается функция userListChanged(), мы полностью перестраиваем список userList. Если свойство enabled равно false, то список не может быть обновлен, когда мы пытаемся изменить его содержимое. Так, если вы получите вызов и затем внесете изменения в список пользователей, то список пользователей не будет обновлен правильно, поскольку свойство доступности равно false. Чтобы избежать этой проблемы, мы храним свойство enabled в переменной с именем enabled. Затем мы устанавливаем свойство enabled списка в true (строка 4). После этого, мы устанавливаем enabled обратно в то состояние, каким оно было до обновления. Это позволяет нам обновлять лист userList даже когда он неактивен (строка 10). В строках 7-9 мы проходим по циклу массив пользователей и добавляем пункты в список