scaCollapse

Descripción del Control

scaCollapse es un User Control multi proposito creado para expandir y colapsar elementos de un form. Por ejemplo, puedes crear un acordeon, una lista colapsable, formulario y mucho mas. 

Compatibilidad

Web

Usando el control 

El control puede ser usado para cualquier elmento en el web form y ser aplicado para grids, tablas, imagenes, textblock, variables, etc. 
Es muy simple de usar, tan solo necesitas incluir el User Control en tu pagina maestra o en un Web Panel y despues Colapsar/expandir elementos del form usando la propiedad del control standar Visible. 

Ejemplo

Event 'Collapse-Simplifica-Logo'
     SimplificaLogo.Visible = False
EndEvent


Simple? Si! no necesitas hacer nada especial.
En suma, puedes elegir el efecto a aplicar mientras el elemento esta siendo colapsado. Para hacer esto, necesitas tener la prpoeidad "Effect" en design time (properties dialog) o run-time (by code).
Posibles valores son : fade y slide. 

Ejemplo : 

Event 'Collapse-Simplifica-Logo'
     scaCollapse1.Effect = "slide"
     SimplificaLogo.Visible = False
Endevent

Si quieres usar este efecto solo en un evento especifico, puede usar la propiedad "Active". Asignar valor a la propiedad Active en falso usando las properties dialog del control y en el evento que quieres que hacer la magia agregar : <controlName>.Active = true.
 
Ejemplo: 

Event 'Collapse-Simplifica-Logo'
     scaCollapse1.Active = true
     SimplificaLogo.Visible = False
     scaCollapse1.Active = false
EndEvent

Una buena practica para este caso the forms o mensajes Tips/HowTo seria incluir el boton/link que dispara el evento sin el objeto a colapsar. Entonces, una vez que el usuario entra la informacion requerida, el cuestionario desaparecera suavemente.
 
Ejemplo:
Cuando arrastramos el control al form y el xpz con tres ejemplos sera importado, uno con elmentos simple niveles planos y otro para grillas. 

Metodos heredados

Actualmente todas las funcionalidades scaCollapse pueden ser utilizadas sin necesitar llamar a todos estos metodos.
Los metodos se mantuvieron con fines de compatibilidad con el fin de evitar obligar a los usuarios a cambiar lo que ya se ha implementado .
La sobrecarga de método actualmente visible está activada de forma predeterminada, para desactivarla debe ir al diálogo de propiedades del control y establecer el valor de la propiedad "Active" como "false".
Para contraer un control de formulario (o contenedor) puede llamar al método Collapse:
control.Collapse(<InternalName)
ToWhere control es el nombre interno de un control que debe colapsarse. (por ejemplo: Table1.InternalName)

Example:

Event 'Collapse-Expand'
     scaCollapse1.Collapse(SimplificaLogo.InternalName)
Endevent

Para elementos en los grid,es necesario utilizar el método CollapseInGrid. (nota: el evento debe ejecutarse en el lado del cliente). 
control.CollapseInGrid(<InternalName>,<Row>)
Donde "InternalName" era el nombre interno de un control

"row" la posición de fila en el grid.

Ejemplo: 
   scaCollapse1.CollapseInGrid("TABLE1", &i)

Se separan en dos casos porque la propiedad InternalName no es devuelta correctamente por GeneXus cuando el elemento está en una grilla (devuelve el identificador sin la identificación de la fila).
¿Cómo saber si un elemento está colapsado o expandido?
control.Collapsed (<InternalName>)
o en caso de una grilla: 
control.CollapsedInGrid (<InternalName>, <Row>)
 
Ejemplo:

Event 'IsCollapsed'
    if scaCollapse1.Collapsed("SIMPLIFICALOGO")
        msg("Collapsed=true")
    else    
        msg("Collapsed=false")
    endif
EndEvent