Duende CG - Documentación

Plantillas

Para facilitar la creación de aplicaciones el usuario puede diseñar plantillas con las especificaciones JSON que más use. En este apartado se proporcionan algunas plantillas genéricas de forma que solo haya que modificar en ellas algunos datos y añadir otros, agilizando el proceso de especificación de la aplicación objetivo.

Plantilla Mínima

La siguiente es la plantilla mínima para crear una aplicación con Duende. Solo se indican los elementos requeridos. La plantilla solo contiene una opción general, aplicada a una entidad con cuatro campos básicos. Por supuesto, es posible añadir más opciones generales así como campos a las entidades, además de cambiar o añadir nuevos elementos JSON según se necesite:

Copy

{
    "appGeneralData": {
        "appName": "(Nombre de la aplicación)",
        "appMainPackage": "(Paquete principal)"
    },
    "generalOptions": [
        {
            "entity": {
                "entityName": "(Nombre de la entidad)",
                "fields": [
                    {
                        "fieldName": "(Campo de texto)"
                    },
                    {
                        "fieldName": "(Campo entero)",
                        "fieldType": "Integer"
                    },
                    {
                        "fieldName": "(Campo fecha)",
                        "fieldType": "Date"
                    },
                    {
                        "fieldName": "(Campo de imagen)",
                        "fieldIsImage": true
                    }
                ]
            }
        }
    ]
}

Plantilla Estándar

Esta plantilla muestra tanto los elementos requeridos como otros que, aunque no son obligatorios, pueden ser interesantes de modificar. Como ejemplo, la plantilla contiene dos opciones generales, una asociada a un listado de empleados y otra asociada a un listado de productos. Por supuesto los datos de la plantilla pueden ser modificados y se pueden eliminar elementos y añadir otros nuevos a conveniencia del usuario.

Copy

{
    "appGeneralData": {
        "appName": "(Nombre de la aplicación)",
        "appMainPackage": "(Paquete principal)",
        "appAuthor": "(Autor de la aplicación)",
        "appWeb": "(Web de la aplicación)",
        "appWebUrl": "(URL de la web de la aplicación)",
        "appPort": 8000
    },
    "generalOptions": [
        {
            "generalOptionCode": "empleados",
            "generalOptionName": "Gestión de Empleados",
            "entity": {
                "entityName": "Empleado",                
                "fields": [
                    {
                        "fieldName": "nombre",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "apellido1",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "apellido2",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "fechaContrato",
                        "fieldType": "Date"
                    },
                    {
                        "fieldName": "sueldo",
                        "fieldType": "Double"                        
                    }
                ]
            }
        },
        {
            "generalOptionCode": "productos",
            "generalOptionName": "Gestión de Productos",
            "entity": {
                "entityName": "Producto",                
                "fields": [
                    {
                        "fieldName": "codigo",
                        "fieldRequired": true,
                        "fieldMaxSize": 10
                    },
                    {
                        "fieldName": "descripcion",
                        "fieldRequired": true,
                        "fieldMaxSize": 50
                    },
                    {
                        "fieldName": "precio",
                        "fieldRequired": true,
                        "fieldType": "Double"
                    },
                    {
                        "fieldName": "stock",
                        "fieldType": "Long"
                    },
                    {
                        "fieldName": "image",
                        "fieldIsImage": true                        
                    }
                ]
            }
        }
    ]
}

Plantilla Completa

La siguiente plantilla usa todos los elementos JSON de la especificación, asignando los correspondientes valores por defecto en lenguaje español. La plantilla genera una aplicación con dos opciones generales, asociadas respectivamente a una entidad Empleado y otra entidad Producto.

Copy

