diff --git a/.idea/artifacts/JavaFXApp.xml b/.idea/artifacts/JavaFXApp.xml deleted file mode 100644 index 2a8c880..0000000 --- a/.idea/artifacts/JavaFXApp.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - $PROJECT_DIR$/out/artifacts/JavaFXApp - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/artifacts/MaquinaTuring.xml b/.idea/artifacts/MaquinaTuring.xml new file mode 100644 index 0000000..27aca7c --- /dev/null +++ b/.idea/artifacts/MaquinaTuring.xml @@ -0,0 +1,22 @@ + + + $PROJECT_DIR$/out/artifacts/MaquinaTuring + + + + + + + + + + + \ No newline at end of file diff --git a/src/mt/LoteController.java b/src/mt/LoteController.java index 89ac8da..2f5cc81 100644 --- a/src/mt/LoteController.java +++ b/src/mt/LoteController.java @@ -1,25 +1,78 @@ +/* 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 mt; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.Scene; +import javafx.scene.control.TableView; +import javafx.scene.control.TextField; import javafx.scene.layout.VBox; +import javafx.stage.Stage; -public class LoteController { +/** + * Controlar las acciones de reconocimiento por lote + */ +public class LoteController extends VBox { @FXML private VBox vboxLote; + @FXML + private TextField cadena; + + private ObservableList tablaData = FXCollections.observableArrayList(); + /** - * Boton Run MT de lote + * Boton de run MT + * @throws Exception La excepción */ @FXML protected void runLote() throws Exception { Scene scene = vboxLote.getScene(); Maquina maquina = (Maquina) scene.getUserData(); - if (maquina.comprobarCadena(new StringBuilder("000111###"), 5)) { - MT.mostrarMensaje("Resultado", "Reconce"); - } - else { - MT.mostrarMensaje("Resultado", " No reconce"); + for (TablaData fila : tablaData) { + Maquina clone = maquina.clone(); + boolean exito = clone.comprobarCadena(new StringBuilder(fila.getPrimer()), new int[] {5}); + if (exito) { + fila.setSegundo("Aceptada"); + } + else { + fila.setSegundo("Rechazada"); + } } } + + /** + * Boton de agregar cadena + */ + @FXML + protected void agregarCadena() { + if (!cadena.getText().trim().equals("")) { + tablaData.add(new TablaData(cadena.getText(), "")); + Scene scene = vboxLote.getScene(); + @SuppressWarnings("unchecked") + TableView tableView = (TableView) scene.lookup("#tableView"); + tableView.setEditable(true); + tableView.setItems(tablaData); + } + else { + MT.mostrarMensaje("Error", "Ingresa una cadena por favor!"); + } + } + + /** + * Boton de cerrar + */ + @FXML + protected void cerrar() { + Scene scene = vboxLote.getScene(); + Stage stage = (Stage) scene.getWindow(); + stage.close(); + } } diff --git a/src/mt/MT.java b/src/mt/MT.java index 918f907..9d9783c 100644 --- a/src/mt/MT.java +++ b/src/mt/MT.java @@ -14,6 +14,7 @@ import javafx.scene.Scene; import javafx.scene.control.ButtonBar; import javafx.scene.control.ButtonType; import javafx.scene.control.Dialog; +import javafx.scene.image.Image; import javafx.stage.Stage; /** @@ -60,6 +61,7 @@ public class MT extends Application { primaryStage.setScene(scene); primaryStage.setMinHeight(480); primaryStage.setMinWidth(640); + primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/mt/images/icon.png"))); primaryStage.show(); } } diff --git a/src/mt/Maquina.java b/src/mt/Maquina.java index 2b6419d..3b68c7a 100644 --- a/src/mt/Maquina.java +++ b/src/mt/Maquina.java @@ -9,8 +9,8 @@ package mt; import org.w3c.dom.Document; -class Maquina { - private final Automata maquina; +class Maquina implements Cloneable { + private Automata maquina; private Estado estadoactual; private Enlace enlaceactual; private String cintaanterior; @@ -22,6 +22,21 @@ class Maquina { cintaanterior = ""; } + @Override + public Maquina clone() { + try { + final Maquina result = (Maquina) super.clone(); + result.maquina = this.maquina; + result.estadoactual = this.estadoactual; + result.enlaceactual = this.enlaceactual; + result.cintaanterior = this.cintaanterior; + return result; + } + catch (final CloneNotSupportedException e) { + throw new AssertionError(); + } + } + Automata getMaquina() {return maquina;} public Estado getEstadoactual() {return estadoactual;} diff --git a/src/mt/MenuController.java b/src/mt/MenuController.java index e711acf..37f4fcc 100644 --- a/src/mt/MenuController.java +++ b/src/mt/MenuController.java @@ -18,6 +18,7 @@ import javafx.scene.control.MenuItem; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.TextFieldTableCell; +import javafx.scene.image.Image; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; @@ -102,13 +103,6 @@ public class MenuController { tableView.getColumns().get(1).setText("(qj,sj,movimiento)"); contenido.getChildren().add(tableView); - - /*if (maquina.comprobarCadena(new StringBuilder("000111###"), 5)) { - MT.mostrarMensaje("Resultado", "Reconce"); - } - else { - MT.mostrarMensaje("Resultado", " No reconce"); - }*/ } } @@ -141,6 +135,7 @@ public class MenuController { stage.setMinHeight(480); stage.setMinWidth(640); stage.setScene(scene); + stage.getIcons().add(new Image(getClass().getResourceAsStream("/mt/images/icon.png"))); stage.show(); TableView tableView = FXMLLoader.load(getClass().getResource("tabla.fxml")); diff --git a/src/mt/images/UBBLogo.png b/src/mt/images/UBBLogo.png new file mode 100644 index 0000000..8711952 Binary files /dev/null and b/src/mt/images/UBBLogo.png differ diff --git a/src/mt/images/icon.icns b/src/mt/images/icon.icns new file mode 100644 index 0000000..78f4346 Binary files /dev/null and b/src/mt/images/icon.icns differ diff --git a/src/mt/images/icon.ico b/src/mt/images/icon.ico new file mode 100644 index 0000000..0250cd6 Binary files /dev/null and b/src/mt/images/icon.ico differ diff --git a/src/mt/images/icon.png b/src/mt/images/icon.png new file mode 100644 index 0000000..3bdd291 Binary files /dev/null and b/src/mt/images/icon.png differ