wListView
CLASS WListView FROM WControl
PROPERTY cClassId INIT "lvw"
PROPERTY aItems INIT {} // Array de WItemListView
PROPERTY cType INIT xc_Default // xc_Avatar, xc_Collapsible, xc_Expandable, xc_Popout
PROPERTY lTitleItem INIT .F. // Se presenta el cTitle de los WItemListView
PROPERTY oIconEdit AS WIcon
PROPERTY cIconEdit INIT "" WRITE INLINE ::oIconEdit:cIcon := Value READ INLINE ::oIconEdit:cIcon // Icono para la función de editar
PROPERTY cOnClickEdit INIT "" // Funcion del CGI a llamar cuando se pulse el Edit
PROPERTY oIconDelete AS WIcon
PROPERTY cIconDelete INIT "" WRITE INLINE ::oIconDelete:cIcon := Value READ INLINE ::oIconDelete:cIcon // Icono para la función de editar
PROPERTY cOnClickDelete INIT "" // Funcion del CGI a llamar cuando se pulse el Borrar
PROPERTY cAjaxBevel INIT "" // Bevel donde se incrusta el resultado de la llamada al Ajax
PROPERTY oAvatarStyle AS WStyle // Stylos para la imagen del Avatar
PROPERTY cAjaxBevelEdit INIT ""
PROPERTY cAjaxBevelDelete INIT ""
PROPERTY lAjaxWaitON INIT .T. // Incluye un indicador de actividad mientras se ejecuta la función Ajax
// PROPERTY lModalResult INIT .F. // Indicamos que al pulsar Edit la ejecución va ha salir por un Bevel Modal
PROPERTY aParams INIT {} // Parametros extras a enviar al CGI {{"Param1","Valor1},{"Param2","Valor2"}}
PROPERTY cClrPaneDetail INIT "" WRITE INLINE ::FcClrPaneDetail := ::CheckClr(Value)
// Color del fondo del detalle
PROPERTY cClrText INIT "" WRITE INLINE ::FcClrText := ::CheckClr(Value)
// Color del Texto
PROPERTY cClrTextDetail INIT "" WRITE INLINE ::FcClrTextDetail := ::CheckClr(Value)
// Color del Texto del Detalle
// Propiedades para la Paginación
// Hay que alimentar aItems con todos los elemtos, el envia a la web solo los de la página a la vista.
// Hay que crear un Bevel que contendra a todo el ListView para poder actualizarlo al paginar
PROPERTY nItemInPage INIT 0 // Si el valor es > 0 se realiza paginación
property nPage INIT 1 // Página a presentar
PROPERTY cOnChangePage INIT "" // Función del CGI cuando cambiamos de página
PROPERTY cAjaxPages INIT "" // Bevel al que enviarle el ListView por Ajax
PROPERTY lAutoPage INIT .T. // Recibimos todos los datos y es el ListView el que selecciona lo que va en la página
PROPERTY nMaxItems INIT 0 // Solo se utiliza si lAutoPage == .F.
PROPERTY lMultiPagesFirstLast INIT .t.
PROPERTY nMultiPagesDots INIT 0
// ------------------------------
METHOD Create() // Creación del Control
METHOD AddItem(nRowId,cImage,cTitle,aText,lEdit,lDelete,aParams,cIcon)
METHOD AddArrayItems( aItems ) // Para crear los Items desde un array {{nRowId,cImage,cTitle,aText,lEdit,lDelete,aParams,cIcon,cClrPane}}
/*
TODO: La parte de DELETE no esta optimizada, por defecto uso ajax y el cambio lo aplica sobre el propio listView
TODO: Preparar una versión que no pagine automáticamente, sino que le enviamos directamente la página en aItems
*/
PROPERTY cIconOpen INIT "" //"keyboard_arrow_down"
PROPERTY cIconClose INIT "" //"keyboard_arrow_right"
METHOD New( oParent )
METHOD CambiaIcono
METHOD CreateItem ( oItem )
DATA nFinItem // Eran locales, pasadas a Data por createitem
DATA nIniItem
ENDCLASS