Skip to content
Snippets Groups Projects
Commit d2dd637b authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

jasen vaihdettu tietue

parent cea081f3
No related branches found
No related tags found
No related merge requests found
......@@ -29,7 +29,7 @@ import kerho.Jasen;
import kerho.Kerho;
import kerho.SailoException;
import static fxKerho.JasenDialogController.getFieldId;
import static fxKerho.TietueDialogController.getFieldId;
/**
* Luokka kerhon käyttöliittymän tapahtumien hoitamiseksi.
......@@ -151,7 +151,7 @@ public class KerhoGUIController implements Initializable {
chooserJasenet.clear();
chooserJasenet.addSelectionListener(e -> naytaJasen());
edits = JasenDialogController.luoKentat(gridJasen, new Jasen());
edits = TietueDialogController.luoKentat(gridJasen, new Jasen());
for (TextField edit: edits)
if ( edit != null ) {
edit.setEditable(false);
......@@ -246,7 +246,7 @@ public class KerhoGUIController implements Initializable {
return;
}
JasenDialogController.naytaJasen(edits, jasenKohdalla);
TietueDialogController.naytaTietue(edits, jasenKohdalla);
naytaHarrastukset(jasenKohdalla);
}
......@@ -305,7 +305,7 @@ public class KerhoGUIController implements Initializable {
*/
protected void uusiJasen() {
Jasen uusi = new Jasen();
uusi = JasenDialogController.kysyJasen(null, uusi, uusi.ekaKentta());
uusi = TietueDialogController.kysyTietue(null, uusi, uusi.ekaKentta());
if (uusi == null) return;
uusi.rekisteroi();
kerho.lisaa(uusi);
......@@ -318,7 +318,7 @@ public class KerhoGUIController implements Initializable {
if (jasenKohdalla == null) return;
try {
Jasen jasen = jasenKohdalla.clone();
jasen = JasenDialogController.kysyJasen(null, jasen, k);
jasen = TietueDialogController.kysyTietue(null, jasen, k);
if (jasen == null) return;
kerho.korvaaTaiLisaa(jasen);
hae(jasenKohdalla.getTunnusNro());
......
......@@ -17,26 +17,21 @@ import javafx.scene.Node;
import javafx.scene.control.Label;
@SuppressWarnings("javadoc")
public class JasenDialogController<TYPE extends Tietue> implements ModalControllerInterface<TYPE>, Initializable {
public class TietueDialogController<TYPE extends Tietue> implements ModalControllerInterface<TYPE>, Initializable {
@FXML private TextField editNimi;
@FXML private TextField editHetu;
@FXML private TextField editKatuosoite;
@FXML private TextField editPostinumero;
@FXML private GridPane gridJasen;
@FXML private GridPane gridTietue;
@FXML private Label labelVirhe;
@FXML private ScrollPane panelJasen;
@FXML private ScrollPane panelTietue;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// alusta();
// Ei voi täällä vielä alustaa kun ei ole jasenKohdalle ei ole olemassa, siirretty setDefault
// Ei voi täällä vielä alustaa kun ei ole tietueKohdalle ei ole olemassa, siirretty setDefault
}
@FXML private void handleOK() {
if ( jasenKohdalla != null && jasenKohdalla.anna(jasenKohdalla.ekaKentta()).trim().equals("") ) {
if ( tietueKohdalla != null && tietueKohdalla.anna(tietueKohdalla.ekaKentta()).trim().equals("") ) {
naytaVirhe("Nimi ei saa olla tyhjä");
return;
}
......@@ -46,7 +41,7 @@ public class JasenDialogController<TYPE extends Tietue> implements ModalControll
@FXML private void handleCancel() {
jasenKohdalla = null;
tietueKohdalla = null;
ModalController.closeStage(labelVirhe);
}
......@@ -64,46 +59,46 @@ public class JasenDialogController<TYPE extends Tietue> implements ModalControll
@Override
public TYPE getResult() {
return jasenKohdalla;
return tietueKohdalla;
}
@Override
public void setDefault(TYPE oletus) {
jasenKohdalla = oletus;
tietueKohdalla = oletus;
alusta();
naytaJasen(edits, jasenKohdalla);
naytaTietue(edits, tietueKohdalla);
}
@Override
public void handleShown() {
// TODO Auto-generated method stub
kentta = Math.max(jasenKohdalla.ekaKentta(), Math.min(kentta, jasenKohdalla.getKenttia()-1));
kentta = Math.max(tietueKohdalla.ekaKentta(), Math.min(kentta, tietueKohdalla.getKenttia()-1));
edits[kentta].requestFocus();
}
private TYPE jasenKohdalla;
private TYPE tietueKohdalla;
private TextField[] edits;
private int kentta;
/**
* Luodaan GridPaneen jäsenen tiedot
* @param gridJasen mihin tiedot luodaan
* Luodaan GridPaneen tietue tiedot
* @param gridTietue mihin tiedot luodaan
* @return luodut tekstikentät
*/
public static<TYPE extends Tietue> TextField[] luoKentat(GridPane gridJasen, TYPE apujasen) {
gridJasen.getChildren().clear();
TextField[] edits = new TextField[apujasen.getKenttia()];
public static<TYPE extends Tietue> TextField[] luoKentat(GridPane gridTietue, TYPE aputietue) {
gridTietue.getChildren().clear();
TextField[] edits = new TextField[aputietue.getKenttia()];
for (int i=0, k = apujasen.ekaKentta(); k < apujasen.getKenttia(); k++, i++) {
Label label = new Label(apujasen.getKysymys(k));
gridJasen.add(label, 0, i);
for (int i=0, k = aputietue.ekaKentta(); k < aputietue.getKenttia(); k++, i++) {
Label label = new Label(aputietue.getKysymys(k));
gridTietue.add(label, 0, i);
TextField edit = new TextField();
edits[k] = edit;
edit.setId("e"+k);
gridJasen.add(edit, 1, i);
gridTietue.add(edit, 1, i);
}
return edits;
}
......@@ -112,12 +107,11 @@ public class JasenDialogController<TYPE extends Tietue> implements ModalControll
private void alusta() {
// edits = new TextField[]{editNimi, editHetu, editKatuosoite, editPostinumero};
edits = luoKentat(gridJasen, jasenKohdalla);
edits = luoKentat(gridTietue, tietueKohdalla);
for (TextField edit : edits)
if ( edit != null )
edit.setOnKeyReleased( e -> kasitteleMuutosJaseneen(edit));
// edit.setOnKeyReleased( e -> kasitteleMuutosJaseneen((TextField)(e.getSource())));
panelJasen.setFitToHeight(true);
edit.setOnKeyReleased( e -> kasitteleMuutosTietueeseen(edit));
panelTietue.setFitToHeight(true);
}
......@@ -140,38 +134,38 @@ public class JasenDialogController<TYPE extends Tietue> implements ModalControll
/**
* Käsitellään jäseneen tullut muutos
* Käsitellään tietueeseen tullut muutos
* @param edit muuttunut kenttä
*/
private void kasitteleMuutosJaseneen(TextField edit) {
if (jasenKohdalla == null) return;
int k = getFieldId(edit,jasenKohdalla.ekaKentta());
private void kasitteleMuutosTietueeseen(TextField edit) {
if (tietueKohdalla == null) return;
int k = getFieldId(edit,tietueKohdalla.ekaKentta());
String s = edit.getText();
String virhe = jasenKohdalla.aseta(k, s);
String virhe = tietueKohdalla.aseta(k, s);
naytaVirhe(virhe);
}
public static<TYPE extends Tietue> void naytaJasen(TextField[] edits, TYPE jasen) {
if (jasen == null) return;
for (int k = jasen.ekaKentta(); k < jasen.getKenttia(); k++) {
edits[k].setText(jasen.anna(k));
public static<TYPE extends Tietue> void naytaTietue(TextField[] edits, TYPE tietue) {
if (tietue == null) return;
for (int k = tietue.ekaKentta(); k < tietue.getKenttia(); k++) {
edits[k].setText(tietue.anna(k));
}
}
/*
* Näyttää jäsenen tiedot ja palauttaa null jos käyttäjä painaa Cancel,
* muuten viitteen muutettuun jäseneen
* Näyttää tietueen tiedot ja palauttaa null jos käyttäjä painaa Cancel,
* muuten viitteen muutettuun tietueeseen
* @param modalityStage mille ollaan modaalisia, null = sovellukselle
* @param oletus mitä dataan näytetään oletuksena
* @param kentta mikä kenttä saa fokuksen kun näytetään
* @return null jos painetaan Cancel, muuten täytetty tietue
*/
public static<TYPE extends Tietue> TYPE kysyJasen(Stage modalityStage, TYPE oletus, int kentta) {
return ModalController.<TYPE, JasenDialogController<TYPE>>showModal(
JasenDialogController.class.getResource("JasenDialogView.fxml"),
"Jäsen",
public static<TYPE extends Tietue> TYPE kysyTietue(Stage modalityStage, TYPE oletus, int kentta) {
return ModalController.<TYPE, TietueDialogController<TYPE>>showModal(
TietueDialogController.class.getResource("TietueDialogView.fxml"),
"Kerho",
modalityStage,
oletus,
ctrl -> ctrl.setKentta(kentta));
......
......@@ -7,7 +7,7 @@
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane stylesheets="@kerho.css" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKerho.JasenDialogController">
<BorderPane stylesheets="@kerho.css" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKerho.TietueDialogController">
<bottom>
<VBox BorderPane.alignment="CENTER">
<children>
......@@ -26,9 +26,9 @@
</VBox>
</bottom>
<center>
<ScrollPane fx:id="panelJasen" fitToWidth="true" pannable="true" BorderPane.alignment="CENTER">
<ScrollPane fx:id="panelTietue" fitToWidth="true" pannable="true" BorderPane.alignment="CENTER">
<content>
<GridPane fx:id="gridJasen" hgap="10.0">
<GridPane fx:id="gridTietue" hgap="10.0">
<columnConstraints>
<ColumnConstraints fillWidth="false" halignment="RIGHT" hgrow="NEVER" minWidth="10.0" />
<ColumnConstraints hgrow="ALWAYS" minWidth="10.0" />
......
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