Lista zadań nr 3

JDBC i Java Swing

Wszystkie zadania z tej listy należy wykonać wykorzystując Oracle Database 10g i język Java

  1. Mamy daną tabelkę Imie(Id PRIMARY KEY, Mianownik UNIQUE). Wykorzystując Java Swing napisz program, za pomocą którego będzie można przeglądać i edytować tą tabelę. W aplikacji powinien być komponent JList oraz grupy Nawigacja, Nowa pozycja oraz Edycja (do utworzenia grupy należy wykorzystać JPanel i ustawić odpowiednio właściwości krawędzi — efekt powinien być taki, jaki można uzyskać poprzez znaczniki FIELDSET i LEGEND w HTML-u lub komponent GroupBox w .NET-cie lub Delphi). Sposób działania ma być następujący.
    • W komponencie typu JList należy umieścić listę samych imion (bez identyfikatorów). Dodatkowo, z tym komponentem powinien byc skojarzony obiekt ResultSet, skojarzony, tzn. że bieżące rekordy oraz dane w obu obiektach powinny być w każdym momencie takie same.
    • W grupie Nawigacja powinny być cztery przyciski: Pierwszy, Następny, Poprzedni, Ostatni. Kliknięcie każdego z tych przycisków powinno oddziaływać zarówno na JList jak i na ResultSet.
    • W grupie Nowa pozycja powinno być pole tekstowe oraz przycisk Dodaj. Dodanie nowego imienia powinno mieć wpływ na zawartość bazy danych i zawartość komponentu JList.
    • W grupie Edycja powinno być pole tekstowe, przycisk Edytuj, przycisk Zatwierdź i przycisk Anuluj. Podczas przeglądania imion pole tekstowe i przyciski Zatwierdź oraz Anuluj powinny być nieaktywne. Naciśnięcie przycisku Edytuj powinno spowodować nieaktywność wszystkich komponentów formatki poza polem tekstowym oraz przyciskami Zatwierdź i Anuluj w tej grupie. Z kolei naciśniecie jednego z dwóch w tym momencie aktywnych przycisków ma spowodować odpowiednie akcje oraz powrót do domyślnego ustawienia aktywności obiektów.
    Wszelkie nie uwzględnione w powyższym opisie wątpliwości należy rozstrzygać zgodnie ze zdrowym rozsądkiem lub wysłać maila do prowadzącego.
    [3p]
  2. Mamy daną tabelę Osoba(ID PK, Imie, Nazwisko, Telefon). Wykorzystując Java Swing i komponent FilteredRowSet napisz program, za pomocą którego będzie można filtrować zawartość tej tabeli (pomocne może być wykorzystanie przykładu TableBinding).
    • Na formatce powinny być komponenty: JTable, JTextField i JRadioButton.
    • W komponencie JTable mają być dane z tabeli Osoba, przy czym wyświetlone powinne być te osoby, których nazwisko zaczyna się lub zawiera tekst wpisany w komponencie JTextField, natomiast JRadioButton ma określać, czy tekst wprowadzony w polu JTextField będzie traktowany jako fragment, czy jako początek nazwiska.
    • Komponent JTable ma się odświeżać przy każdej zmianie zawartości pola JTextField.
    • Powinna być udostępnione edytowanie zawartości komórek i co minutę powinna być dokonywana synchronizacja z bazą danych.
    [3p]
  3. Mamy dane tabele Jednostka(ID PK, Nazwa) i Osoba(ID PK, ID Jednostka REF Jednostka, Imie, Nazwisko, Telefon). Bazując na przykładzie ListComboBinding.java napisz aplikację, która pozwoli zarządzać osobami z poszczególnych jednostek oraz samymmi jednostkami.
    • Na formatce powinny być dwie grupy: Jednostki i Osoby. Definicja grupy jest taka sama jak na poprzedniej liście zadań.
    • W grupie Jednostki powinny być komponenty: JComboBox cbJednostki, JButton btDodajJednostke, JButton btUsunJednostke. Komponent cbJednostki powinien być tylko do odczytu i zawierać wszystkie jednostki. Po naciśnięciu przycisku btDodajJednostke powinno się pojawić okno modalne z polem tekstowym i dwoma przyciskami (OK, Anuluj), które umożliwi wprowadzenie nazwy nowej jednostki. Po naciśnięciu przycisku btUsunJednostke powinna zostać usunięta jednostka wraz z wszystkimi osobami z tej jednostki.
    • W grupie Osoby powinny być komponenty: JList lstOsoby, JButton btDodajOsobe, JButton btUsunOsobe. Komponent lstOsoby powinien zawierać osoby z jednostki aktualnie wybranej w cbJednostki. Działanie przycisków btDodajOsobe i btUsunOsobe powinno być analogiczne do działania przycisków btDodajJednostke i btUsunJednostke.
    [4p]