Содержание:

Настройка ролей.

Добавьте новую Роль в систему безопасности приложения. Для каждого Рабочего Места потребуется отдельная Роль.

Для этих Ролей не нужно создавать Разрешений, т.к. они предназначены лишь для связи пользователя с Рабочим Местом.

Назначьте роли Пользователям. Разумеется, один пользователь может входить в несколько ролей, каждая из которых соответствует определенному Рабочему Месту.

Создание нового Рабочего Места.

Чтобы создать новое Рабочее Место, вам, фактически, необходимо создать новый файл Модели для некоторой Роли: Model.Workplace.<имя роли>.xafml. Это можно сделать тремя способами:

Чтобы создать новое Рабочее Место вручную, просто создайте в каталоге приложения новый файл в кодировке UTF-8, назовите его Model.Workplace.<имя роли>.xafml и скопируйте в него следующие строки:

<?xml version="1.0" encoding="utf-8"?>

<Application/>

Если пользователь XAF-приложения входит в роль "Administrator" либо он имеет права на редактирование Модели Приложения, то он может воспользоваться приложением для создания нового Рабочего Места. Для этого необходимо выполнить следующие действия:

Рассмотрим третий способ создания Рабочего Места: с использованием приложения Xafari.Workplace.ModelEditor.exe.

Редактирование модели существующего Рабочего Места.

Существование Рабочего Места означает, что на диске уже создан файл Model.Workplace.<Role_Name>.xafml. Отредактировать Модель Рабочего Места можно двумя способами:

Для редактирования Модели Рабочего Места в XAF-приложении необходимо выполнить те же шаги, что и при создании Рабочего Места в XAF-приложении. Эти шаги излагались выше.

Специальная утилита Xafari.Workplace.ModelEditor.exe поставляется вместе с Xafari. Она позволяет создавать новые Рабочие Места и открывать существующие для редактирования.

Настройка рабочих мест в конфигурационном файле приложения

Если XAF-приложение поддерживает функциональность Рабочих Мест, то его config-файл содержит следующие ключи: WorkplaceFilesPath и ShowWorkplaceSelectorOnStart.

WorkplaceFilesPath определяет папку, в которой хранятся файлы настроек Рабочих Мест. Если этот параметр не задан, то файлы по умолчанию берутся из папки приложения. Пример записи в config-файле приложения:

<add key="WorkplaceFilesPath" value =" d:\Application|Workplaces \" />

ShowWorkplaceSelectorOnStart является индикатором, который определяет отображать или нет окно выбора Рабочего Места при запуске приложения. Если задано значение false ("не отображать"), то будет автоматически использоваться последнее рабочее место, с которым работал данный пользователь. Если последнего рабочего места нет, то будет использовано первое из списка. Пример записи в config-файле приложения:

<add key="ShowWorkplaceSelectorOnStart" value ="true" />

Файлы настроек Модели Рабочих Мест

Настройки (изменения) Модели пользователя хранятся в файлах. Имя файла имеет следующий вид: Model.User.<User_Name>.xafml. При использовании модулей управления рабочими местами настройки (изменения) модели пользователя автоматически разделяются по ролям. Имена файлов пользовательских изменений модели принимают следующий вид Model.User.<User_Name>.<Role_Name>.xafml.

Т.к. один и тот же пользователь может использовать различные Рабочие Места, то для каждого Рабочего Места создается отдельный файл пользовательских настроек. Например, если пользователь запустит приложение и выберет рабочее место «Master», то будет создан файл изменений модели пользователя Model.User.Master.xafml, если тот же пользователь перезапустит приложение и выберет рабочее место «Mechanic», то будет создан файл изменений модели пользователя Model.User.Mechanic.xafml.

Доступ в коде

Разработчик приложения имеет возможность в коде определять момент смены Workplace и запуска WorkplaceModelEditor.

Класс WorkplaceManager предоставляет 2 события:

При использовании Workplaces в главное окно приложения будут добавлены 2 Action:

WorkplaceMainWindowController и WorkplaceWindowController содержат public-геттеры для доступа к этим Actions.