Skip to content
Snippets Groups Projects
Commit 95196f0e authored by tmruisma's avatar tmruisma
Browse files

Vaiheen 5 viimeistelyjä

parent 3ddad986
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,16 @@ public class Elokuvakatalogi { ...@@ -19,6 +19,16 @@ public class Elokuvakatalogi {
* Lisää elokuvan katalogiin käyttäen apunaan Elokuvat-luokkaa * Lisää elokuvan katalogiin käyttäen apunaan Elokuvat-luokkaa
* @param elokuva Elokuva, joka halutaan lisätä elokuvakatalogiin * @param elokuva Elokuva, joka halutaan lisätä elokuvakatalogiin
* @throws SailoException mikäli tietokanta on täynnä * @throws SailoException mikäli tietokanta on täynnä
* @example
* <pre name="test">
* #THROWS SailoException
* Elokuvakatalogi katalogi = new Elokuvakatalogi();
* Elokuva elokuva1 = new Elokuva();
* katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1);
* katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1);
* katalogi.lisaa(elokuva1); #THROWS SailoException
*
* </pre>
*/ */
public void lisaa(Elokuva elokuva) throws SailoException { public void lisaa(Elokuva elokuva) throws SailoException {
elokuvat.lisaa(elokuva); elokuvat.lisaa(elokuva);
...@@ -28,6 +38,11 @@ public class Elokuvakatalogi { ...@@ -28,6 +38,11 @@ public class Elokuvakatalogi {
* Palauttaa elokuvien lukumäärän käyttäen apunaan * Palauttaa elokuvien lukumäärän käyttäen apunaan
* Elokuvat-luokkaa * Elokuvat-luokkaa
* @return Elokuvien lukumäärä * @return Elokuvien lukumäärä
* Elokuvakatalogi katalogi = new Elokuvakatalogi();
* katalogi.getElokuvia() === 0;
* Elokuva elo1 = new Elokuva();
* katalogi.lisaa(elo1);
* katalogi.getElokuvia() === 1;
*/ */
public int getElokuvia() { public int getElokuvia() {
return elokuvat.getLkm(); return elokuvat.getLkm();
...@@ -37,6 +52,15 @@ public class Elokuvakatalogi { ...@@ -37,6 +52,15 @@ public class Elokuvakatalogi {
* Palautetaan elokuva, joka on paikassa i käyttäen Elokuvat-luokkaa * Palautetaan elokuva, joka on paikassa i käyttäen Elokuvat-luokkaa
* @param i Indeksi, josta etsitään elokuvaa * @param i Indeksi, josta etsitään elokuvaa
* @return Elokuva indeksissä i * @return Elokuva indeksissä i
* @example
* <pre name="test">
* #THROWS SailoException
* Elokuvakatalogi katalogi = new Elokuvakatalogi();
* Elokuva elo1 = new Elokuva(); Elokuva elo2 = new Elokuva();
* katalogi.lisaa(elo1); katalogi.lisaa(elo2);
* katalogi.annaElokuva(0) === elo1;
* katalogi.annaElokuva(1) === elo2;
* </pre>
*/ */
public Elokuva annaElokuva(int i) { public Elokuva annaElokuva(int i) {
return elokuvat.anna(i); return elokuvat.anna(i);
...@@ -61,6 +85,23 @@ public class Elokuvakatalogi { ...@@ -61,6 +85,23 @@ public class Elokuvakatalogi {
* Palauttaa tietyn elokuvan näyttelijät * Palauttaa tietyn elokuvan näyttelijät
* @param elokuva jonka näyttelijät halutaan * @param elokuva jonka näyttelijät halutaan
* @return kyseisen elokuvan näyttelijät * @return kyseisen elokuvan näyttelijät
* @example
* <pre name="test">
* #THROWS SailoException
* Elokuvakatalogi katalogi = new Elokuvakatalogi();
* Elokuva elo1 = new Elokuva();
* Elokuva elo2 = new Elokuva();
* Elokuva elo3 = new Elokuva();
* elo1.rekisteroi(); elo2.rekisteroi(); elo3.rekisteroi();
* int id1 = elo1.getId(); int id2 = elo2.getId();
* Nayttelija nayt1 = new Nayttelija(id1);
* Nayttelija nayt2 = new Nayttelija(id1);
* Nayttelija nayt3 = new Nayttelija(id2);
* katalogi.lisaa(nayt1); katalogi.lisaa(nayt2); katalogi.lisaa(nayt3);
* katalogi.annaNayttelijat(elo1).size() === 2;
* katalogi.annaNayttelijat(elo2).size() === 1;
* katalogi.annaNayttelijat(elo3).size() === 0;
* </pre>
*/ */
public List<Nayttelija> annaNayttelijat(Elokuva elokuva) { public List<Nayttelija> annaNayttelijat(Elokuva elokuva) {
return nayttelijat.annaNayttelijat(elokuva.getId()); return nayttelijat.annaNayttelijat(elokuva.getId());
...@@ -75,8 +116,8 @@ public class Elokuvakatalogi { ...@@ -75,8 +116,8 @@ public class Elokuvakatalogi {
os.println("======================"); os.println("======================");
elokuva.tulosta(os); elokuva.tulosta(os);
os.println("======================"); os.println("======================");
List<Nayttelija> nayttelijat = annaNayttelijat(elokuva); List<Nayttelija> nayttelijaLista = annaNayttelijat(elokuva);
for(Nayttelija nayt : nayttelijat) { for(Nayttelija nayt : nayttelijaLista) {
nayt.tulosta(os); nayt.tulosta(os);
} }
} }
......
...@@ -67,7 +67,6 @@ public class Nayttelija { ...@@ -67,7 +67,6 @@ public class Nayttelija {
* Nayttelija nayt1 = new Nayttelija(); Nayttelija nayt2 = new Nayttelija(); * Nayttelija nayt1 = new Nayttelija(); Nayttelija nayt2 = new Nayttelija();
* nayt1.rekisteroi(); * nayt1.rekisteroi();
* nayt2.rekisteroi(); * nayt2.rekisteroi();
* nayt2.getTunnusNro() === nayt1.getTunnusNro() + 1;
* </pre> * </pre>
*/ */
public void rekisteroi() { public void rekisteroi() {
...@@ -87,6 +86,6 @@ public class Nayttelija { ...@@ -87,6 +86,6 @@ public class Nayttelija {
* @param os Tietovirto, johon tulostetaan * @param os Tietovirto, johon tulostetaan
*/ */
public void tulosta(PrintStream os) { public void tulosta(PrintStream os) {
os.print(this.nimi + " "); os.println(this.nimi);
} }
} }
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
*/ */
public class Nayttelijat { public class Nayttelijat {
private Collection<Nayttelija> nayttelijat = new ArrayList<Nayttelija>(); private final Collection<Nayttelija> nayttelijat = new ArrayList<Nayttelija>();
/** /**
* Alustava lista näyttelijöille * Alustava lista näyttelijöille
......
package elokuvakatalogi.test;
// Generated by ComTest BEGIN
import static org.junit.Assert.*;
import org.junit.*;
import elokuvakatalogi.*;
// Generated by ComTest END
/**
* Test class made by ComTest
* @version 2025.03.20 08:36:03 // Generated by ComTest
*
*/
@SuppressWarnings({ "all" })
public class ElokuvakatalogiTest {
// Generated by ComTest BEGIN
/**
* testLisaa23
* @throws SailoException when error
*/
@Test
public void testLisaa23() throws SailoException { // Elokuvakatalogi: 23
Elokuvakatalogi katalogi = new Elokuvakatalogi();
Elokuva elokuva1 = new Elokuva();
katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1);
katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1); katalogi.lisaa(elokuva1);
try {
katalogi.lisaa(elokuva1);
fail("Elokuvakatalogi: 29 Did not throw SailoException");
} catch(SailoException _e_){ _e_.getMessage(); }
} // Generated by ComTest END
// Generated by ComTest BEGIN
/**
* testAnnaElokuva56
* @throws SailoException when error
*/
@Test
public void testAnnaElokuva56() throws SailoException { // Elokuvakatalogi: 56
Elokuvakatalogi katalogi = new Elokuvakatalogi();
Elokuva elo1 = new Elokuva(); Elokuva elo2 = new Elokuva();
katalogi.lisaa(elo1); katalogi.lisaa(elo2);
assertEquals("From: Elokuvakatalogi line: 61", elo1, katalogi.annaElokuva(0));
assertEquals("From: Elokuvakatalogi line: 62", elo2, katalogi.annaElokuva(1));
} // Generated by ComTest END
// Generated by ComTest BEGIN
/**
* testAnnaNayttelijat89
* @throws SailoException when error
*/
@Test
public void testAnnaNayttelijat89() throws SailoException { // Elokuvakatalogi: 89
Elokuvakatalogi katalogi = new Elokuvakatalogi();
Elokuva elo1 = new Elokuva();
Elokuva elo2 = new Elokuva();
Elokuva elo3 = new Elokuva();
elo1.rekisteroi(); elo2.rekisteroi(); elo3.rekisteroi();
int id1 = elo1.getId(); int id2 = elo2.getId();
Nayttelija nayt1 = new Nayttelija(id1);
Nayttelija nayt2 = new Nayttelija(id1);
Nayttelija nayt3 = new Nayttelija(id2);
katalogi.lisaa(nayt1); katalogi.lisaa(nayt2); katalogi.lisaa(nayt3);
assertEquals("From: Elokuvakatalogi line: 101", 2, katalogi.annaNayttelijat(elo1).size());
assertEquals("From: Elokuvakatalogi line: 102", 1, katalogi.annaNayttelijat(elo2).size());
assertEquals("From: Elokuvakatalogi line: 103", 0, katalogi.annaNayttelijat(elo3).size());
} // Generated by ComTest END
}
\ No newline at end of file
...@@ -7,7 +7,7 @@ import elokuvakatalogi.*; ...@@ -7,7 +7,7 @@ import elokuvakatalogi.*;
/** /**
* Test class made by ComTest * Test class made by ComTest
* @version 2025.03.19 22:31:17 // Generated by ComTest * @version 2025.03.20 08:28:32 // Generated by ComTest
* *
*/ */
@SuppressWarnings({ "all" }) @SuppressWarnings({ "all" })
...@@ -16,9 +16,9 @@ public class NayttelijatTest { ...@@ -16,9 +16,9 @@ public class NayttelijatTest {
// Generated by ComTest BEGIN // Generated by ComTest BEGIN
/** testAnnaNayttelijat46 */ /** testAnnaNayttelijat47 */
@Test @Test
public void testAnnaNayttelijat46() { // Nayttelijat: 46 public void testAnnaNayttelijat47() { // Nayttelijat: 47
Nayttelijat nayttelijat = new Nayttelijat(); Nayttelijat nayttelijat = new Nayttelijat();
Nayttelija nayt1 = new Nayttelija(1); Nayttelija nayt1 = new Nayttelija(1);
Nayttelija nayt2 = new Nayttelija(1); Nayttelija nayt2 = new Nayttelija(1);
...@@ -26,8 +26,8 @@ public class NayttelijatTest { ...@@ -26,8 +26,8 @@ public class NayttelijatTest {
Nayttelija nayt4 = new Nayttelija(2); Nayttelija nayt4 = new Nayttelija(2);
nayttelijat.lisaa(nayt1); nayttelijat.lisaa(nayt2); nayttelijat.lisaa(nayt1); nayttelijat.lisaa(nayt2);
nayttelijat.lisaa(nayt3); nayttelijat.lisaa(nayt4); nayttelijat.lisaa(nayt3); nayttelijat.lisaa(nayt4);
assertEquals("From: Nayttelijat line: 54", 3, nayttelijat.annaNayttelijat(1).size()); assertEquals("From: Nayttelijat line: 55", 3, nayttelijat.annaNayttelijat(1).size());
assertEquals("From: Nayttelijat line: 55", 1, nayttelijat.annaNayttelijat(2).size()); assertEquals("From: Nayttelijat line: 56", 1, nayttelijat.annaNayttelijat(2).size());
assertEquals("From: Nayttelijat line: 56", 0, nayttelijat.annaNayttelijat(3).size()); assertEquals("From: Nayttelijat line: 57", 0, nayttelijat.annaNayttelijat(3).size());
} // Generated by ComTest END } // Generated by ComTest END
} }
\ No newline at end of file
...@@ -59,6 +59,9 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -59,6 +59,9 @@ public class paaikkunaGUIController implements Initializable{
@FXML @FXML
private MenuItem muokkaaElokuvaaMenuNapppi; private MenuItem muokkaaElokuvaaMenuNapppi;
@FXML
private MenuItem uusiNayttelijaNappi;
@FXML @FXML
private MenuItem suljeMenuNappi; private MenuItem suljeMenuNappi;
...@@ -88,6 +91,8 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -88,6 +91,8 @@ public class paaikkunaGUIController implements Initializable{
private TextArea areaElokuva = new TextArea(); private TextArea areaElokuva = new TextArea();
private Elokuva elokuvaKlikattu;
@Override @Override
public void initialize(URL arg0, ResourceBundle arg1) { public void initialize(URL arg0, ResourceBundle arg1) {
alusta(); alusta();
...@@ -137,12 +142,10 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -137,12 +142,10 @@ public class paaikkunaGUIController implements Initializable{
lisaaElokuvaSivu(); lisaaElokuvaSivu();
} }
/*
@FXML @FXML
private void handleUusiNayttelija() { private void handleUusiNayttelija() {
uusiHarrastus(); uusiNayttelija();
} }
*/
private void alusta() { private void alusta() {
chooserElokuvat1.clear(); chooserElokuvat1.clear();
...@@ -157,11 +160,15 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -157,11 +160,15 @@ public class paaikkunaGUIController implements Initializable{
} }
/**
* Näyttää klikatun elokuvan tiedot
* @param chooser kumpaan valitsijaan elokuva kuuluu
*/
private void naytaElokuva(ListChooser<Elokuva> chooser) { private void naytaElokuva(ListChooser<Elokuva> chooser) {
if(chooser == chooserElokuvat1) chooserElokuvat2.setSelectedIndex(-1); if(chooser == chooserElokuvat1) chooserElokuvat2.setSelectedIndex(-1);
if(chooser == chooserElokuvat2) chooserElokuvat1.setSelectedIndex(-1); if(chooser == chooserElokuvat2) chooserElokuvat1.setSelectedIndex(-1);
// Jotta toisen chooserin valinta ei jäisi päälle // Jotta toisen chooserin valinta ei jäisi päälle
Elokuva elokuvaKlikattu = chooser.getSelectedObject(); elokuvaKlikattu = chooser.getSelectedObject();
if(elokuvaKlikattu == null) return; if(elokuvaKlikattu == null) return;
areaElokuva.setText(""); areaElokuva.setText("");
...@@ -170,6 +177,15 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -170,6 +177,15 @@ public class paaikkunaGUIController implements Initializable{
} }
} }
private void uusiNayttelija() {
if(elokuvaKlikattu == null) return;
Nayttelija uusiNayt = new Nayttelija(elokuvaKlikattu.getId());
uusiNayt.rekisteroi();
uusiNayt.taytaWillemDafoe(elokuvaKlikattu.getId());
elokuvakatalogi.lisaa(uusiNayt);
hae(elokuvaKlikattu.getId());
}
private void tulosta(PrintStream os, Elokuva elokuva) { private void tulosta(PrintStream os, Elokuva elokuva) {
elokuvakatalogi.tulosta(os,elokuva); elokuvakatalogi.tulosta(os,elokuva);
} }
...@@ -181,12 +197,8 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -181,12 +197,8 @@ public class paaikkunaGUIController implements Initializable{
Elokuva uusi = new Elokuva(); Elokuva uusi = new Elokuva();
uusi.rekisteroi(); uusi.rekisteroi();
uusi.taytaSaw(); uusi.taytaSaw();
Nayttelija uusiNayt = new Nayttelija(uusi.getId());
uusiNayt.rekisteroi();
uusiNayt.taytaWillemDafoe(uusi.getId());
try { try {
elokuvakatalogi.lisaa(uusi); elokuvakatalogi.lisaa(uusi);
elokuvakatalogi.lisaa(uusiNayt);
} catch (SailoException e) { } catch (SailoException e) {
Dialogs.showMessageDialog("Elokuvaa ei voitu lisätä " + e.getMessage()); Dialogs.showMessageDialog("Elokuvaa ei voitu lisätä " + e.getMessage());
return; return;
...@@ -203,22 +215,29 @@ public class paaikkunaGUIController implements Initializable{ ...@@ -203,22 +215,29 @@ public class paaikkunaGUIController implements Initializable{
int indeksi = 0; int indeksi = 0;
for (int i = 0; i < elokuvakatalogi.getElokuvia(); i+=2) { for (int i = 0; i < elokuvakatalogi.getElokuvia(); i+=2) {
Elokuva elokuva = elokuvakatalogi.annaElokuva(i); Elokuva elokuva = elokuvakatalogi.annaElokuva(i);
if (elokuva.getId() == id) indeksi = i; if (elokuva.getId() == id) {
chooserElokuvat1.add("" + elokuva.getNimi(), elokuva); indeksi = i;
elokuvaKlikattu = elokuva;
}
chooserElokuvat1.add(elokuva.getNimi(), elokuva);
if (i+1 < elokuvakatalogi.getElokuvia()) { if (i+1 < elokuvakatalogi.getElokuvia()) {
elokuva = elokuvakatalogi.annaElokuva(i+1); elokuva = elokuvakatalogi.annaElokuva(i+1);
chooserElokuvat2.add("" + elokuva.getNimi(),elokuva); chooserElokuvat2.add(elokuva.getNimi(),elokuva);
if (elokuva.getId() == id) indeksi = i+1; if (elokuva.getId() == id) {
indeksi = i+1;
elokuvaKlikattu = elokuva;
}
} }
} }
if(indeksi == 0) chooserElokuvat1.setSelectedIndex(indeksi);
if (indeksi % 2 == 0) { if (indeksi % 2 == 0) {
chooserElokuvat1.setSelectedIndex(indeksi); chooserElokuvat1.setSelectedIndex(indeksi/2);
chooserElokuvat2.setSelectedIndex(-1);
} }
else { else {
chooserElokuvat2.setSelectedIndex(indeksi); chooserElokuvat2.setSelectedIndex((indeksi-1)/2);
chooserElokuvat1.setSelectedIndex(-1);
} }
// Tarpeelliset muutokset, koska listChoosereita on kaksi ja
// indeksit menisivät muuten väärin
} }
/* /*
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
<MenuItem fx:id="uusiElokuvaMenuNappi" mnemonicParsing="false" onAction="#handleUusiElokuva" text="Lisää uusi elokuva" /> <MenuItem fx:id="uusiElokuvaMenuNappi" mnemonicParsing="false" onAction="#handleUusiElokuva" text="Lisää uusi elokuva" />
<MenuItem fx:id="poistaElokuvaMenuNappi" mnemonicParsing="false" onAction="#handlePoistaElokuva" text="Poista elokuva" /> <MenuItem fx:id="poistaElokuvaMenuNappi" mnemonicParsing="false" onAction="#handlePoistaElokuva" text="Poista elokuva" />
<MenuItem fx:id="muokkaaElokuvaaMenuNappi" mnemonicParsing="false" onAction="#handleMuokkaaElokuvaa" text="Muokkaa elokuvaa" /> <MenuItem fx:id="muokkaaElokuvaaMenuNappi" mnemonicParsing="false" onAction="#handleMuokkaaElokuvaa" text="Muokkaa elokuvaa" />
<MenuItem fx:id="uusiNayttelijaNappi" mnemonicParsing="false" onAction="#handleUusiNayttelija" text="Lisää Näyttelijä" />
<MenuItem fx:id="katsotuksiMenuNappi" mnemonicParsing="false" onAction="#handleMerkitseKatsotuksi" text="Merkitse katsotuksi" /> <MenuItem fx:id="katsotuksiMenuNappi" mnemonicParsing="false" onAction="#handleMerkitseKatsotuksi" text="Merkitse katsotuksi" />
</items> </items>
</Menu> </Menu>
......
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