Choose final transiciones
This commit is contained in:
parent
30a5db3352
commit
72d95456ae
@ -51,7 +51,7 @@ class Automata {
|
|||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
estados_existentes = new ArrayList<Integer>();
|
estados_existentes = new ArrayList<>();
|
||||||
for(int i=0 ; i < getEstados().size() ; i++){
|
for(int i=0 ; i < getEstados().size() ; i++){
|
||||||
if(getEstados().get(i) != null) estados_existentes.add(getEstados().get(i).getQ());
|
if(getEstados().get(i) != null) estados_existentes.add(getEstados().get(i).getQ());
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,13 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class EstadosFinales {
|
public class EstadosFinales {
|
||||||
private ArrayList<Integer> estadosExistents;
|
private ArrayList<Integer> estadosExistents;
|
||||||
|
|
||||||
private ArrayList<Integer> estadosElegidos;
|
private ArrayList<Integer> estadosElegidos;
|
||||||
|
|
||||||
public EstadosFinales(ArrayList<Integer> estadosExistents) {
|
private Maquina maquina;
|
||||||
this.estadosExistents = estadosExistents;
|
|
||||||
|
public EstadosFinales(Maquina maquina) {
|
||||||
|
this.maquina = maquina;
|
||||||
|
this.estadosExistents = maquina.getMaquina().getEstados_existentes();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Integer> getEstadosExistents() {
|
public ArrayList<Integer> getEstadosExistents() {
|
||||||
@ -33,4 +35,12 @@ public class EstadosFinales {
|
|||||||
public void setEstadosElegidos(ArrayList<Integer> estadosElegidos) {
|
public void setEstadosElegidos(ArrayList<Integer> estadosElegidos) {
|
||||||
this.estadosElegidos = estadosElegidos;
|
this.estadosElegidos = estadosElegidos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Maquina getMaquina() {
|
||||||
|
return maquina;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaquina(Maquina maquina) {
|
||||||
|
this.maquina = maquina;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,8 @@ import javafx.scene.layout.HBox;
|
|||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controlar las acciones cuando el usuario elige los estados finales
|
* Controlar las acciones cuando el usuario elige los estados finales
|
||||||
*/
|
*/
|
||||||
@ -21,10 +23,26 @@ public class EstadosFinalesController {
|
|||||||
@FXML
|
@FXML
|
||||||
private VBox contenido;
|
private VBox contenido;
|
||||||
|
|
||||||
|
private EstadosFinales estadosFinales;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void elegir() {
|
public void elegir() {
|
||||||
Stage stage = (Stage) contenido.getScene().getWindow();
|
ArrayList<Integer> elegidos = new ArrayList<>();
|
||||||
stage.close();
|
for (int i = 0; i < estadosFinales.getEstadosExistents().size(); i++) {
|
||||||
|
CheckBox checkBox = (CheckBox) contenido.getScene().lookup("#q" + estadosFinales.getEstadosExistents().get(i));
|
||||||
|
if (checkBox.isSelected()) {
|
||||||
|
elegidos.add(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elegidos.size() > 0) {
|
||||||
|
estadosFinales.setEstadosElegidos(elegidos);
|
||||||
|
Stage stage = (Stage) contenido.getScene().getWindow();
|
||||||
|
stage.close();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
MT.mostrarMensaje("Elegir", "Usted tiene que elegir uno o mas estados finales!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,7 +50,7 @@ public class EstadosFinalesController {
|
|||||||
*/
|
*/
|
||||||
public void handleWindowShownEvent() {
|
public void handleWindowShownEvent() {
|
||||||
Stage stage = (Stage) contenido.getScene().getWindow();
|
Stage stage = (Stage) contenido.getScene().getWindow();
|
||||||
EstadosFinales estadosFinales = (EstadosFinales) stage.getScene().getUserData();
|
estadosFinales = (EstadosFinales) stage.getScene().getUserData();
|
||||||
|
|
||||||
for (int i = 0; i < estadosFinales.getEstadosExistents().size(); i++) {
|
for (int i = 0; i < estadosFinales.getEstadosExistents().size(); i++) {
|
||||||
HBox hBox = new HBox();
|
HBox hBox = new HBox();
|
||||||
@ -42,6 +60,7 @@ public class EstadosFinalesController {
|
|||||||
hBox.prefWidthProperty().bind(contenido.widthProperty());
|
hBox.prefWidthProperty().bind(contenido.widthProperty());
|
||||||
hBox.prefHeightProperty().bind(contenido.heightProperty());
|
hBox.prefHeightProperty().bind(contenido.heightProperty());
|
||||||
CheckBox checkBox = new CheckBox("q" + estadosFinales.getEstadosExistents().get(i));
|
CheckBox checkBox = new CheckBox("q" + estadosFinales.getEstadosExistents().get(i));
|
||||||
|
checkBox.setId("q" + estadosFinales.getEstadosExistents().get(i));
|
||||||
hBox.getChildren().add(checkBox);
|
hBox.getChildren().add(checkBox);
|
||||||
contenido.getChildren().add(hBox);
|
contenido.getChildren().add(hBox);
|
||||||
}
|
}
|
||||||
|
@ -35,9 +35,10 @@ public class LoteController extends VBox {
|
|||||||
@FXML
|
@FXML
|
||||||
protected void runLote() throws Exception {
|
protected void runLote() throws Exception {
|
||||||
Scene scene = vboxLote.getScene();
|
Scene scene = vboxLote.getScene();
|
||||||
Maquina maquina = (Maquina) scene.getUserData();
|
EstadosFinales estadosFinales = (EstadosFinales) scene.getUserData();
|
||||||
|
Maquina maquina = estadosFinales.getMaquina();
|
||||||
for (TablaData fila : tablaData) {
|
for (TablaData fila : tablaData) {
|
||||||
boolean exito = maquina.comprobarCadena(new StringBuilder(fila.getPrimer()), new int[] {5});
|
boolean exito = maquina.comprobarCadena(new StringBuilder(fila.getPrimer()), estadosFinales.getEstadosElegidos().stream().mapToInt(i -> i).toArray());
|
||||||
if (exito) {
|
if (exito) {
|
||||||
fila.setSegundo("Aceptada");
|
fila.setSegundo("Aceptada");
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,10 @@ import java.util.regex.Pattern;
|
|||||||
* Controlar las acciones cuando una opción es elegido en el menu.
|
* Controlar las acciones cuando una opción es elegido en el menu.
|
||||||
*/
|
*/
|
||||||
public class MenuController {
|
public class MenuController {
|
||||||
|
protected EstadosFinales estadosFinales;
|
||||||
|
|
||||||
private Maquina maquina = null;
|
private Maquina maquina = null;
|
||||||
|
|
||||||
private TableView<TablaData> tableView;
|
private TableView<TablaData> tableView;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@ -109,7 +112,8 @@ public class MenuController {
|
|||||||
FXMLLoader fxmlLoader = new FXMLLoader();
|
FXMLLoader fxmlLoader = new FXMLLoader();
|
||||||
fxmlLoader.setLocation(getClass().getResource("estadosFinales.fxml"));
|
fxmlLoader.setLocation(getClass().getResource("estadosFinales.fxml"));
|
||||||
Scene nuevaScene = new Scene(fxmlLoader.load(), 250, 250);
|
Scene nuevaScene = new Scene(fxmlLoader.load(), 250, 250);
|
||||||
nuevaScene.setUserData(new EstadosFinales(maquina.getMaquina().getEstados_existentes()));
|
estadosFinales = new EstadosFinales(maquina);
|
||||||
|
nuevaScene.setUserData(estadosFinales);
|
||||||
nuevaScene.getStylesheets().add("/cl/cromer/mt/mt.css");
|
nuevaScene.getStylesheets().add("/cl/cromer/mt/mt.css");
|
||||||
Stage stage = new Stage();
|
Stage stage = new Stage();
|
||||||
stage.initModality(Modality.WINDOW_MODAL);
|
stage.initModality(Modality.WINDOW_MODAL);
|
||||||
@ -158,7 +162,7 @@ public class MenuController {
|
|||||||
FXMLLoader fxmlLoader = new FXMLLoader();
|
FXMLLoader fxmlLoader = new FXMLLoader();
|
||||||
fxmlLoader.setLocation(getClass().getResource("lote.fxml"));
|
fxmlLoader.setLocation(getClass().getResource("lote.fxml"));
|
||||||
Scene scene = new Scene(fxmlLoader.load(), 640, 480);
|
Scene scene = new Scene(fxmlLoader.load(), 640, 480);
|
||||||
scene.setUserData(maquina);
|
scene.setUserData(estadosFinales);
|
||||||
scene.getStylesheets().add("/cl/cromer/mt/mt.css");
|
scene.getStylesheets().add("/cl/cromer/mt/mt.css");
|
||||||
Stage stage = new Stage();
|
Stage stage = new Stage();
|
||||||
stage.initModality(Modality.WINDOW_MODAL);
|
stage.initModality(Modality.WINDOW_MODAL);
|
||||||
|
Loading…
Reference in New Issue
Block a user