Want to create interactive content? It’s easy in Genially!
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.