Workspace¶
-
class
axioma.gui.
Workspace
¶ Представление рабочего пространства во внутреннем формате. Используется как промежуточный контейнер при записи или чтении рабочего пространства в формат MWS.
Чтение¶
Для чтения рабочего набора из внешнего файла необходимо последовательно произвести следующие действия:
Создать объект внутреннего представления рабочего пространства
Workspace
.В него загрузить содержимое из внешнего файла посредством
loadFile
.Создать объект-загрузчик рабочего пространства из внутреннего представления в данные для менеджеров.
Произвести непосредственное чтение посредством метода WorkspaceLoader
load
.Пример чтения из файла:
# Чтение рабочего пространства из файла from axioma.core.dp import * from axioma.gui import * try: # Создаем контейнеры, куда мы будем в конечном счете загружать данные из рабочего набора catalog = DataCatalog() # Каталог с источниками данных # Читаем рабочее пространство из файла workspaceIn = Workspace() # внутреннее представление рабочего пространства fileName = 'sampleWorkspace.mws' # Имя файла для чтения workspaceIn.loadFile(fileName) # Контекст для чтения. Устанавливаем куда мы будем сохранять прочитанное состояние context = WorkspaceLoadContext(gui, catalog) loader = WorkspaceLoader(fileName, context) # Читаем из внутреннего представления loader.load(workspaceIn) # Контролируем зачитанную информацию из рабочего пространства wm = axioma.app.gui.widgetManager print('tables={}, maps={}, reports={}, browsers={}'.format(len(catalog.allDataObjects()), wm.count(MapView.staticMetaObject), wm.count(ReportView.staticMetaObject), wm.count(TableWindow.staticMetaObject))) except Exception as ex: print(ex)
Запись¶
Для записи рабочего набора во внешний файл необходимо выполнить следующие действия:
Предварительно должны существовать каталог с данными (
DataCatalogInterface
).Создаем контекст для записи
WorkspaceSaveContext
.Создать объект преобразования данных контекста во внутреннюю структуру
WorkspaceSaver
и произвести в него запись посредствомsave
, получив как результатWorkspace
.Произвести запись состояния
Workspace
в файл посредствомsaveFile
.Пример записи в файл:
# Сохранение рабочего пространства в файл from axioma.core.dp import * from axioma.gui import * try: # Создаем контейнеры catalog = DataCatalog() # Каталог с источниками данных # каким-то образом заполняем контейнеры либо изменяем загруженные ранее из рабочего пространства данные fileNameOut = "sampleWorkspace.mws" # Имя файла для записи # Создаем контекст для сохранения contextSave = WorkspaceSaveContext(gui, catalog) # Создаем объект преобразования данных контекста во внутреннюю структуру saver = WorkspaceSaver(fileNameOut, contextSave) # Сохраняем во внутренний формат workspaceOut = saver.save() # Сохраняем в файл workspaceOut.saveFile(fileNameOut) except Exception as ex: print(ex)