Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
205
Добавлен:
10.05.2015
Размер:
4.05 Mб
Скачать

13.2.1.5. Ext.ApplyIf

Синтаксис:

Ext.applyIf( Object obj, Object config ) : Object

Метод Ext.applyIf производит копирование каждого члена объекта config в объект obj, но только в том случае, когда этот член еще не существует в объекте назначения.

Обычно разработчики создают дочерние классы с целью расширить функциональность элементов. Однако эта новая функциональность может потребовать дополнительной настройки, которая при помощи использования рассмотренных методов превращается в простейшую задачу:

function MyClass(config) { // конструктор, который принимает конфигурацию в параметре 'config'

// присвоение некоторых значений по умолчанию, если они не заданы в конфигурации

config = Ext.applyIf(config, {

someValue: defaultValue

});

// а здесь присваиваются значения по умолчанию, игнорирующие параметры конструктора

config = Ext.apply(config, {

someOtherValue: defaultValue

});

// вызов конструктора класса-родителя с передачей новой конфигурации

MyClass.superclass.constructor.call(this, config);

}

// не забудьте унаследовать родительский класс

Ext.extend(MyClass, MyBase, {

// ...

});

13.2.2. Построение веб-интерфейсов

Библиотека ExtJS написана на JavaScript и работает во всех популярных сейчас браузерах (хотя и с некоторыми различиями), предназначена для создания сложных и насыщенных интерфейсов, которые очень похожи на аналогичные desktop-программы [5, 6]. Она предоставляет разработчику целый набор графических компонентов, от тривиальных кнопок и расширенных элементов обычных HTML-форм, до сложных компонентов вроде таблиц, лейаутов (layout – компоненты, отвечающие за расположение объектов друг относительно друга) и деревьев. В библиотеке также есть достаточно много невидимых пользователю компонентов, которые и обеспечивают работу того, что пользователь видит на экране. Это и получение данных с сервера в фоновом режиме (в формате JSON или XML), обновление частей страницы, локальные хранилища данных, поддержка cookie и многое другое.

Самым мощным и известным компонентом является таблица или Grid. Он позволяет выполнять группировку, сортировку и пейджинг данных (а при установке некоторых пользовательских расширений также поддерживается фильтрация), поддерживает различные виды выделения данных. Также Grid предоставляет возможность редактировать данные, причем при установке некоторых расширений, этот компонент позволит не только редактировать данные в строках, но и будет автоматически создавать всплывающие формы.

Каждый компонент в ExtJS позволяет себя конфигурировать путем настройки разнообразных опций, генерирует множество событий в ответ почти на любое изменение своего состояния, а также гибко настраивается через задание необходимых свойств оформления в CSS-стилях.

13.2.3. Использование css

В архитектуре библиотеки есть и такое понятие как тема оформления – это обычный CSS-файл, изменяя который можно мгновенно изменить внешний вид всех элементов интерфейса. Уже создано множество различных пользовательских тем, в разной цветовой гамме и стиле, хотя, на мой взгляд, именно стандартная тема наиболее приятная и привычная для большинства пользователей.