{
    "appGeneralData": {
        "appName": "(Nombre de la aplicación)",
        "appAuthor": "(Autor de la aplicación)",
        "appYear": año,
        "appWeb": "(Web de la aplicación)",
        "appWebUrl": "(URL de la web de la aplicación)",
        "appPort": 8000,
        "appFilesUploadFolder": "upload",
        "appMainPackage": "(Paquete principal)",
        "appRoleUserUsername": "user",
        "appRoleUserPassword": "1234",
        "appRoleAdminUsername": "admin",
        "appRoleAdminPassword": "1234",
        "appTxtLogin": "Acceso a la aplicación",
        "appTxtUsername": "Nombre de usuario",
        "appTxtPassword": "Contraseña",
        "appTxtLoginButton": "Entrar",
        "appTxtLogout": "Desconectar",
        "appMsgLoggedOut": "La sesión se cerró con éxito",
        "appMsgWrongLogin": "Datos de acceso incorrectos",
        "appOptionsHeader": "Opciones",
        "appTxtReturnTo": "Volver a ",
        "appTxtCancelButton": "Cancelar",
        "appTxtOkButton": "Aceptar",
        "appMainLogo": "app_main_logo.png",
        "appMenuLogo": "app_menu_logo.png",
        "appErrorLogo": "app_error_logo.png",
        "appNoImageLogo": "app_no_image_logo.png"

    },
    "generalOptions": [
        {
            "generalOptionCode": "empleados",
            "generalOptionName": "Gestión de Empleados",
            "goCreateScreenTitle": "Alta de Empleados",
            "goCreateScreenAvailable": true,
            "goUpdateScreenTitle": "Modificación de Empleados",
            "goUpdateScreenAvailable": true,
            "goViewScreenTitle": "Ficha del Empleado",
            "goViewScreenAvailable": true,
            "goListScreenTitle": "Listado de Empleados",
            "goListScreenRowsByPage": 10,
            "goListScreenPageSquares": 5,
            "goDeletionAvailable": true,
            "goMsgEmptyList": "No hay empleados que mostrar",
            "goMsgSuccessCreation": "Empleado dado de alta correctamente",
            "goMsgSuccessUpdate": "Empleado modificado correctamente",
            "goMsgSuccessDeletion": "Empleado eliminado correctamente",
            "goMsgCreateEntityButton": "Nuevo Empleado",
            "goMsgUpdateEntityButton": "Modificar Empleado",
            "goMsgShowEntityButton": "Mostrar Empleado",
            "goMsgDeleteEntityButton": "Eliminar Empleado",
            "goMsgDeleteEntityTitle": "Eliminar Empleado",
            "goMsgDeleteEntityQuestion": "¿Seguro que desea eliminar al empleado?",
            "goMsgDataNotFound": "Empleado no encontrado",
            "entity": {
                "entityName": "Trabajador",
                "entityTable": "trabajadores",
                "entityDescriptionField": "nombre",              
                "fields": [
                    {
                        "fieldName": "nombre",
                        "fieldColumn": "nombre",
                        "fieldType": "String",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "apellido1",
                        "fieldColumn": "apellido1",
                        "fieldType": "String",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "apellido2",
                        "fieldColumn": "apellido2",
                        "fieldType": "String",
                        "fieldRequired": true,
                        "fieldMaxSize": 20
                    },
                    {
                        "fieldName": "fechaContrato",
                        "fieldColumn": "fecha_contrato",
                        "fieldType": "Date"
                    },
                    {
                        "fieldName": "fechaNacimiento",
                        "fieldColumn": "fecha_nacimiento",
                        "fieldType": "Date",
                        "fieldPast": true
                    },
                    {
                        "fieldName": "sueldo",
                        "fieldColumn": "sueldo",
                        "fieldType": "Double"                        
                    }
                ]
            }
        },
        {
            "generalOptionCode": "productos",
            "generalOptionName": "Gestión de Productos",
            "goCreateScreenTitle": "Alta de Productos",
            "goCreateScreenAvailable": true,
            "goUpdateScreenTitle": "Modificación de Productos",
            "goUpdateScreenAvailable": true,
            "goViewScreenTitle": "Ficha del Productos",
            "goViewScreenAvailable": true,
            "goListScreenTitle": "Listado de Productos",
            "goListScreenRowsByPage": 10,
            "goListScreenPageSquares": 5,
            "goDeletionAvailable": true,
            "goMsgEmptyList": "No hay productos que mostrar",
            "goMsgSuccessCreation": "Producto dado de alta correctamente",
            "goMsgSuccessUpdate": "Producto modificado correctamente",
            "goMsgSuccessDeletion": "Producto eliminado correctamente",
            "goMsgCreateEntityButton": "Nuevo Producto",
            "goMsgUpdateEntityButton": "Modificar Producto",
            "goMsgShowEntityButton": "Mostrar Producto",
            "goMsgDeleteEntityButton": "Eliminar Producto",
            "goMsgDeleteEntityTitle": "Eliminar Producto",
            "goMsgDeleteEntityQuestion": "¿Seguro que desea eliminar el producto?",
            "goMsgDataNotFound": "Producto no encontrado",
            "entity": {
                "entityName": "Producto",
                "entityTable": "producto",
                "entityDescriptionField": "descripcion",           
                "fields": [
                    {
                        "fieldName": "codigo",
                        "fieldColumn": "codigo",
                        "fieldType": "String",
                        "fieldRequired": true,
                        "fieldMinSize": 5,
                        "fieldMaxSize": 10
                    },
                    {
                        "fieldName": "descripcion",
                        "fieldColumn": "descripcion",
                        "fieldType": "String",
                        "fieldRequired": true,
                        "fieldMaxSize": 50
                    },
                    {
                        "fieldName": "precio",
                        "FieldColumn": "precio",
                        "fieldRequired": true,
                        "fieldType": "Float"
                    },
                    {
                        "fieldName": "stock",
                        "fieldColumn": "stock",
                        "fieldType": "Long"
                    },
                    {
                        "fieldName": "proveedor",
                        "fieldColumn": "proveedor",
                        "fieldType": "String",
                        "fieldBlank": true
                    },
                    {
                        "fieldName": "fechaCaducidad",
                        "fieldColumn": "fecha_caducidad",
                        "fieldType": "Date",
                        "fieldFuture": true,
                        "fieldPresent": true
                    },
                    {
                        "fieldName": "image",
                        "fieldColumn": "image",
                        "fieldIsImage": true                        
                    }
                ]
            }
        }
    ],
    "dbConfig": {

        "dbName": "nombre_base_datos",
        "dbUser": "usuario_base_datos",
        "dbPassword": "password_base_datos"

    },
    "cssStyles": {
        "cssBgColorMenu":"#0E415B",
        "cssColorMenu":"white",
        "cssColorMenuHover":"lightgray",
        "cssColorMenuActive":"#9FC4C6",
        "cssBgColorScreenTitles":"#187489",
        "cssBgColorStandardButton":"#187489",
        "cssColorStandardButton":"white",
        "cssBgColorStandardButtonHover":"#569FAF",
        "cssColorStandardButtonHover":"white",
        "cssColorLightLink":"white",
        "cssColorLightLinkHover":"#DBE5E5",
        "cssBackgroundColorForm":"#DBE5E5",
        "cssShadowForm":"rgba(229, 103, 23, 0.075)",
        "cssColorSubtle":"gray"
    }
}

En el apartado Temas encontrará plantillas predefinidas para el elemento cssStyles, que le permitirá cambiar el aspecto de la interfaz de la aplicación generada.

En el apartado Demostraciones encontrará videos de demostración de uso de estas plantillas.