Start final transition choosing
This commit is contained in:
parent
1a1a93fa1c
commit
30a5db3352
@ -12,5 +12,5 @@ El código se encuentra en la carpeta src o en github: [fundamentos](https://git
|
||||
|
||||
## JavaDoc
|
||||
|
||||
La documentación del proyecto se puede ver en la carpeta doc o en la enlace: [JavaDoc](https://github.com/cromerc/fundamentos/doc/index.html)
|
||||
La documentación del proyecto se puede ver en la carpeta doc o en la enlace: [JavaDoc](https://cromer.cl/mt/doc/index.html)
|
||||
Vamos a cambiar la enlace a otra lugar despues, ignora que muestra el codigo.
|
@ -64,4 +64,12 @@ class Automata {
|
||||
private void setEstados(ArrayList<Estado> estados) {
|
||||
this.estados = estados;
|
||||
}
|
||||
|
||||
public ArrayList<Integer> getEstados_existentes() {
|
||||
return estados_existentes;
|
||||
}
|
||||
|
||||
public void setEstados_existentes(ArrayList<Integer> estados_existentes) {
|
||||
this.estados_existentes = estados_existentes;
|
||||
}
|
||||
}
|
||||
|
36
src/cl/cromer/mt/EstadosFinales.java
Normal file
36
src/cl/cromer/mt/EstadosFinales.java
Normal file
@ -0,0 +1,36 @@
|
||||
/* Copyright (c) 2017 Christopher Cromer
|
||||
* Copyright (c) 2017 Carlos Faúndez
|
||||
*
|
||||
* This file is part of mt. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution.
|
||||
* This file may not be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
package cl.cromer.mt;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class EstadosFinales {
|
||||
private ArrayList<Integer> estadosExistents;
|
||||
|
||||
private ArrayList<Integer> estadosElegidos;
|
||||
|
||||
public EstadosFinales(ArrayList<Integer> estadosExistents) {
|
||||
this.estadosExistents = estadosExistents;
|
||||
}
|
||||
|
||||
public ArrayList<Integer> getEstadosExistents() {
|
||||
return estadosExistents;
|
||||
}
|
||||
|
||||
public void setEstadosExistents(ArrayList<Integer> estadosExistents) {
|
||||
this.estadosExistents = estadosExistents;
|
||||
}
|
||||
|
||||
public ArrayList<Integer> getEstadosElegidos() {
|
||||
return estadosElegidos;
|
||||
}
|
||||
|
||||
public void setEstadosElegidos(ArrayList<Integer> estadosElegidos) {
|
||||
this.estadosElegidos = estadosElegidos;
|
||||
}
|
||||
}
|
49
src/cl/cromer/mt/EstadosFinalesController.java
Normal file
49
src/cl/cromer/mt/EstadosFinalesController.java
Normal file
@ -0,0 +1,49 @@
|
||||
/* Copyright (c) 2017 Christopher Cromer
|
||||
* Copyright (c) 2017 Carlos Faúndez
|
||||
*
|
||||
* This file is part of mt. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution.
|
||||
* This file may not be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
package cl.cromer.mt;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.VBox;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* Controlar las acciones cuando el usuario elige los estados finales
|
||||
*/
|
||||
public class EstadosFinalesController {
|
||||
@FXML
|
||||
private VBox contenido;
|
||||
|
||||
@FXML
|
||||
public void elegir() {
|
||||
Stage stage = (Stage) contenido.getScene().getWindow();
|
||||
stage.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Este metodo es para el evento de windowshown.
|
||||
*/
|
||||
public void handleWindowShownEvent() {
|
||||
Stage stage = (Stage) contenido.getScene().getWindow();
|
||||
EstadosFinales estadosFinales = (EstadosFinales) stage.getScene().getUserData();
|
||||
|
||||
for (int i = 0; i < estadosFinales.getEstadosExistents().size(); i++) {
|
||||
HBox hBox = new HBox();
|
||||
hBox.setAlignment(Pos.CENTER);
|
||||
hBox.prefWidthProperty().bind(contenido.prefWidthProperty());
|
||||
hBox.prefHeightProperty().bind(contenido.prefHeightProperty());
|
||||
hBox.prefWidthProperty().bind(contenido.widthProperty());
|
||||
hBox.prefHeightProperty().bind(contenido.heightProperty());
|
||||
CheckBox checkBox = new CheckBox("q" + estadosFinales.getEstadosExistents().get(i));
|
||||
hBox.getChildren().add(checkBox);
|
||||
contenido.getChildren().add(hBox);
|
||||
}
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ package cl.cromer.mt;
|
||||
import com.sun.javafx.scene.control.skin.TableHeaderRow;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.event.Event;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Scene;
|
||||
@ -24,9 +25,7 @@ import javafx.scene.layout.VBox;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.scene.text.Text;
|
||||
import javafx.stage.FileChooser;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.*;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import java.io.File;
|
||||
@ -57,12 +56,12 @@ public class MenuController {
|
||||
@FXML
|
||||
protected void cargarTransiciones() throws Exception {
|
||||
Scene scene = menuBar.getScene();
|
||||
Stage stage = (Stage) scene.getWindow();
|
||||
Stage parentStage = (Stage) scene.getWindow();
|
||||
FileChooser fileChooser = new FileChooser();
|
||||
fileChooser.setTitle("Abrir archivo XML");
|
||||
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Archivos XML (*.xml)", "*.xml"));
|
||||
//fileChooser.setSelectedExtensionFilter(new FileChooser.ExtensionFilter("Archivos XML (*.xml)", "*.xml"));
|
||||
File archivo = fileChooser.showOpenDialog(stage);
|
||||
File archivo = fileChooser.showOpenDialog(parentStage);
|
||||
LeerXML xml = new LeerXML();
|
||||
Document documento = xml.leerArchivo(archivo);
|
||||
if (documento != null) {
|
||||
@ -105,8 +104,31 @@ public class MenuController {
|
||||
tableView.getColumns().get(1).setText("(qj,sj,movimiento)");
|
||||
|
||||
contenido.getChildren().add(tableView);
|
||||
}else{
|
||||
if(tableView != null) tableView.setItems(null);
|
||||
|
||||
// Obtener los estados finales:
|
||||
FXMLLoader fxmlLoader = new FXMLLoader();
|
||||
fxmlLoader.setLocation(getClass().getResource("estadosFinales.fxml"));
|
||||
Scene nuevaScene = new Scene(fxmlLoader.load(), 250, 250);
|
||||
nuevaScene.setUserData(new EstadosFinales(maquina.getMaquina().getEstados_existentes()));
|
||||
nuevaScene.getStylesheets().add("/cl/cromer/mt/mt.css");
|
||||
Stage stage = new Stage();
|
||||
stage.initModality(Modality.WINDOW_MODAL);
|
||||
stage.initOwner(parentStage);
|
||||
stage.setTitle("Elegir Estados Finales");
|
||||
stage.setScene(nuevaScene);
|
||||
stage.setMinHeight(250);
|
||||
stage.setMinWidth(250);
|
||||
stage.getIcons().add(new Image(getClass().getResourceAsStream("/cl/cromer/mt/images/icon.png")));
|
||||
final EstadosFinalesController estadosFinalesController = fxmlLoader.getController();
|
||||
stage.addEventHandler(WindowEvent.WINDOW_SHOWN, window -> estadosFinalesController.handleWindowShownEvent());
|
||||
stage.initStyle(StageStyle.UTILITY);
|
||||
stage.setOnCloseRequest(Event::consume);
|
||||
stage.show();
|
||||
}
|
||||
else {
|
||||
if (tableView != null) {
|
||||
tableView.setItems(null);
|
||||
}
|
||||
menuIndiv.setDisable(true);
|
||||
menuLote.setDisable(true);
|
||||
if(archivo != null) MT.mostrarMensaje("Error","El archivo "+ archivo.getName()+ " no es un xml valido");
|
||||
|
29
src/cl/cromer/mt/estadosFinales.fxml
Normal file
29
src/cl/cromer/mt/estadosFinales.fxml
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
Copyright (c) 2017 Christopher Cromer
|
||||
Copyright (c) 2017 Carlos Faúndez
|
||||
|
||||
This file is part of mt. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution.
|
||||
This file may not be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.
|
||||
-->
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ScrollPane?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<VBox xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.131" fx:controller="cl.cromer.mt.EstadosFinalesController">
|
||||
<ScrollPane fitToHeight="true" fitToWidth="true" VBox.vgrow="ALWAYS">
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
|
||||
</padding>
|
||||
<VBox alignment="TOP_CENTER" VBox.vgrow="ALWAYS">
|
||||
<VBox fx:id="contenido" alignment="TOP_CENTER" VBox.vgrow="ALWAYS"/>
|
||||
<Button onAction="#elegir" text="Elegir">
|
||||
<VBox.margin>
|
||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||
</VBox.margin>
|
||||
</Button>
|
||||
</VBox>
|
||||
</ScrollPane>
|
||||
</VBox>
|
@ -12,7 +12,6 @@ This file may not be copied, modified, propagated, or distributed except accordi
|
||||
<VBox xmlns:fx="http://javafx.com/fxml/1" prefHeight="480.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8.0.92">
|
||||
<fx:include source="menu.fxml"/>
|
||||
<ScrollPane fitToHeight="true" fitToWidth="true" VBox.vgrow="ALWAYS">
|
||||
<VBox alignment="CENTER" VBox.vgrow="ALWAYS" fx:id="contenido">
|
||||
</VBox>
|
||||
<VBox alignment="CENTER" VBox.vgrow="ALWAYS" fx:id="contenido"/>
|
||||
</ScrollPane>
|
||||
</VBox>
|
Loading…
Reference in New Issue
Block a user