Диплом_DOC (1222512), страница 7

Файл №1222512 Диплом_DOC (Мобильное приложение для работы с системой управления корпоративной документацией на базе ECMS Alfresco) 7 страницаДиплом_DOC (1222512) страница 72020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

FilePreviewViewController *previewController = (FilePreviewViewController *)[FilePreviewViewController interactionControllerWithURL:fileURL];

[previewController setDelegate:self];

[previewController presentPreviewAnimated:YES];

}

else{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(documentPreviewManagerStartedDownloading:) name:kDocumentPreviewManagerWillStartDownloadNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(documentPreviewManagerProcessDownloading:) name:kDocumentPreviewManagerProgressNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(documentPreviewManagerCompletedDownloading:) name:kDocumentPreviewManagerDocumentDownloadCompletedNotification object:nil];

[docPrevManager downloadDocument:selectedDoc session:self.alfrescoSession goingToPreview:YES];

}

}

}

3.1.5 Модуль работы с сайтами

Разработанное приложение поддерживает совместную проектную работу пользователей с помощью механизма сайтов (виртуальных площадок проектов). Данный модуль содержит набор классов, необходимый для работы с сервисом сайтов. Он включает в себя следующие классы:

  1. модель:

  • AlfrescoSiteService;

  1. контроллеры:

  • SiteListViewController;

  • SiteDocumentLibraryViewController;

  • SiteMembersViewController;

  • SiteMemberInfoViewController.

AlfrescoSiteService – класс, входящий в состав Alfresco iOS SDK. Публичные методы данного класса предоставляют интерфейс для работы с сервисом сайтов. Код, приведенный ниже, демонстрирует работу с классом.

[self.siteService retrieveAllSitesWithListingContext:[[AlfrescoListingContext alloc] initWithSortProperty:@"isMember" sortAscending:YES] completionBlock:^(AlfrescoPagingResult *result,NSError *error){

if ([self.refreshControl isRefreshing]) {

[self.refreshControl endRefreshing];

}

if (error == nil) {

self.sites = [result.objects mutableCopy];

[self sortSites];

[self.tableView reloadData];

}

else{

NSLog(@"%@",error.description);

}

}];

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

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

- (void)sendJoinRequest:(NSNotification *)notification

{

if (self.selectedSite) {

[self.siteService joinSite:self.selectedSite completionBlock:^(AlfrescoSite *site,NSError *error){

if (site) {

[self updateTable];

}

else{

NSLog(@"%@",error.description);

}

}];

}

[[NSNotificationCenter defaultCenter] removeObserver:self name:kSendSiteJoinRequest object:nil];

[[NSNotificationCenter defaultCenter] removeObserver:self name:kCancelObservingJoinRequests object:nil];

}

SiteDocumentLibraryViewController обеспечивает работу пользователя с библиотекой документов конкретного сайта. Задачи, которые решает данный контроллер, во многом схожи с задачами класса RepoViewController, так как работа с бибилиотекой документов сайта производится аналогично работе с хранилищем сервера. Но кроме этих функций контроллер поддерживает возможность просмотра списка участников сайта и возможность покинуть сайт.

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

3.1.6 Модуль работы с бизнес-процессами

В данном модуле содержится логика работы с бизнес-процессами. Это один из самых объемных модулей системы, содержащий следующие классы:

  1. модель:

  • AlfrescoWorkflowService;

  1. контроллеры:

  • WorkflowViewController;

  • WorkflowTaskViewController;

  • WorkflowProcessViewController;

  • WorkflowProcessTypeSelectionViewController;

  • WorkflowCreationViewController;

  • FolderSelectionViewController;

  • AttachmentSelectionViewController.

Для взаимодействия с сервисом бизнес-процессов используется класс AlfrescoWorkflowService, предоставляемый Alfresco iOS SDK. Открытый интерфейс этого класса обеспечивает полный набор функций для работы с бизнес-процессами. Ниже приведен отрывок кода, демонстрирующий работу с классом AlfrescoWorkflowService.

[self.workflowService retrieveProcessesWithListingContext:listingContext completionBlock:^(AlfrescoPagingResult *result,NSError *error){

[self.refreshControl endRefreshing];

if (error == nil) {

[self.myProcesses removeAllObjects];

NSArray *array = result.objects;

for (AlfrescoWorkflowProcess *process in array){

if (([process.initiatorUsername isEqualToString:self.alfrescoSession.personIdentifier])&&(![process.processDefinitionKey isEqualToString:@"activitiInvitationModerated"])) {

[self.myProcesses addObject:process];

[self.tableView reloadData];

}

}

}

else{

NSLog(@"%@",error.description);

}

}];

В процессе работы с приложением пользователь имеет возможность просматривать список текущих задач и бизнес-процессов, созданных им. Управление этим представлением производится классом WorkflowViewController. Это центральный контроллер модуля, он организует работу остальных контроллеров и отвечает за их своевременный вызов. Так, пользователь может выбрать задачу или бизнес-процесс из списка и перейти в окно просмотра деталей. Этот механизм реализован в методе, приведенном ниже. Реализация класса приведена в приложении Б.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[self.tableView deselectRowAtIndexPath:indexPath animated:YES];

if (self.currentState == StateInvolvedProcesses) {

AlfrescoWorkflowTask *selectedTask = [self.myTasks objectAtIndex:indexPath.row];

WorkflowTaskViewController *taskController = [[WorkflowTaskViewController alloc] initWithNibName:NSStringFromClass([WorkflowTaskViewController class]) bundle:[NSBundle mainBundle] alfrescoSession:self.alfrescoSession workflowTask:selectedTask];

if ([Functions isIPad]) {

UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:taskController];

[self showDetailViewController:navC sender:nil];

}else{

[self.navigationController pushViewController:taskController animated:YES];

}}

