Skip to content
Snippets Groups Projects
Commit 2348dde9 authored by Hiltunen Markus Petteri's avatar Hiltunen Markus Petteri
Browse files

Suorituksen lisääminen ja näyttäminen listana hyvässä vaiheessa. Suorituksen...

Suorituksen lisääminen ja näyttäminen listana hyvässä vaiheessa. Suorituksen valinta ja tarkempien tietojen näyttäminen tekstilaatikossa.
parent 45016311
No related branches found
No related tags found
No related merge requests found
package etusivu;
import java.io.PrintStream;
import java.net.URL;
import java.util.ResourceBundle;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ListChooser;
import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.TextAreaOutputStream;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextArea;
import javafx.scene.input.MouseEvent;
import javafx.scene.text.Font;
import reittiLoki.Reittiloki;
import reittiLoki.SailoException;
import reittiLoki.Suoritus;
import javafx.scene.control.ScrollPane;
/**
* @author OMISTAJA
* @version 31.1.2025
*
*/
public class HtGUIController{
public class HtGUIController implements Initializable {
@FXML private MenuItem fxLisaaHalli;
@FXML private Button fxLisaaSuoritus;
......@@ -32,9 +47,12 @@ public class HtGUIController{
@FXML private ListView<?> fxSuoritus;
@FXML private MenuItem fxTietoja;
@FXML private ListChooser<Suoritus> chooserSuoritukset;
@FXML private ScrollPane panelSuoritus;
@FXML void Lisaa(MouseEvent event) {
ModalController.showModal(SuoritusGUIController.class.getResource("SuoritusGUIView.fxml"), "Suoritus", null, "");
uusiSuoritus();
}
@FXML void MuokkaaSuoritusta(MouseEvent event) {
......@@ -56,17 +74,74 @@ public class HtGUIController{
@FXML void mTiedot(ActionEvent event) {
Lisaa();
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
alusta();
}
//-------------------------------------------------------------------------------
private void Lisaa() {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Huomautus");
alert.setHeaderText(null);
alert.setContentText("Toiminta tulossa");
alert.showAndWait();
private Reittiloki loki;
private TextArea areaSuoritus = new TextArea(); //Poistetaan ehkä?
private void alusta() {
panelSuoritus.setContent(areaSuoritus);
areaSuoritus.setFont(new Font("Times new Roman", 12));
panelSuoritus.setFitToHeight(true);
chooserSuoritukset.clear();
chooserSuoritukset.addSelectionListener(e -> naytaSuoritus());
}
private void Lisaa() {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Huomautus");
alert.setHeaderText(null);
alert.setContentText("Toiminta tulossa");
alert.showAndWait();
}
private void naytaSuoritus() {
Suoritus kohdalla = chooserSuoritukset.getSelectedObject();
if (kohdalla == null) return;
areaSuoritus.setText("");
try (PrintStream os = TextAreaOutputStream.getTextPrintStream(areaSuoritus)){
kohdalla.tulosta(os);
}
}
/**
* @param loki Valitaan kerho jota käytetään.
*/
public void setReittiloki(Reittiloki loki) {
this.loki= loki;
}
public void hae(int sNro) {
chooserSuoritukset.clear();
int index = 0;
for (int i= 0; i < loki.getSuorituksia(); i++) {
Suoritus suoritus = loki.annaSuoritus(i);
if(suoritus.getId() == sNro) index = i;
chooserSuoritukset.add(" "+ suoritus.getNimi(), suoritus);
}
chooserSuoritukset.setSelectedIndex(index);
}
private void uusiSuoritus() {
Suoritus uusi = new Suoritus();
uusi.rekisteroi();
uusi.taytaSuoritus(); // todo tähän tulee jatkossa siirtymä uuden suorituksen lisäämiseen.
try {
loki.lisaa(uusi);
} catch (SailoException e) {
Dialogs.showMessageDialog("Ongelmia uuden Suorituksen luonnissa: " + e.getMessage());
}
hae(uusi.getId());
}
......
<?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?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
......@@ -55,14 +57,7 @@
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ListView fx:id="fxListaus" maxHeight="-Infinity" prefHeight="600.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<padding>
<Insets left="50.0" />
</padding>
<GridPane.margin>
<Insets right="25.0" />
</GridPane.margin>
</ListView>
<ListChooser fx:id="chooserSuoritukset" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Nimi | Vaikeusaste | Halli" GridPane.columnIndex="1" />
<Button fx:id="fxLisaaSuoritus" mnemonicParsing="false" onMouseClicked="#Lisaa" text="Lisää suoritus" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="CENTER">
<GridPane.margin>
......@@ -71,11 +66,11 @@
</Button>
<BorderPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="2" GridPane.rowIndex="1">
<center>
<ListView fx:id="fxSuoritus" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<BorderPane.margin>
<Insets left="25.0" />
</BorderPane.margin>
</ListView>
<ScrollPane fx:id="panelSuoritus" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="200.0" />
</content>
</ScrollPane>
</center>
</BorderPane>
<Button fx:id="fxMuokkaaSuoritus" mnemonicParsing="false" onMouseClicked="#MuokkaaSuoritusta" text="Muokkaa suoritusta" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="CENTER">
......
......@@ -2,6 +2,7 @@ package etusivu;
import javafx.application.Application;
import javafx.stage.Stage;
import reittiLoki.Reittiloki;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.fxml.FXMLLoader;
......@@ -18,12 +19,17 @@ public class HtMain extends Application {
try {
FXMLLoader ldr = new FXMLLoader(getClass().getResource("HtGUIView.fxml"));
final Pane root = ldr.load();
//final HtGUIController htCtrl = (HtGUIController) ldr.getController();
final HtGUIController htCtrl = (HtGUIController) ldr.getController();
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("ht.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("ht");
primaryStage.show();
Reittiloki loki = new Reittiloki();
htCtrl.setReittiloki(loki);
} catch(Exception e) {
e.printStackTrace();
}
......
......@@ -74,7 +74,7 @@ public class Suoritus {
*/
public void taytaSuoritus() {
nimi = "Kattoralli" + tarkistusNro();
nimi = "Kattoralli " + tarkistusNro();
vaikeusAste = "6B";
kiipeilyTyyli = "Boulder";
reitinTyyppi = "Hankki";
......@@ -93,6 +93,13 @@ public class Suoritus {
int tulos = (int) nro;
return tulos;
}
/**
* @return palauttaa suorituksen nimen.
*/
public String getNimi() {
return this.nimi;
}
/**
......@@ -118,4 +125,7 @@ public class Suoritus {
}
}
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