Сохранение параметров грида

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 7: Строка 7:
 
* Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа.
 
* Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа.
 
* Поиск подходящих настроек в соответствии с переданным контекстом.
 
* Поиск подходящих настроек в соответствии с переданным контекстом.
* Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла.
+
* Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске при выходе. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла.
* Запись изменений в базу данных по команде или при завершении работы программы.
+
* Запись изменений, сделанных в течении сессии, в базу данных по команде или при завершении работы программы.
* Копирование настроек между пользователями системы.
+
* Копирование настроек между пользователями системы или от пользователя системы в общие настройки.
 +
* Оптимизация настроек -- удаление частных настроек, которые дублируют общие настройки.
  
 
Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:
 
Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:
Строка 23: Строка 24:
  
 
# Для текущего пользователя.
 
# Для текущего пользователя.
# Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку).
+
# Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку, для которой есть настройки).
#  
+
# Сначала берем настройки для текущей темы. Если нет, то общие (без темы).
#
+
 
+
 
+
  
 
===Таблицы===
 
===Таблицы===
Строка 33: Строка 31:
 
* [[AT_THEME]]
 
* [[AT_THEME]]
 
* [[AT_STYLE]]
 
* [[AT_STYLE]]
 
=== Размерности ===
 
 
* Грид (компонента) -- имя, имя родителя
 
* Поле-таблица
 
* Домен/класс данных
 
* Бизнес-класс
 
* Тема
 
* Пользователь
 
* Язык
 
* Представление
 
  
 
===Конвертация===
 
===Конвертация===
  
 +
Сначала перекинем все настройки гридов из двоичного потока один-в-один в таблицы. Затем оптимизируем, вынеся на общий уровень основные параметры и удалив их из пользовательских настроек. Данная процедура будет выполняться однократно.
  
 
===Диалоговое окно настройки грида===
 
===Диалоговое окно настройки грида===
 +
 +
  
 
[[Category:Постановка]]
 
[[Category:Постановка]]
 +
 +
__NOTOC__

Версия 00:40, 22 февраля 2016

Разрабатывается система для работы со всеми визуальными настройками платформы, но, в первую очередь, для работы с визуальными настройками гридов.

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

Ядром системы будет объект TgdStyleManager, который отвечает за следующие функции:

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

Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:

  1. Сначала ищем указанный параметр по имени колонки, имени грида и имени типа формы (с учетом подтипа).
  2. Если не найден и грид подсоединен к БО, то ищем для бизнес-класса и имени поля.
  3. Если не найден, то ищем для таблицы и поля.
  4. Если не найден и для поля определен домен, то ищем для домена.
  5. Если не найден, то ищем для типа данных.
  6. Если не найден и определены общие параметры, то берем из них.

При этом, на каждом шаге ищем в следующем порядке:

  1. Для текущего пользователя.
  2. Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку, для которой есть настройки).
  3. Сначала берем настройки для текущей темы. Если нет, то общие (без темы).

Таблицы

Конвертация

Сначала перекинем все настройки гридов из двоичного потока один-в-один в таблицы. Затем оптимизируем, вынеся на общий уровень основные параметры и удалив их из пользовательских настроек. Данная процедура будет выполняться однократно.

Диалоговое окно настройки грида

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты