예제 #1
0
        private static string RenderSelectorDeFechaHora(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;

            var a = new AtributosHtml(
                idHtmlContenedor: descriptorControl.IdHtmlContenedor,
                idHtml: descriptorControl.IdHtml,
                propiedad: descriptorControl.propiedad,
                tipoDeControl: atributos.TipoDeControl,
                visible: atributos.EsVisible(tabla.ModoDeTrabajo) && atributos.Obligatorio,
                editable: atributos.EsEditable(tabla.ModoDeTrabajo),
                obligatorio: atributos.Obligatorio,
                ayuda: atributos.Ayuda,
                valorPorDefecto: atributos.ValorPorDefecto);

            a.AnchoMaximo   = atributos.AnchoMaximo;
            a.NumeroDeFilas = atributos.NumeroDeFilas;

            return(EditorDeFecha.RenderSelectorDeFechaHora(a));

            //Dictionary<string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);
            //valores["CssContenedor"] = Css.Render(enumCssControlesDto.ContenedorFechaHora);
            //valores["Css"] = Css.Render(enumCssControlesDto.SelectorDeFecha);
            //valores["CssHora"] = Css.Render(enumCssControlesDto.SelectorDeHora);
            //valores["Placeholder"] = atributos.Ayuda;
            //valores["ValorPorDefecto"] = atributos.ValorPorDefecto;

            //var htmSelectorDeFechaHora = PlantillasHtml.Render(PlantillasHtml.selectorDeFechaHoraDto, valores);

            //return htmSelectorDeFechaHora;
        }
예제 #2
0
        private static string RenderListaDinamica(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos = descriptorControl.atributos;
            var valores   = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            //throw new Exception($"no se ha definido el atributo {nameof(atributos.MostrarExpresion)} para la lista dinámica de la propiedad {descriptorControl.propiedad}");

            valores["CssContenedor"]    = Css.Render(enumCssControlesDto.ContenedorListaDinamica);
            valores["Css"]              = Css.Render(enumCssControlesDto.ListaDinamica);
            valores["ClaseElemento"]    = atributos.SeleccionarDe.Name;
            valores["MostrarExpresion"] = atributos.MostrarExpresion.IsNullOrEmpty() ?
                                          ElementoDto.ValorDelAtributo(atributos.SeleccionarDe, nameof(IUDtoAttribute.MostrarExpresion)) :
                                          atributos.MostrarExpresion;
            valores["BuscarPor"]        = atributos.BuscarPor;
            valores["Longitud"]         = 3;
            valores["Cantidad"]         = 10;
            valores["CriterioDeFiltro"] = atributos.CriterioDeBusqueda;
            valores["OnInput"]          = $"Crud.{GestorDeEventos.EventosDeListaDinamica}('{TipoAccionDeListaDinamica.cargar}',this)";
            valores["OnChange"]         = $"Crud.{GestorDeEventos.EventosDeListaDinamica}('{TipoAccionDeListaDinamica.perderFoco}',this)";
            valores["Placeholder"]      = $"Seleccionar ({atributos.CriterioDeBusqueda}) ...";
            valores["GuardarEn"]        = atributos.GuardarEn;
            valores["RestringidoPor"]   = atributos.RestringidoPor.ToLower();
            valores["ContenidoEn"]      = tabla.IdHtmlContenedor;

            var a = PlantillasHtml.Render(PlantillasHtml.listaDinamicaDto, valores);

            return(a);
        }
예제 #3
0
        private static string RenderEtiquetaDelDto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, short i, short j, double ancho)
        {
            if (descriptorControl.atributos.TipoDeControl == enumTipoControl.Check)
            {
                return("");
            }

            return(ControlHtml.RenderEtiqueta($"{tabla.IdHtml}_{i}_{j}_lbl", descriptorControl.atributos.Etiqueta));
        }
예제 #4
0
        private static string RenderSelectorImagen(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos         = descriptorControl.atributos;
            var htmlContenedor    = RenderContenedorDto(descriptorControl, ancho, Css.Render(enumCssControlesDto.ContenedorArchivo));
            var idHtmlBarra       = $"barra-{descriptorControl.IdHtml}";
            var idHtmlImg         = $"img-{descriptorControl.IdHtml}";
            var idHtmlCanva       = $"canvas-{descriptorControl.IdHtml}";
            var idHtmlInfoArchivo = $"nombre-{descriptorControl.IdHtml}";

            var htmlArchivo = @$ "
            <form class=¨{Css.Render(enumCssControlesDto.FormDeArchivo)}¨ method=¨post¨ enctype=¨multipart/form-data¨>
예제 #5
0
        //

        private static string RenderDescriptorControlDto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos             = descriptorControl.atributos;
            var htmdDescriptorControl = "";

            switch (atributos.TipoDeControl)
            {
            case enumTipoControl.Editor:
                htmdDescriptorControl = RenderEditor(tabla, descriptorControl);
                break;

            case enumTipoControl.RestrictorDeEdicion:
                htmdDescriptorControl = RenderRestrictor(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.ListaDeElemento:
                htmdDescriptorControl = RenderListaDeElemento(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.ListaDinamica:
                htmdDescriptorControl = RenderListaDinamica(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.Archivo:
                htmdDescriptorControl = RenderSelectorImagen(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.UrlDeArchivo:
                htmdDescriptorControl = RenderSelectorImagen(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.Check:
                htmdDescriptorControl = RenderCheck(tabla, descriptorControl);
                break;

            case enumTipoControl.SelectorDeFecha:
                htmdDescriptorControl = RenderSelectorDeFecha(tabla, descriptorControl);
                break;

            case enumTipoControl.SelectorDeFechaHora:
                htmdDescriptorControl = RenderSelectorDeFechaHora(tabla, descriptorControl);
                break;

            case enumTipoControl.AreaDeTexto:
                htmdDescriptorControl = RenderAreaDeTexto(tabla, descriptorControl);
                break;

            default:
                GestorDeErrores.Emitir($"No se ha implementado como renderizar una propiedad del tipo {atributos.TipoDeControl}");
                break;
            }

            return(htmdDescriptorControl);
        }
예제 #6
0
        private static string RenderSelectorDeFecha(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorFecha);
            valores["Css"]             = Css.Render(enumCssControlesDto.SelectorDeFecha);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;

            var htmSelectorDeFecha = PlantillasHtml.Render(PlantillasHtml.selectorDeFechaDto, valores);

            return(htmSelectorDeFecha);
        }
예제 #7
0
        private static string RenderCheck(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"] = Css.Render(enumCssControlesDto.ContenedorCheck);
            valores["Css"]           = Css.Render(enumCssControlesDto.Check);
            valores["Checked"]       = atributos.ValorPorDefecto.ToString().ToLower();
            valores["Etiqueta"]      = atributos.Etiqueta;
            valores["Accion"]        = "";

            var htmlCheck = PlantillasHtml.Render(PlantillasHtml.checkDto, valores);

            return(htmlCheck);
        }
예제 #8
0
        private static string RenderEditor(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorEditor);
            valores["Css"]             = Css.Render(enumCssControlesDto.Editor);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;
            valores["LongitudMaxima"]  = atributos.LongitudMaxima > 0 ?
                                         $"{Environment.NewLine}maxlength=¨{atributos.LongitudMaxima}¨"
                    : "";

            var htmlEditor = PlantillasHtml.Render(PlantillasHtml.editorDto, valores);

            return(htmlEditor);
        }
예제 #9
0
        private static string RenderAreaDeTexto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorAreaDeTexto);
            valores["Css"]             = Css.Render(enumCssControlesDto.AreaDeTexto);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;

            string alto = $"calc({(double)(1.5 * atributos.NumeroDeFilas)}em + .75rem + 2px);".Replace(",", ".");

            valores["Estilos"] = $"{valores["Estilos"]}{$" height: {alto}"}";

            var htmlArea = PlantillasHtml.Render(PlantillasHtml.AreaDeTextoDto, valores);

            return(htmlArea);
        }
예제 #10
0
        private static string RenderListaDeElemento(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos = descriptorControl.atributos;

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]    = Css.Render(enumCssControlesDto.ContenedorListaDeElementos);
            valores["Css"]              = Css.Render(enumCssControlesDto.ListaDeElementos);
            valores["ClaseElemento"]    = atributos.SeleccionarDe.Name;
            valores["MostrarExpresion"] = atributos.MostrarExpresion.IsNullOrEmpty() ?
                                          ElementoDto.ValorDelAtributo(atributos.SeleccionarDe, nameof(IUDtoAttribute.MostrarExpresion)) :
                                          atributos.MostrarExpresion;
            valores["GuardarEn"] = atributos.GuardarEn;

            var htmlSelect = PlantillasHtml.Render(PlantillasHtml.listaDeElementosDto, valores);

            return(htmlSelect);
        }
예제 #11
0
        public void AnadirControl(short pos, PropertyInfo descriptor)
        {
            if (!Controles.ContainsKey(pos))
            {
                Controles[pos] = new DescriptorDeControlDeLaTabla {
                    Descriptor = descriptor, Fila = Fila, NumeroColumna = NumeroColumna
                };

                if (PosicionMaxima < pos)
                {
                    PosicionMaxima = pos;
                }

                NumeroDeControles = (short)(NumeroDeControles + 1);
                _conColSpan       = Controles[pos].atributos.ConSpanEnColumnas;
            }
            else
            {
                AnadirControl((short)(pos + 1), descriptor);
            }
        }
예제 #12
0
        private static string RenderRestrictor(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos = descriptorControl.atributos;

            if (atributos.MostrarExpresion.IsNullOrEmpty())
            {
                throw new Exception($"no se ha definido el atributo {nameof(atributos.MostrarExpresion)}  para el restrictor de la propiedad {descriptorControl.propiedad}");
            }

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]    = Css.Render(enumCssControlesDto.ContenedorEditor);
            valores["Css"]              = Css.Render(enumCssControlesDto.EditorRestrictor);
            valores["MostrarExpresion"] = atributos.MostrarExpresion.ToLower();
            valores["Placeholder"]      = atributos.Ayuda;
            valores["ValorPorDefecto"]  = atributos.ValorPorDefecto;
            valores["Readonly"]         = "editable=¨N¨ readonly";

            var htmlEditor = PlantillasHtml.Render(PlantillasHtml.restrictorDto, valores);

            return(htmlEditor);
        }