Skip to content
Snippets Groups Projects
Commit 4d32a4ce authored by Max Wittig's avatar Max Wittig
Browse files

level pack input dialog stage working

parent e2073988
No related branches found
No related tags found
1 merge request!51Refractoring Controllers
......@@ -29,9 +29,6 @@ public class Main extends Application
Parent root = (Parent)loader.load();
Scene scene = new Scene(root, 800, 600);
((MainController)loader.getController()).init(stage, null);
stage.setTitle(bundle.getString("app.name"));
stage.setScene(scene);
stage.setResizable(true);
......@@ -44,8 +41,8 @@ public class Main extends Application
System.exit(0);
}
});
stage.show();
((MainController)loader.getController()).init(stage, null);
}
catch(Exception e)
{
......
......@@ -2,7 +2,9 @@ package de.brickedleveleditor.ui.controller;
import de.bricked.game.paddle.PaddleSize;
import de.brickedleveleditor.utils.AlertGenerator;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Spinner;
import javafx.scene.control.TextField;
......@@ -18,7 +20,13 @@ public class LevelPackDialogController extends AbstractController
@Override
protected void initController()
{
initPaddleSizeComboBox();
}
private void initPaddleSizeComboBox()
{
paddleSizeComboBox.getItems().addAll(PaddleSize.values());
paddleSizeComboBox.getSelectionModel().selectFirst();
}
@FXML
......@@ -26,17 +34,25 @@ public class LevelPackDialogController extends AbstractController
{
String levelName = levelNameTextField.getText();
String author = authorTextField.getText();
if(levelName.equals("") || author.equals(""))
{
AlertGenerator.showAlert(Alert.AlertType.WARNING, "Levelname or Author missing!", null);
}
else
{
int position = ((MainController) parentController).getLevelPackWriter().getLevels().size();
int difficulty = (int) difficultySpinner.getValue();
int startLives = (int) startLivesSpinner.getValue();
PaddleSize initPadSize = (PaddleSize) paddleSizeComboBox.getSelectionModel().getSelectedItem();
((MainController) parentController).getLevelPackWriter().addLevel(levelName, author, position, difficulty, startLives, initPadSize, ((MainController) parentController).getBrickArrayList());
stage.close();
}
}
@FXML
private void onBackButtonClicked()
{
stage.close();
}
}
......@@ -50,8 +50,6 @@ public class MainController extends AbstractController
private Image currentlySelectedPowerupImage;
private final int WIDTH = 18;
private final int HEIGHT = 18;
public Stage stage;
public final ResourceBundle bundle = ResourceBundle.getBundle("de/brickedleveleditor/main/", Locale.GERMANY);
private HashMap<BrickType, Image> bricksTextures;
private ArrayList<Image> powerupTextures;
......
......@@ -6,6 +6,7 @@
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="317.0" prefWidth="397.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.brickedleveleditor.ui.controller.LevelPackDialogController">
<children>
......@@ -14,12 +15,20 @@
<TextField fx:id="authorTextField" layoutX="212.0" layoutY="56.0" AnchorPane.rightAnchor="14.0" />
<TextField fx:id="levelNameTextField" layoutX="212.0" layoutY="17.0" AnchorPane.rightAnchor="14.0" />
<Label layoutX="14.0" layoutY="99.0" prefHeight="16.0" prefWidth="112.0" text="Difficulty:" AnchorPane.leftAnchor="14.0" />
<Spinner fx:id="difficultySpinner" layoutX="212.0" layoutY="94.0" prefHeight="26.0" prefWidth="171.0" AnchorPane.rightAnchor="14.0" />
<Spinner fx:id="difficultySpinner" layoutX="212.0" layoutY="94.0" prefHeight="26.0" prefWidth="171.0" AnchorPane.rightAnchor="14.0">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory min="1" max="10"/>
</valueFactory>
</Spinner>
<Label layoutX="14.0" layoutY="138.0" prefHeight="16.0" prefWidth="112.0" text="Start-Lives:" AnchorPane.leftAnchor="14.0" />
<Label layoutX="14.0" layoutY="174.0" prefHeight="16.0" prefWidth="112.0" text="Paddle-Size" AnchorPane.leftAnchor="14.0" />
<ComboBox fx:id="paddleSizeComboBox" layoutX="212.0" layoutY="169.0" prefHeight="26.0" prefWidth="171.0" AnchorPane.rightAnchor="14.0" />
<Button layoutX="126.0" layoutY="277.0" mnemonicParsing="false" onAction="#onSaveButtonClicked" text="Save" AnchorPane.bottomAnchor="14.0" />
<Button layoutX="212.0" layoutY="277.0" mnemonicParsing="false" onAction="#onBackButtonClicked" text="Back" AnchorPane.bottomAnchor="14.0" />
<Spinner fx:id="startLivesSpinner" layoutX="212.0" layoutY="133.0" />
<Spinner fx:id="startLivesSpinner" layoutX="212.0" layoutY="133.0">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory min="1" max="5"/>
</valueFactory>
</Spinner>
</children>
</AnchorPane>
package de.brickedleveleditor.utils;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.image.Image;
import javafx.stage.Stage;
public class AlertGenerator
{
public static void showAlert(AlertType type, String contentText, Image icon)
{
show(type, type.name(), "", contentText, icon, true);
}
public static void showAlert(AlertType type, String title, String headerText, String contentText, Image icon, boolean centerOnScreen)
{
show(type, title, headerText, contentText, icon, centerOnScreen);
}
private static void show(AlertType type, String title, String headerText, String contentText, Image icon, boolean centerOnScreen)
{
Alert alert = new Alert(type);
alert.setTitle(title);
alert.setHeaderText(headerText);
alert.setContentText(contentText);
Stage dialogStage = (Stage) alert.getDialogPane().getScene().getWindow();
if(icon != null)
{
dialogStage.getIcons().add(icon);
}
if (centerOnScreen)
{
dialogStage.centerOnScreen();
}
alert.showAndWait();
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment