worthant / Java-labs

:ledger: Speedrun from 0 to Junior Java Developer
https://se.ifmo.ru/courses/programming
Other
7 stars 1 forks source link

Make GUI prototype [lab8] #70

Closed worthant closed 1 year ago

worthant commented 1 year ago
Заменить консольный клиент на клиент с графическим интерфейсом пользователя(GUI). 

> В функционал клиента должно входить:

1. Окно с авторизацией / регистрацией.
2. Отображение текущего пользователя.
3. Таблица, отображающая все объекты из коллекции
   ├ Каждое поле объекта - отдельная колонка таблицы.
   ├ Строки таблицы можно `фильтровать` / `сортировать` по значениям любой из колонок. 
   └ Сортировку и фильтрацию значений столбцов реализовать с помощью `Streams API`.
4. Поддержка всех команд из предыдущих лабораторных работ.
5. Область, визуализирующая объекты коллекции
   ├ Объекты должны быть нарисованы с помощью графических примитивов с использованием 
      Graphics, Canvas или аналогичных средств графической библиотеки.
   ├ При визуализации использовать данные о координатах и размерах объекта.
   ├ Объекты от разных пользователей должны быть нарисованы разными цветами.
   ├ При нажатии на объект должна выводиться информация об этом объекте.
   ├ При добавлении/удалении/изменении объекта, он должен автоматически появиться/исчезнуть/измениться
      на области как владельца, так и всех других клиентов. 
   └ При отрисовке объекта должна воспроизводиться согласованная с преподавателем `анимация`.
6. Возможность редактирования отдельных полей любого из объектов (принадлежащего пользователю). 
   └ Переход к редактированию объекта возможен из таблицы с общим списком объектов и из области с визуализацией объекта.
7. Возможность удаления выбранного объекта (даже если команды remove ранее не было).

> Перед непосредственной разработкой приложения необходимо `согласовать прототип интерфейса` с преподавателем. 
  └ Прототип интерфейса должен быть создан с помощью средства для построения прототипов интерфейсов(`mockplus`, draw.io, etc.)