package com.wing.game.mapeditor.dialog; import java.io.IOException; import com.wing.game.mapeditor.property.TiledMap; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.TextField; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; import javafx.stage.StageStyle; public class NewMapDialog extends AnchorPane { @FXML private TextField tileWidthTf, tileHeightTf, mapWidthTf, mapHeightTf; private Stage newAlertDialog; private OnNewMapDialogActionListener onNewMapDialogActionListener; public NewMapDialog() { FXMLLoader fXMLLoader = new FXMLLoader(getClass().getResource("NewMapDialog.fxml")); fXMLLoader.setRoot(NewMapDialog.this); fXMLLoader.setController(NewMapDialog.this); try { fXMLLoader.load(); } catch (IOException exception) { throw new RuntimeException(exception); } } public void showAlertDialog() { if (newAlertDialog == null) { newAlertDialog = new Stage(StageStyle.TRANSPARENT); newAlertDialog.setResizable(false); newAlertDialog.setScene(new Scene(this)); newAlertDialog.show(); } else { newAlertDialog.show(); } } public void hideAlertDialog() { if (newAlertDialog != null) { newAlertDialog.hide(); } } @FXML private void onNewMapAction(ActionEvent event) { int tileWidth = Integer.parseInt(tileWidthTf.getText()); int tileHeight = Integer.parseInt(tileHeightTf.getText()); int mapWidth = Integer.parseInt(mapWidthTf.getText()); int mapHeight = Integer.parseInt(mapHeightTf.getText()); TiledMap.getInstance().setMapProperty(tileWidth, tileHeight, mapWidth, mapHeight); if (onNewMapDialogActionListener != null) { onNewMapDialogActionListener.onNewMapOkAction(); } hideAlertDialog(); } @FXML private void onNewMapCancelAction(ActionEvent event) { if (onNewMapDialogActionListener != null) { onNewMapDialogActionListener.onNewMapCancelAction(); } hideAlertDialog(); } public OnNewMapDialogActionListener getOnNewMapDialogActionListener() { return onNewMapDialogActionListener; } public void setOnNewMapDialogActionListener(OnNewMapDialogActionListener onNewMapDialogActionListener) { this.onNewMapDialogActionListener = onNewMapDialogActionListener; } public interface OnNewMapDialogActionListener { public void onNewMapOkAction(); public void onNewMapCancelAction(); } }