else{

AlfrescoWorkflowProcess *process = [self.myProcesses objectAtIndex:indexPath.row];

WorkflowProcessViewController *processController = [[WorkflowProcessViewController alloc] initWithNibName:NSStringFromClass([WorkflowProcessViewController class]) bundle:[NSBundle mainBundle] alfrescoSession:self.alfrescoSession workflowProcess:process];

if ([Functions isIPad]) {

UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:processController];

[self showDetailViewController:navC sender:nil];

}else{

[self.navigationController pushViewController:processController animated:YES];

}}}

Контроллер WorkflowTaskViewController управляет представлением просмотра деталей задачи. Он реализует функции просмотра файлов, прикрепленных к задаче, перенаправление задачи и ее завершение. WorkflowProcessViewController управляет представлением просмотра деталей бизнес-процесса, поддерживает функции отмены бизнес-процесса, просмотра прикрепленных документов и задач, входящих в рамки данного процесса.

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

ntroller – простой контроллер для выбора типа создаваемого бизнес-процесса. WorkflowCreationViewController – объемный и сложный в реализации класс, отвечающий за процесс ввода необходимой информации, сложность его реализации заключается в динамически изменяющемся наборе требуемых полей, в зависимости от типа создаваемого процесса. AttachmentSelectionViewController – класс, управляющий представлением выбора прикрепляемых документов.

3.1.7 Модуль работы с локальными файлами.

Данный модуль ориентирован на работу с файлами, хранящимися в памяти устройства пользователя. Он состоит их двух классов: LocalFilesViewController и LocalFilesManager.

LocalFilesManager, используя файловый менеджер, управляет локальными файлами. Он поддерживает функции сохранения и удаления документов. Публичный интерфейс класса представлен на рисунке 3.21.

Рисунок 3.21 – Публичный интерфейс класса LocalFilesManager

Контроллер управляет представлением для работы с локальными файлами.

3.1.8 Модуль уведомлений

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

  • CreateNodeAlertController;

  • CreateFolderAlertController;

  • ErrorLoggingAlertController;

  • UploadPhotoAlertController;

  • DownloadFileAlertController;

  • JoinSiteAlertController;

  • LeaveSiteAlertController;

  • LocalFileNameErrorAlertController;

  • TaskReassignAlertController;

  • DeleteWorkflowProcessAlertController;

  • PrioritySelectionAlertController;

  • TaskStatusAlertController;

  • LocalFileNameAlertController.

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

Рисунок 3.22 – Интерфейс CreateNodeAlertController

CreateFolderAlertController служит для ввода имени создаваемой папки. Интерфейс приведен на рисунке 3.23.

Рисунок 3.23 – Интерфейс CreateFolderAlertController

Класс ErrorLoggingAlertController используется для отображения простых уведомлений, такие как ошибки подключения или ошибки в именах создаваемых узлов.

Контроллеры LeaveSiteAlertController, TaskReassignAlertController и DeleteWorkflowProcessAlertController служат для уточнения намерения пользователя выполнить критические операции, такие как перенаправление задачи, удаление бизнес-процесса и уход с сайта. Интерфейс одного из этих контроллеров приведен на рисунке 3.24.

Рисунок 3.24 – Интерфейс DeleteWorkflowProcessAlertController

Контроллер PrioritySelectionAlertController используется для выбора уровня приоритета бизнес-процесса при его создании. TaskStatusAlertController отвечает за выбор статуса текущей задачи, его интерфейс приведен на рисунке 3.25.

Рисунок 3.25 – Интерфейс TaskStatusAlertController

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

3.1.9 Модуль работы с пользователями

Данный модуль включает в себя следующие классы:

  1. модель:

  • AlfrescoPersonService;

  • AvatarManager;

  1. контроллеры:

  • PersonSearchViewController.

AlfrescoPersonService – класс для работы с сервисом персон. Позволяет запрашивать данные о конкретном пользователе. AvatarManager используется для управления аватарами пользователей.

Сервисы Alfresco не поддерживают возможности получить полный список пользователей, но поддерживают поиск среди пользователей системы по ключевым словам. Поэтому в приложении реализован контроллер PersonSearchViewController для управления представлением поиска персон.

3.1.10 Модуль вспомогательных классов

В последний вспомогательный модуль объединены классы, не относящиеся к конкретному модулю, но используемые в приложении. В этот модуль входят следующие классы:

  • Functions;

  • ColorManager;

  • Constants;

  • WelcomeViewController;

  • SettingsViewController;

  • PlaceholderViewController;

  • AppDelegate.

Класс Functions содержит набор методов и описаний функций, часто применяемых при разработке приложения. Это функции перевода размера файла в удобочитаемый для пользователя вид, расчета разницы между текущей датой и передаваемой для заполнения графического интерфейса, методы определения типа устройства, на котором запущено приложение, определения валидности имени файла или папки. Интерфейс данного класса приведен на рисунке 3.26.

Характеристики

Список файлов ВКР

Мобильное приложение для работы с системой управления корпоративной документацией на базе ECMS Alfresco
Караулов Н_
Плакат 1.vsd
Плакат 4.vsd
Плакат 2.vsd
Плакат 3.vsd
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6780
Авторов
на СтудИзбе
280
Средний доход
с одного платного файла
Обучение Подробнее