Задатак — Листа за куповину

← Недеља 12

Направити малу JavaFX апликацију за листу за куповину.

Апликација треба да омогући:

  • додавање производа;
  • избор категорије;
  • приказ свих производа;
  • означавање производа као купљеног;
  • уклањање производа.

Модел

Направити пакет:

model

и класе:

Proizvod
ListaZaKupovinu
Kategorija

Kategorija треба да буде enum, на пример:

HRANA,
PICE,
HIGIJENA,
DOMACINSTVO,
OSTALO

Proizvod има:

  • назив;
  • категорију;
  • информацију да ли је купљен.

Модел не сме да импортује ништа из:

javafx.*

Контролер

Направити пакет:

kontroler

и класу:

KontrolerKupovine

Контролер треба да омогући операције:

dodajProizvod(...)
oznaciKaoKupljen(...)
ukloniProizvod(...)
getProizvodi()

Ни контролер не треба да користи JavaFX типове.


Приказ

Направити пакет:

prikaz

JavaFX интерфејс треба да садржи најмање:

TextField
ChoiceBox<Kategorija>
Button
ListView
Label

и неки од layout контејнера:

VBox
HBox
BorderPane

UI треба да:

  1. прочита унос;
  2. позове контролер;
  3. освежи приказ.

Не треба директно да мења интерну колекцију модела.


Важан захтев

Ово не треба да постоји у класи Proizvod:

private Button dugme;
private Label nazivLabela;

Нити у класи ListaZaKupovinu:

ObservableList<Proizvod>

Модел треба да буде обична Java.


Додатак

Додати филтер:

SVI
NEKUPLJENI
KUPLJENI

Размислити:

  • да ли је филтер део модела или приказа;
  • ко треба да одлучи који производи се тренутно приказују;
  • да ли избор боје за купљени производ припада моделу.

Самостални део — Филтер без погрешног индекса

На листу за куповину додати приказ само некупљених производа. Дефинисати како UI идентификује изабрани производ кад је листа филтрирана.

Критеријум провере: После филтрирања означити други видљиви производ и проверити да је промењен прави објекат модела. Индекс филтрираног приказа није нужно индекс у моделу; користити стабилан ID или одговарајући изабрани објекат.

Предати мали Main са демонстрацијом и кратко образложење одлука. У овом делу нису задати називи класа или обавезни обрасци; образложено једноставније решење је прихватљиво. Најпре дефинисати уговор и очекивани резултат, па имплементирати.