Пользовательские фильтры

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

При конструировании пользовательского фильтра создается окно просмотра, напоминающее Explorer, в левой части которого находится создаваемый фильтр, а в правой - список возможных элементов фильтра. Это окно содержит свою панель управления, на которой располагается комбинированный элемент с возможными для данного типа условия отношениями, редактор текущего элемента фильтра, кнопки изменения типов логических папок и кнопка удаления элемента фильтра. Выбор условий из списка осуществляется как при помощи мыши (двойной щелчок) так и при помощи клавиатуры - Enter на селектированной записи. Добавить элементы в конструируемый фильтр можно при помощи механизма Drag&Drop - перетаскиванием условий из списка возможных элементов фильтра на дерево конструируемого фильтра. Логические папки также помещены в список возможных элементов фильтра. Создание пользователем пустых логических папок (and, or, not) не приводит к записи их в БД. В папку 'not' можно поместить либо одно элементарное условие, либо одну логическую папку. Свойства документов работают как на редакторе документов, так и на ветке конструируемого дерева. Для активизации списка свойств следует нажать правую клавишу мыши на соответствующем элементе, связанном с документом. Механизм Drag&Drop работает также при перетаскивании документов из окна Explorer на редактор документов, который находится на панели управления конструируемого фильтра. Кнопки AND, OR, NOT на панели управления меняют тип логической папки и горят только при селектировании логической папки в дереве. Клавиша Tab переключает фокус с дерева на список и обратно. Как в фильтры, так и в Grid'ы можно добавлять radio-кнопки, которые в интерфейсе ведут себя как комбинированные элементы. Пример конструируемого фильтра показан на рисунке: