Skip to content
Snippets Groups Projects
Commit 22541a6d authored by tornhale's avatar tornhale
Browse files

Vaihe 5.1 valmis. Käyttöliittymästä voi lisätä kirjoja. Kirja-, Kirjat- ja...

Vaihe 5.1 valmis. Käyttöliittymästä voi lisätä kirjoja. Kirja-, Kirjat- ja Kirjasto-luokat lähes täysin valmiita, muut luokat eivät vielä toimi
parent 32a8bb5c
No related branches found
Tags vaihe5.1
No related merge requests found
Showing
with 728 additions and 37 deletions
......@@ -8,5 +8,6 @@
</classpathentry>
<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ohj2"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="bin"/>
</classpath>
No preview for this file type
......@@ -13,9 +13,11 @@
<attribute name="Class-Path" value="."/>
</manifest>
<fileset dir="${dir.jarfile}/bin"/>
<zipfileset excludes="META-INF/*.SF" src="C:/devel/ec2412/eclipse/plugins/org.eclipse.fx.ide.css.jfx8_3.8.0.202204150904.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/devel/jar/Ali.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/devel/jar/fxgui.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/devel/jar/Graphics.jar"/>
<zipfileset excludes="META-INF/*.SF" src="C:/devel/jar/Music.jar"/>
</jar>
</target>
</project>
package Kirjalista;
/**
* Genre-luokka
* - Sisältää genren tiedot
* - Muuttaa merkkijonon genren tiedoiksi
* - Muuttaa genren tiedot merkkijonoksi
*/
public class Genre {
private int id = 0;
private String nimi = "";
private static int seuraavaId = 1;
/**
* Ottaa merkkijonon ja muuttaa sen genren tiedoiksi, poistaa turhat völilyönnit ja muuttaa
* syötteen pieniksi kirjaimiksi
* @param mjono Merkkijono, josta kirjan tiedot saadaan
* <pre name="test">
* Genre g = new Genre();
* g.parse("fantasia");
* g.toString() === "fantasia";
* g.parse("FANTASIA");
* g.toString() === "fantasia";
* g.parse(" Fantasia ");
* g.toString() === "fantasia";
* </pre>
*/
public void parse(String mjono) {
this.nimi = mjono.trim().toLowerCase();
}
/**
* Palauttaa genren nimen merkkijonona
*/
@Override
public String toString() {
return (this.nimi);
}
/**
* Rekisteröi genren antamalla sille id:n, kasvattaa seuraavaId:tä
* <pre name="test">
* Genre g1 = new Genre();
* Genre g2 = new Genre();
* g1.rekisteroi();
* g2.rekisteroi();
* g1.getId() === g2.getId() - 1;
* </pre>
*/
public void rekisteroi() {
this.id = seuraavaId;
seuraavaId++;
}
/**
* palauttaa genren id:n
* @return Genren id
*/
public int getId() {
return this.id;
}
}
package Kirjalista;
import java.io.PrintStream;
import java.util.Random;
import fi.jyu.mit.ohj2.Mjonot;
/**
* Kirja-luokka
* - Sisältää kirjan tiedot
* - Muuttaa merkkijonon kirjan tiedoiksi
* - Muuttaa kirjan tiedot merkkijonoksi
*/
public class Kirja {
private int id = 0;
private String nimi = "";
private String kirjoittaja = "";
private String kirjasarja = "";
private int sivumaara = 0;
private static int seuraavaId = 1;
/**
* Ottaa merkkijonon ja muuttaa sen kirjan tiedoiksi, poistaa turhat välilyönnit
* merkkijono muotoa nimi|kirjoittaja|kirjasarja|sivumäärä
* @param mjono Merkkijono, josta kirjan tiedot saadaan
* <pre name="test">
* Kirja k = new Kirja();
* k.parse("Hobitti|J.R.R. Tolkien||336");
* k.toString() === "Hobitti|J.R.R. Tolkien||336";
*
* Kirja k2 = new Kirja();
* k2.parse(" Hobitti | J.R.R. Tolkien | |336");
* k2.toString() === "Hobitti|J.R.R. Tolkien||336";
*
*
* </pre>
*/
public void parse(String mjono) {
StringBuilder sb = new StringBuilder(mjono);
this.nimi = Mjonot.erota(sb, '|').trim();
this.kirjoittaja = Mjonot.erota(sb, '|').trim();
this.kirjasarja = Mjonot.erota(sb, '|').trim();
this.sivumaara = Mjonot.erotaInt(sb, 0);
}
/**
* Palauttaa kirjan tiedot merkkijonona muodossa id|nimi|kirjoittaja|kirjasarja|sivumäärä
*/
@Override
public String toString() {
return (this.id + "|" + this.nimi + "|" + this.kirjoittaja + "|" + this.kirjasarja + "|" + this.sivumaara);
}
/**
* Rekisteröi kirjan antamalla sille Id:n. Kasvattaa seuraavaId:tä.
* <pre name="test">
* Kirja k = new Kirja();
* Kirja k2 = new Kirja();
* k.rekisteroi();
* k2.rekisteroi();
* k.getId() === k2.getId() - 1;
* </pre>
*/
public void rekisteroi() {
this.id = seuraavaId;
seuraavaId++;
}
/**
* Apumetodi, jolla saadaan täytettyä testiarvot kirjalle.
*/
public void esimerkkiKirja() {
Random rand = new Random();
this.nimi = "Hobitti" + rand.nextInt(10);
this.kirjoittaja = "J.R.R. Tolkien";
this.kirjasarja = "";
this.sivumaara = rand.nextInt(1000);
}
/**
* @return palauttaa kirjan id:n
*/
public int getId() {
return this.id;
}
/**
* @return Kirjan nimi
*/
public String getNimi() {
return this.nimi;
}
/**
* Tulostaa kirjan tiedot
* @param out Tietovirta, johon tulostetaan
*/
public void tulosta(PrintStream out) {
out.println(this.id + " " + this.nimi + " " + this.kirjoittaja + " " + this.kirjasarja + " " + this.sivumaara);
}
/**
* Testausta varten
* @param args ei käytössä
*/
public static void main(String[] args) {
Kirja k = new Kirja();
k.rekisteroi();
k.esimerkkiKirja();
k.tulosta(System.out);
Kirja k1 = new Kirja();
k1.rekisteroi();
k1.esimerkkiKirja();
k1.tulosta(System.out);
}
}
package Kirjalista;
/**
* Liimaa kirjan ja genren yhteen id:n perusteella
*/
public class KirjanGenre {
private int kirjaId;
private int genreId;
/**
* Luo olion
* @param kirja kirja, jonka id tallennetaan
* @param genre genre, jonka id tallennetaan
* <pre name="test">
* Kirja k = new Kirja();
* k.rekisteroi();
* Kirja k1 = new Kirja();
* k1.rekisteroi();
*
* Genre g = new Genre();
* g.rekisteroi();
* Genre g1 = new Genre();
* g1.rekisteroi();
*
* KirjanGenre kg = new KirjanGenre(k, g);
* KirjanGenre kg1 = new KirjanGenre(k1, g1);
* KirjanGenre kg2 = new KirjanGenre(k, g1);
*
* kg.getKirjaId() === k.getId();
* kg1.getKirjaId() === k1.getId();
* kg2.getKirjaId() === k.getId();
*
* kg.getGenreId() === g.getId();
* kg1.getGenreId() === g1.getId();
* kg2.getGenreId() === g1.getId();
*
*
* </pre>
*/
public KirjanGenre(Kirja kirja, Genre genre) {
this.kirjaId = kirja.getId();
this.genreId = genre.getId();
}
/**
* Palauttaa kirjan id:n
* @return Kirjan id
*/
public int getKirjaId() {
return this.kirjaId;
}
/**
* Palauttaa genren id:n
* @return Genren id
*/
public int getGenreId() {
return this.genreId;
}
}
package Kirjalista;
/**
* Luokka, joka keskustelee käyttöliittymän kanssa
* - Välittää tietoja käyttöliittymän ja kirjojen sekä genrejen välillä
*/
public class Kirjasto {
private Kirjat kirjat = new Kirjat();
//private GenreRelaatio genreRelaatio;
//private Genret genret;
/**
* @param kirja Lisättävä kirja
* @throws SailoException Jos kirjaa ei voi lisätä
*/
public void lisaaKirja(Kirja kirja) throws SailoException {
kirjat.lisaa(kirja);
}
/**
* @param indeksi Indeksipaikka, josta kirja haetaan
* @return Kirja annetussa indeksipaikassa
* @throws IndexOutOfBoundsException Jos indeksi laiton
*/
public Kirja haeKirja(int indeksi) throws IndexOutOfBoundsException {
return kirjat.hae(indeksi);
}
/**
* @return Kirjojen lukumäärä
*/
public int getKirjaLkm() {
return this.kirjat.getLkm();
}
/*
public Genre haeGenre(Kirja kirja) {
GenreRelaatio.haeGenret();
}
*/
}
package Kirjalista;
/**
* Monikkoluokka kirjoille.
* - Sisältää taulukon kirjoista
* - Lisää ja poistaa kirjoja
* - Lukee ja kirjoittaa tiedostoon (sitten joskus)
* - Etsii ja lajittelee (sitten joskus)
*/
public class Kirjat {
private int maxLkm = 8;
private int lkm;
private Kirja[] alkiot = new Kirja[maxLkm];
/**
* @param kirja Lisättävä kirja
* @throws SailoException Heittää, jos lisääminen ei onnistu
*/
public void lisaa(Kirja kirja) throws SailoException {
if (this.lkm >= this.alkiot.length) throw new SailoException("Liikaa alkioita");
this.alkiot[this.lkm] = kirja;
this.lkm++;
}
/**
* Hakee kirjan indeksipaikassa i
* @param i Halutun kirjan indeksi
* @return viite kirjaan, jonka indeksi on i
* @throws IndexOutOfBoundsException jos indeksi liian suuri tai pieni
*/
public Kirja hae(int i) throws IndexOutOfBoundsException {
if (i < 0 || this.lkm <= i)
throw new IndexOutOfBoundsException("Laiton indeksi: " + i);
return this.alkiot[i];
}
/**
* Palauttaa kirjojen lukumäärän
* @return kirjojen lukumäärä
*/
public int getLkm() {
return this.lkm;
}
}
package Kirjalista;
/**
* Poikkeusluokka tietorakenteesta aiheutuville poikkeuksille.
* @author Vesa Lappalainen
* @version 1.0, 22.02.2003
*/
public class SailoException extends Exception {
private static final long serialVersionUID = 1L;
/**
* Poikkeuksen muodostaja jolle tuodaan poikkeuksessa
* käytettävä viesti
* @param viesti Poikkeuksen viesti
*/
public SailoException(String viesti) {
super(viesti);
}
}
package Kirjalista.test;
// Generated by ComTest BEGIN
import static org.junit.Assert.*;
import org.junit.*;
import Kirjalista.Genre;
/**
* Test class made by ComTest
* @version 2025.02.24 13:41:02 // Generated by ComTest
*
*/
@SuppressWarnings({ "all" })
public class GenreTest {
// Generated by ComTest BEGIN
/** testParse22 */
@Test
public void testParse22() { // Genre: 22
Genre g = new Genre();
g.parse("fantasia");
assertEquals("From: Genre line: 25", "fantasia", g.toString());
g.parse("FANTASIA");
assertEquals("From: Genre line: 27", "fantasia", g.toString());
g.parse(" Fantasia ");
assertEquals("From: Genre line: 29", "fantasia", g.toString());
} // Generated by ComTest END
// Generated by ComTest BEGIN
/** testRekisteroi48 */
@Test
public void testRekisteroi48() { // Genre: 48
Genre g1 = new Genre();
Genre g2 = new Genre();
g1.rekisteroi();
g2.rekisteroi();
assertEquals("From: Genre line: 53", g2.getId() - 1, g1.getId());
} // Generated by ComTest END
}
\ No newline at end of file
package Kirjalista.test;
// Generated by ComTest BEGIN
import static org.junit.Assert.*;
import org.junit.*;
import Kirjalista.Kirja;
/**
* Test class made by ComTest
* @version 2025.02.24 13:31:16 // Generated by ComTest
*
*/
@SuppressWarnings({ "all" })
public class KirjaTest {
// Generated by ComTest BEGIN
/** testParse26 */
@Test
public void testParse26() { // Kirja: 26
Kirja k = new Kirja();
k.parse("Hobitti|J.R.R. Tolkien||336");
assertEquals("From: Kirja line: 29", "Hobitti|J.R.R. Tolkien||336", k.toString());
Kirja k2 = new Kirja();
k2.parse(" Hobitti | J.R.R. Tolkien | |336");
assertEquals("From: Kirja line: 33", "Hobitti|J.R.R. Tolkien||336", k2.toString());
} // Generated by ComTest END
// Generated by ComTest BEGIN
/** testRekisteroi58 */
@Test
public void testRekisteroi58() { // Kirja: 58
Kirja k = new Kirja();
Kirja k2 = new Kirja();
k.rekisteroi();
k2.rekisteroi();
assertEquals("From: Kirja line: 63", k2.getId() - 1, k.getId());
} // Generated by ComTest END
}
\ No newline at end of file
package Kirjalista.test;
// Generated by ComTest BEGIN
import static org.junit.Assert.*;
import org.junit.*;
import Kirjalista.Genre;
import Kirjalista.Kirja;
import Kirjalista.KirjanGenre;
/**
* Test class made by ComTest
* @version 2025.02.24 13:51:58 // Generated by ComTest
*
*/
@SuppressWarnings({ "all" })
public class KirjanGenreTest {
// Generated by ComTest BEGIN
/** testKirjanGenre16 */
@Test
public void testKirjanGenre16() { // KirjanGenre: 16
Kirja k = new Kirja();
k.rekisteroi();
Kirja k1 = new Kirja();
k1.rekisteroi();
Genre g = new Genre();
g.rekisteroi();
Genre g1 = new Genre();
g1.rekisteroi();
KirjanGenre kg = new KirjanGenre(k, g);
KirjanGenre kg1 = new KirjanGenre(k1, g1);
KirjanGenre kg2 = new KirjanGenre(k, g1);
assertEquals("From: KirjanGenre line: 31", k.getId(), kg.getKirjaId());
assertEquals("From: KirjanGenre line: 32", k1.getId(), kg1.getKirjaId());
assertEquals("From: KirjanGenre line: 33", k.getId(), kg2.getKirjaId());
assertEquals("From: KirjanGenre line: 35", g.getId(), kg.getGenreId());
assertEquals("From: KirjanGenre line: 36", g1.getId(), kg1.getGenreId());
assertEquals("From: KirjanGenre line: 37", g1.getId(), kg2.getGenreId());
} // Generated by ComTest END
}
\ No newline at end of file
package fxKirjalista;
import java.io.PrintStream;
import java.net.URL;
import java.util.Optional;
import java.util.ResourceBundle;
import Kirjalista.Kirja;
import Kirjalista.Kirjasto;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.ListChooser;
import fi.jyu.mit.fxgui.TextAreaOutputStream;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.layout.Pane;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.text.Font;
import javafx.stage.Modality;
import javafx.stage.Stage;
/**
* Ohjelman pääikkunan käsittelijä
*/
public class KirjalistaGUIController {
public class KirjalistaGUIController implements Initializable {
@FXML private ListChooser<Kirja> chooserKirjat;
@FXML private ScrollPane paneKirja;
/**
* Kirjan lisäys
*/
@FXML void handleLisaaKirja() {
ModalController.showModal(KirjalistaGUIController.class.getResource("LisaaView.fxml"), "Kirja", null, "");
try {
Stage lisaaStage = new Stage();
lisaaStage.initModality(Modality.APPLICATION_MODAL);
final FXMLLoader ldr = new FXMLLoader(getClass().getResource("LisaaView.fxml"));
final Pane root = (Pane)ldr.load();
final LisaaController lisaaCtrl = (LisaaController) ldr.getController();
final Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("kirjalista.css").toExternalForm());
lisaaStage.setScene(scene);
lisaaStage.setTitle("Lisää kirja");
lisaaCtrl.setIsanta(this);
lisaaCtrl.setKirjasto(this.kirjasto);
lisaaStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* Kirjan muokkaus
*/
@FXML void handleMuokkaaKirja() {
ModalController.showModal(KirjalistaGUIController.class.getResource("MuokkaaView.fxml"), "Kirja", null, "");
try {
Stage muokkaaStage = new Stage();
muokkaaStage.initModality(Modality.APPLICATION_MODAL);
final FXMLLoader ldr = new FXMLLoader(getClass().getResource("MuokkaaView.fxml"));
final Pane root = (Pane)ldr.load();
final MuokkaaController muokkaaCtrl = (MuokkaaController) ldr.getController();
final Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("kirjalista.css").toExternalForm());
muokkaaStage.setScene(scene);
muokkaaStage.setTitle("Muokkaa kirjaa");
muokkaaCtrl.setIsanta(this);
muokkaaCtrl.setKirjasto(this.kirjasto);
muokkaaStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
......@@ -66,6 +127,11 @@ public class KirjalistaGUIController {
}
// ============================================================================
private Kirjasto kirjasto;
private Kirja valittuKirja;
private TextArea areaKirja = new TextArea();
/**
* Luo näytölle dialogin, joka kysyy vahvistusta kirjan poistamiseksi
......@@ -84,4 +150,68 @@ public class KirjalistaGUIController {
Optional<ButtonType> result = alert.showAndWait();
if ( result.get() == buttonTypeYes ) Dialogs.showMessageDialog("Vielä ei osata poistaa");
}
/**
* Asettaa controllerille viitteen kirjasto-olioon
* @param kirjasto Kirjasto-luokan olio, johon viite asetetaan
*/
public void setKirjasto(Kirjasto kirjasto) {
this.kirjasto = kirjasto;
}
/**
* Hakee lisätyn kirjan sen id:n perusteella ja lisää sen näyttöön
* @param idnro Kirjan id
*/
public void hae(int idnro) {
chooserKirjat.clear();
int index = 0;
for (int i = 0; i < kirjasto.getKirjaLkm(); i++) {
Kirja kirja = kirjasto.haeKirja(i);
if (kirja.getId() == idnro) index = i;
chooserKirjat.add(kirja.getNimi(), kirja);
}
chooserKirjat.setSelectedIndex(index);
}
/**
* Näyttää listasta valitun kirjan tiedot,
* tilapäisesti yhteen isoon edit-kenttään
*/
protected void naytaJasen() {
valittuKirja = chooserKirjat.getSelectedObject();
if (valittuKirja == null) return;
areaKirja.setText("");
try (PrintStream os = TextAreaOutputStream.getTextPrintStream(areaKirja)) {
valittuKirja.tulosta(os);
}
}
/**
* Tekee tarvittavat muut alustukset, nyt vaihdetaan GridPanen tilalle
* yksi iso tekstikenttä, johon voidaan tulostaa jäsenten tiedot.
* Alustetaan myös jäsenlistan kuuntelija
*/
protected void alusta() {
paneKirja.setContent(areaKirja);
areaKirja.setFont(new Font("Courier New", 12));
paneKirja.setFitToHeight(true);
chooserKirjat.clear();
chooserKirjat.addSelectionListener(e -> naytaJasen());
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
alusta();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?import fi.jyu.mit.fxgui.ListChooser?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
......@@ -26,7 +27,7 @@
<Insets bottom="7.0" left="7.0" right="7.0" top="7.0" />
</VBox.margin>
</Label>
<ScrollPane prefHeight="383.0" prefWidth="274.0">
<ScrollPane fx:id="paneKirja" prefHeight="383.0" prefWidth="274.0">
<content>
<AnchorPane prefHeight="303.0" prefWidth="237.0">
<children>
......@@ -41,6 +42,7 @@
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="Nimi:">
......@@ -93,6 +95,16 @@
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</GridPane.margin>
</TextField>
<Label text="Sivumäärä" GridPane.rowIndex="5">
<GridPane.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</GridPane.margin>
</Label>
<TextField text="336" GridPane.columnIndex="1" GridPane.rowIndex="5">
<GridPane.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</GridPane.margin>
</TextField>
</children>
</GridPane>
</children>
......@@ -131,21 +143,7 @@
<content>
<AnchorPane prefHeight="336.0" prefWidth="267.0">
<children>
<Label text="Hobitti">
<padding>
<Insets bottom="5.0" left="5.0" right="150.0" top="5.0" />
</padding>
</Label>
<Label layoutY="28.0" prefHeight="27.0" prefWidth="284.0" text="Taru sormusten herrasta">
<padding>
<Insets bottom="5.0" left="5.0" right="150.0" top="5.0" />
</padding>
</Label>
<Label layoutY="56.0" text="Java-ohjelmointi">
<padding>
<Insets bottom="5.0" left="5.0" right="150.0" top="5.0" />
</padding>
</Label>
<ListChooser fx:id="chooserKirjat" prefHeight="254.0" prefWidth="284.0" rivit="Hobitti&#10;Taru sormusten herrasta&#10;Java-ohjelmointi&#10;" />
</children>
</AnchorPane>
</content>
......
package fxKirjalista;
import Kirjalista.Kirjasto;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
......@@ -12,7 +13,7 @@ import javafx.fxml.FXMLLoader;
* @version 23.1.2025
*
*/
public class KirjalistaMain extends Application {
public class KirjalistaMain extends Application {
@Override
public void start(Stage primaryStage) {
try {
......@@ -20,12 +21,16 @@ public class KirjalistaMain extends Application {
final FXMLLoader ldr = new FXMLLoader(getClass().getResource("KirjalistaGUIView.fxml"));
final Pane root = (Pane)ldr.load();
// final KirjalistaGUIController kirjalistaCtrl = (KirjalistaGUIController) ldr.getController();
final KirjalistaGUIController kirjalistaCtrl = (KirjalistaGUIController) ldr.getController();
final Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("kirjalista.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Kirjalista");
Kirjasto kirjasto = new Kirjasto();
kirjalistaCtrl.setKirjasto(kirjasto);
primaryStage.show();
} catch(Exception e) {
......
package fxKirjalista;
import Kirjalista.Kirja;
import Kirjalista.Kirjasto;
import Kirjalista.SailoException;
import fi.jyu.mit.fxgui.ComboBoxChooser;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
......@@ -13,24 +16,26 @@ import fi.jyu.mit.fxgui.ModalControllerInterface;
*/
public class LisaaController implements ModalControllerInterface<String> {
@FXML private ComboBoxChooser<?> comboboxGenre;
@FXML private TextField textKirjailija;
@FXML private TextField textNimi;
@FXML private TextField textSarja;
@FXML private TextField textSivu;
@FXML private TextField textVuosi;
private Kirjasto kirjasto;
private KirjalistaGUIController isanta;
@FXML void handleJasenLisatty() {
// TODO:
uusiKirja();
}
@FXML void handleOK() {
Dialogs.showMessageDialog("Vielä ei osata lisätä");
uusiKirja();
//Dialogs.showMessageDialog("Vielä ei osata lisätä");
ModalController.closeStage(textNimi);
}
......@@ -44,7 +49,6 @@ public class LisaaController implements ModalControllerInterface<String> {
@Override
public void handleShown() {
// TODO Auto-generated method stub
}
@Override
......@@ -52,6 +56,45 @@ public class LisaaController implements ModalControllerInterface<String> {
// TODO Auto-generated method stub
}
/**
* Asettaa controllerille viitteen kirjasto-olioon
* @param kirjasto Kirjasto-luokan olio, johon viite asetetaan
*/
public void setKirjasto(Kirjasto kirjasto) {
this.kirjasto = kirjasto;
}
/**
* Asettaa olion "isännäksi" kirjalistan pääikkunan kontrollerin, jotta
* keskustelu kontrollerien välillä helpompaa
* @param isanta Pääikkunan kontrolleri
*/
public void setIsanta(KirjalistaGUIController isanta) {
this.isanta = isanta;
}
/**
* Luo kirjan ja antaa sille id:n. Pyrkii lisäämään sen kirjat-olion
* taulukkoon ja antaa virheen, jos ei onnistu.
*/
protected void uusiKirja() {
Kirja uusi = new Kirja();
uusi.esimerkkiKirja();
uusi.rekisteroi();
try {
kirjasto.lisaaKirja(uusi);
} catch (SailoException e) {
Dialogs.showMessageDialog("Ongelma " + e.getMessage());
return;
}
isanta.hae(uusi.getId());
}
}
package fxKirjalista;
import Kirjalista.Kirjasto;
import fi.jyu.mit.fxgui.ComboBoxChooser;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
......@@ -8,7 +9,7 @@ import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.ModalControllerInterface;
/**
*
* Kontrolleri muokkausdialogille
*/
public class MuokkaaController implements ModalControllerInterface<String> {
......@@ -23,10 +24,10 @@ public class MuokkaaController implements ModalControllerInterface<String> {
@FXML private TextField textSivu;
@FXML private TextField textVuosi;
@FXML void handleJasenLisatty() {
// TODO:
}
private Kirjasto kirjasto;
private KirjalistaGUIController isanta;
@FXML void handleOK() {
Dialogs.showMessageDialog("Vielä ei osata muokata");
......@@ -58,5 +59,16 @@ public class MuokkaaController implements ModalControllerInterface<String> {
}
/**
* Asettaa controllerille viitteen kirjasto-olioon
* @param kirjasto Kirjasto-luokan olio, johon viite asetetaan
*/
public void setKirjasto(Kirjasto kirjasto) {
this.kirjasto = kirjasto;
}
public void setIsanta(KirjalistaGUIController isanta) {
this.isanta = isanta;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment