Want to create interactive content? It’s easy in Genially!

Get started free

Ventana

Alexander Epelde

Created on January 10, 2024

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Pulsar List

btnListProducts.onActionEvent

• Se llamará al método de la capa de lógica getAllProducts y se listará en la tabla. Se establecerá cada celda con el valor correspondiente del modelo de Product, excepto las columnas de Supplier y Tag, las cuales serán rellenadas con el nombre del Supplier y el tipo del Tag respectivamente. • Si se produce alguna excepción en esta respuesta, atraparla y mostrar un mensaje de alerta con el mensaje de la excepción.

Editar Model

cModel.setOnEditCommit
  • Si la celda está vacía o el contenido supera los 255 caracteres, se lanzará una excepción y se le mostrará al usuario una alerta con el mensaje de la excepción.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Seleccionar una fila

tvProduct.selectionModelProperty

Si se ha seleccionado al menos una fila, se activarán tanto los botones Delete y Edit como las opciones del menú de contexto de Editar y Eliminar Fila. Al deseleccionarse, se desactivarán de nuevo.

Inicializar ventana

stage.initstage
  • Establecer el título de la ventana al valor "Product Management".
  • La ventana no debe ser redimensionable.
  • Se establecerá el patrón de adición de la fecha en función del idioma del sistema del usuario (Locale).
  • Obtener el objeto de la implementación de la lógica de negocio con el método de la factoría ProductManagerFactory getProductManager.
  • El botón Edit y Delete deben estar deshabilitados.
  • La tabla debe ser editable.
  • El botón List será el botón por defecto.
  • Mostrar la ventana.
  • Si se produce cualquier excepción en esta respuesta, mostrar un mensaje al usuario con el texto de la excepción.

Editar Supplier

cSupplier.setOnEditCommit
  • Las celdas se intercambiarán por una ComboBox editable precargada con los nombres de todos los proveedores disponibles. En caso de que la selección esté vacía o el nombre introducido no exista, se le mostrará al usuario una alerta con el mensaje "La selección no puede estar vacía. ¿Desea añadir un nuevo proveedor?" y se le pedirá confirmación al usuario. Si el usuario confirma, se lanzará la ventana SupplierView. Si no confirma, se le permitirá seleccionar el proveedor de nuevo.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Editar Description

cDescription.setOnEditCommit
  • Si la celda está vacía o el contenido supera los 255 caracteres, se lanzará una excepción y se le mostrará al usuario una alerta con el mensaje de la excepción.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Pulsación secundaria del ratón en la tabla

tvProduct.onContextMenuRequested

Se desplegará un menú de contexto.

Editar Weight

cWeight.setOnEditCommit
  • Se comprobará que el contenido sea numérico. En caso de no serlo, se lanzará una excepción con el mensaje "El valor debe ser numérico" y se le mostrará al usuario mediante una alerta. Si está vacía, se establecerá un valor predeterminado de 0. Si el valor introducido supera el soportado por un java.lang.Double, se lanzará una excepción con el mensaje "El valor introducido es muy alto, réduzcalo" y se notificará al usuario mediante una alerta con el mensaje.
  • Si se cumplen la(s) condición(es) necesaria(s) para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo valor introducido.

Acciones de la barra de menu

MenuItem.onAction
  • Actions:
    • LogOut: Se pedirá confirmación al usuario para salir de la ventana, si confirma se lanzará la ventana de Log-In. De lo contrario, se mantendrá en la ventana.
  • Help:
    • About: Lanzará una ventana emergente con información de la aplicación.
    • User Manual: Lanzará una ventana en la que aparecerá un manual de usuario en el que se especifica cómo se usa la ventana.
  • Report:
    • Print report: Imprimirá un informe sobre la ventana en cuestión.

Cerrar Ventana

(stage.onCloseRequestWindowEvent)

• Pedir confirmación al usuario para salir: ◦ Si el usuario confirma, salir de la aplicación. ◦ Si no confirma, mantenerse en la ventana.

Product Management

A esta ventana se accede despues de que un administrador se logee en la aplicacion. Esta ventana contiene toda la gestion de los productos en inventario.

Pulsar en una de las opciones

MenuItem.onAction

Las acciones del menú de contexto se corresponden con las acciones de los botones Add, Edit y Delete, respectivamente.

Editar Other Information

cOtherInfo.setOnEditCommit
  • Si la celda está vacía o el contenido supera los 255 caracteres, se lanzará una excepción y se le mostrará al usuario una alerta con el mensaje de la excepción.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Pulsar Add

btnAdd.onActionEvent
  • Se llamará al método de lógica addProduct pasándole un Product con información precargada. Si se ejecuta correctamente, se añadirá una línea a la tabla con la información del objeto.
  • Si se produce cualquier excepción en esta respuesta, mostrar un mensaje al usuario con el texto de la excepción.

Pulsar Delete

btnDelete.onActionEvent
  • Se llamará al método de lógica deleteProduct, con el producto seleccionado y, si se ejecuta sin problemas, se eliminará de la tabla posteriormente.
  • Si se produce cualquier excepción en esta respuesta, mostrar un mensaje al usuario con el texto de la excepción.

Pulsar Edit

btnEdit.onActionEvent

Se establecerá la celda seleccionada en modo edición en caso de ser posible.

Editar Addition Date

cAdditionDate.setOnEditCommit
  • La celda se intercambiará con un DatePicker. Se comprobará que tenga el formato correcto. En caso de no serlo, se lanzará una excepción y se le mostrará el mensaje al usuario mediante una alerta, además de mostrarle cuál es el formato correcto. En caso de estar vacío, se establecerá la fecha actual del sistema.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Editar Tag

cTag.setOnEditCommit
  • Las celdas se intercambiarán por una ComboBox no editable precargada con los tipos de todas las Tags disponibles. En caso de que la selección esté vacía, se lanzará una excepción con el mensaje "La selección no puede estar vacía" y se le mostrará el mensaje de la excepción al usuario mediante una alerta.
  • Si se cumplen la(s) condición(es) necesaria(s) para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atraparla y mostrar un mensaje de alerta con el mensaje de la excepción, y establecer el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.

Editar Price

cPrice.setOnEditCommit
  • Se comprobará que el contenido sea numérico. En caso de no serlo, se lanzará una excepción con el mensaje "El valor debe ser numérico" y se le mostrará al usuario mediante una alerta. Si está vacía, se establecerá un valor predeterminado de 0. Si el valor introducido supera el soportado por un java.lang.Double, se lanzará una excepción con el mensaje "El valor introducido es muy alto, réduzcalo" y se notificará al usuario mediante una alerta con el mensaje.
  • Si se cumplen la(s) condición(es) necesaria(s) para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo valor introducido.

Pulsar Exit

btnExit.onActionEvent

• Pedir confirmación al usuario para salir: ◦ Si el usuario confirma, salir de la aplicación. ◦ Si no confirma, mantenerse en la ventana.

Editar Brand

cBrand.setOnEditCommit
  • Si la celda está vacía o el contenido supera los 255 caracteres, se lanzará una excepción y se le mostrará al usuario una alerta con el mensaje de la excepción.
  • Si se cumplen las condiciones necesarias para la celda editada, se llamará al método de lógica updateProduct con la nueva información. Si se produce alguna excepción en esta respuesta, atrápala y muestra un mensaje de alerta con el mensaje de la excepción y establece el valor de la celda al valor inicial.
  • Si se ejecuta correctamente, se establecerá el valor de la celda con el nuevo introducido.