1.8.107 Abr-2024 PK00 #Y-15406; [12/03/2024]; com.Bo2A.net.ObjDatosEjecucionContext.setERPSI_Server_Information; Se pueden especificar datos específicos sobre el sistema operativo en el fichero de configuración de tomcat. Porque puede ocurrir que os.name no devuelva información relevante. [13/03/2024]; com.Bo2A.net.Blogin; // Se vuelve static las duraciones y se chequea en setDuracion public static final String DURACION_CORTA = "c"; public static final String DURACION_LARGA = "l"; [19/03/2024]; com.Bo2A.parametros.ParametroUTILS; Nuevos parámetros para Caducidad directorios public static final String DANZAUNO_DIRECTORIO_EXPORT_CADUCIDAD = "DANZAUNO.DIRECTORIO.EXPORT.CADUCIDAD"; public static final String DANZAUNO_DIRECTORIO_USER_CADUCIDAD = "DANZAUNO.DIRECTORIO.USER.CADUCIDAD"; Dentro de export se ha definido el directorio "contabilidad" y "otros". Estos subdirectorios se ven afectados por el parámetro anterior. com.Bo2A.cliente.window.Bo2aWindow.LOGIN_inicializaDatosLogin; Se borra el directorio user con la antiguedad especificada en el parámetro anterior igual que se hacía previamente con el directorio export. [19/03/2024]; com.Bo2A.validators.gestion.aeat.SII.enviarComunicacionSOAP; Ahora se guarda en el directorio User los ficheros temporales que se reciben de la comunicación del SII. Anteriormente se utlizaba el directorio Objects/SII cuyo contenido no se borraba nunca. //File ficheroRespuesta = new File(Bo2aSystemUtils.getDirectorioObjects(Integer.MAX_VALUE), "R_"+documento); // Bo2A_AEAT.SII_MODELO File ficheroRespuesta = Bo2aSystemUtils.getFicheroUser(Bo2A_AEAT.SII_MODELO, "R_"+documento); [20/03/2024] - #Y-15406; com.Bo2A.cliente.base.edicionBo2EditorImageField; La optimización de la imagen produce fotos en color sepia cuando son PNG. NO está funcionando el menú "Ajustar Tamaño Imagen" (Optimi/NO Optimizar). Se actúa sobre el parámetro PARAM_IMAGEN_RESIZE. Hecha la traducción de la edición de Imagenes. [20/03/2024] - #Y-15406; com.Bo2A.cliente.imagen.Bo2aImageUtils; Las imágenes PNG cuando se pasan por el método compressJPG aparecen en color sepia. * Solucionado con el método removeAlphaChannel. Este método elimina el canal Alpha responsable de la transparencia * en PNG está siempre incluido y en JPG no existe. comprimeImagen; La imagen se guarda en JPG que es el formato que menos ocupa. [21/03/2024]; removeAlphaChannel; Elimina los canales alpha para crear un jpg. Por ej. si viene desde un png por defecto los incorpora. [21/03/2024]; com.Bo2A.Util.Bo2File; com.Bo2A.Util.dialog.visorImagenes.OBJFicheroPanelVisualizacion; Detectado error de funcionamiento en pantalla de multiples archivos subiendo en imagenes. El botón JPG y PDF no funcionan correctamente aunque se selecciones imágenes. El problema esta en com.Bo2A.Util.dialog.visorImagenes.OBJFicheroPanelVisualizacion que no sabe identificar correctamente una imagen en el método isImagen. Ahora es la clase Bo2aFile la que identifica si se trata de una imagen. [21/03/2024]; #Y-15406; com.Bo2A.cliente.base.edicionBo2EditorImageField.comprimeImagen; Ahora se puede comprimir también ficheros bmp (solo por compatibilidad). [25/03/2024]; com.Bo2A.parametros.Bo2aParametros; com.Bo2A.parametros.Bo2aTablaParametrosObjetos; com.Bo2A.parametros.Bo2aParametrosObjetosDatos; com.Bo2A.parametros.Bo2aParametrosObjetosEstructura; Se ha refactorizado la gestión de objetos que se hace desde la parte cliente. Ahora se han creado desde la base Bo2aParametros, Bo2aParametrosObjetos dos nuevas Bo2aParametrosObjetosDatos (tabla, tree, ...) y Bo2aParametrosObjetosEstructura (coordinador, multiapplet, ...) todas utilizadas en la parte servidora con variables estáticas en lugar de textos literales. [25/03/2024]; com.Bo2A.parametros.Bo2aTablaParametrosObjetos; getCodigoPagina; getIdObjPagina; getIdObjArea; getIdEmpresa; getIdUsuario; getImprimir; En esta clase ahora se procesan los parámetros básicos de la pantalla (con prefijo 0). ej. * Anteriormente se llamaban 0MULTI_IDPAGINA, 0MULTI_CODIGOPAGINA, 0MULTI_IDEMPRESA, ... En la parte servidor com.Bo2A.servlet.core.parametros.Bo2aHTTPXMLParametros se utilizan las macros definidas en esta clase y sus descendientes. [25/03/2024]; com.Bo2A.cliente.dialog.Bo2aDialogImpresionReports.ponFont Adaptado para cambiar el tamaño de la letra definido por el usuario. [26/03/2024]; com.Bo2A.gui.Bo2aFilterList.ponFont; com.Bo2A.gui.Bo2aPrintSelection; com.Bo2A.gui.Bo2aSelectionList; com.Bo2A.Util.dialog.Bo2aPanelContactos; com.Bo2A.cliente.dialog.Bo2aDialogBusqueda; com.Bo2A.cliente.dialog.Bo2aDialogExpresion; com.Bo2A.cliente.dialog.Bo2aDialogExpresionPanelAvanzado; com.Bo2A.cliente.dialog.Bo2aDialogExpresionPanelNormal; com.Bo2A.cliente.dialog.Bo2aDialogImpresionReports; com.Bo2A.cliente.dialog.Bo2aDialogOrdenar; com.Bo2A.cliente.dialog.Bo2aTablaDialogOrdenarPanel; com.Bo2A.cliente.dialog.Bo2aPanelProgramacion; com.Bo2A.cliente.mensaje.Bo2aEnvioMensajesUsuario; com.Bo2A.cliente.tablaformulario.Bo2aDialogCambiarColumnas; com.Bo2A.cliente.tablaformulario.Bo2aDialogQuitarColumnas; com.Bo2A.cliente.tablaformulario.Bo2aFormulario; com.Bo2A.cliente.tablaformulario.Bo2aFormularioBotonera; com.Bo2A.cliente.tablaformulario.Bo2aTablaCsv; com.Bo2A.cliente.tablaformulario.Bo2aTablaPopUp; com.Bo2A.cliente.tree.Bo2aTreePopUp; Adaptado estas clases para configurarlas con el tipo de letra definido por el usuario. Se ha definido un método ponFont en cada una. Se ha adaptado los menus contextuales de tabla y tree. La dialog de impresión y de envio de comunicaciones. Estas últimas también se han mejorado en la disposición de los objetos cuando se expanden. Los dialogs de búsqueda, filtrado y similares. [27/03/2024]; com.Bo2A.Util.system.Bo2aSystemUtils; Definidos los tiempos utilizados en Thread.sleep para operaciones de sincronización. Se tiene estos datos centralizados y más controlados que esparcidos por el código. [27/03/2024]; com.Bo2A.cliente.multiapplet.Bo2aMultiApplet.muestraExternal; Mejorado la forma en que se muestran los objetos "External" lanzados por un objeto que coge datos de otro objeto. Al ampliar la pantalla la zona de botones quedaba con espacios en blanco desproporcionados alrededor de los mismos. Ahora quedan al final de la ventana aunque se maximize y siempre ocupando solo la parte necesaria. [28/03/2024]; com.Bo2A.cliente.window.Bo2aWindow; // Muestra la dialog en colores, según el tipo de mensaje. JDialog.setDefaultLookAndFeelDecorated(true); [01/04/2024] - #Y-15438; com.Bo2A.Util.Bo2Util.URIencode; // Cambiado de ISO8859-1 a UTF-8 se estaba usando la codificación de windows para los nombres de ficheros private static final String URIEncoding = "utf-8"; //"iso8859-1"; 1.8.107 Abr-2024 PK01 #Y-15438; [02/04/2024] - #Y-15438; com.Bo2A.zip.Bo2aZipUtilities.getZipEntries; * [02/04/2024] - 15438 * Detectado problema con la codificación de los nombres de ficheros. * Si el nombre está codificado con ISO-8859-1 da problemas porque por defecto se usa UTF-8. * Ahora mismo no tengo un método para comprobar la codificación del fichero, así que utilizo * prueba error. Si falla con el primero intento el segundo. [02/04/2024]; com.Bo2A.Util.system.Bo2aSystemUtils.downloadContents2OutputStream; * Implementa un sistema de cache en página. Igual que el que había en Bo2aImagen.descargaFromCache. * Solo va a funcionar con la urlDownload. Cuando se utilice un inputStream no hay cache. * Se incorpora el parámetro @idObjPagina para la cache. * Si este parametro valor < 0 no se utiliza la cache * * El @param error si es null no se muestran mensajes. Lo que ocurría en un entorno de servidor o de un cliente que no los necesite, por ej. la Bo2aImagen. Es método basa su funcionamiento en la clase Bo2aHTTPDownload; [03/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload; download2OutputStream; Creación de una cache automática para los ficheros descargados. Se implementa como una copia del método Bo2aImagen.descargaCache; Estará activada siempre que se indique la idObjPagina. Se complementa con el borrado automático de la cache según el tiempo de caducidad definido. En los constructores el parámetro de origen URL_OR_FileOrigen pasa a ser @param URL_OR_FileOrigen_OR_InputStream Y en el destino, cuando exista, @param oDestino pasa a @param fDestino_OR_OutputStream [03/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload.getFicheroCache(); Este método se encarga de determinar si es es necesario utilizar cache (idObjPagina) y la petición HEAD al servidor para determinar si el fichero ha cambiado y está cacheado. [03/04/2024]; com.Bo2A.cliente.base.edicionBo2EditorImageField; // Guardar la página utilizada después para cachear las descargas. Se utiliza el mismo esquema que en Bo2aImagen. Utilizando los métodos definidos en Bo2aSystemUtils.muestraContenidoFichero; [04/04/2024] - #Y-15438; com.Bo2A.cliente.imagen.Bo2aImagen; -Utilizar el mismo esquema para descargar el fichero que el utilizado en EditorImage. La clase de gestiona los servidores Bo2aGestionFileServer; -Ya no se utiliza el método propio "descargaFromCache" y en su lugar se hace igual que en Bo2aEditorImage, utilizar el esquema de descarga de Bo2aSystemUtils, que que además parovecha la utilización de la misma cache. [05/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload.downloadFirstStep; Refactorizado este método. Ahora se resuelve primero el fichero cache aquí y se copia la funcionalidad anterior a _downloadFirstStep; * Primer paso para resolver la cache. * Este método envuelve a _downloadFirstStep. * Si la cache está especificada entonces se resuelve el fichero que la va a almacenar aquí. * * Se utiliza un método distinto porque se hacen llamadas a _downloadFirstStep y provocaría una recursividad infinita. [08/04/2024]; com.Bo2A.sql.SQLSERVER.ErrorSQLXML.AnalizaError; Este método ahora es capaz de obtener los mensajes de error de las cabeceras de la respuesta, además del contenido en el BODY. Si es una llamada HEAD no habrá contenido y es necesario leer los errores/mensajes de las cabeceras. [08/04/2024]; com.Bo2A.Util.Bo2aBase64.fromStringBase64; toStringBase64; * Métodos para serializar objetos a string en base64 y viceversa. * Este utiliza OutoutObjectStream en lugar de XMLEncoder. Después se construye en Base64