- Интерфейс должен быть реализован с помощью библиотеки Swing
- Графический интерфейс клиентской части должен поддерживать русский, норвежский, литовский и английский (Канада) языки / локали. Должно обеспечиваться корректное отображение чисел, даты и времени в соответстии с локалью. Переключение языков должно происходить без перезапуска приложения. Локализованные ресурсы должны храниться в классе.
Доработать программу из лабораторной работы №7 следующим образом:
Заменить консольный клиент на клиент с графическим интерфейсом пользователя(GUI).
В функционал клиента должно входить:
- Окно с авторизацией/регистрацией.
- Отображение текущего пользователя.
- Таблица, отображающая все объекты из коллекции
- Каждое поле объекта - отдельная колонка таблицы.
- Строки таблицы можно фильтровать/сортировать по значениям любой из колонок. Сортировку и фильтрацию значений столбцов реализовать с помощью Streams API.
- Поддержка всех команд из предыдущих лабораторных работ.
- Область, визуализирующую объекты коллекции
- Объекты должны быть нарисованы с помощью графических примитивов с использованием Graphics, Canvas или аналогичных средств графической библиотеки.
- При визуализации использовать данные о координатах и размерах объекта.
- Объекты от разных пользователей должны быть нарисованы разными цветами.
- При нажатии на объект должна выводиться информация об этом объекте.
- При добавлении/удалении/изменении объекта, он должен автоматически появиться/исчезнуть/измениться на области как владельца, так и всех других клиентов.
- При отрисовке объекта должна воспроизводиться согласованная с преподавателем анимация.
- Возможность редактирования отдельных полей любого из объектов (принадлежащего пользователю). Переход к редактированию объекта возможен из таблицы с общим списком объектов и из области с визуализацией объекта.
- Возможность удаления выбранного объекта (даже если команды remove ранее не было).
В лабораторной работе были использованы некоторые решения разработчика DJ-Raven для создания панелей входа/регистрации и боковой панели с меню. Также использовались его 2 библиотеки swing-toast-notifications, swing-glasspane-popup для отображения сообщений и всплывающего окна при выполнении команд






