Comunidad de diseño web y desarrollo en internet online

Evitar que la rama de un Tree se cierre

Citar            
MensajeEscrito el 01 Dic 2010 04:57 pm
Hola a todos.

Pues sí, en síntesis lo que quiero hacer es inhibir o evitar que las ramas de un componente Tree puedan cerrarse; me interesa mantener todo el contenido del Tree siempre visible.

¿Se podría hacer? Si no, ¿hay otra alternativa, con algún otro componente? Por cierto, lo estoy trabajando en Flex 3.

Saludos!!!

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

chrome
Citar            
MensajeEscrito el 03 Dic 2010 11:21 am
Buenas,

Tienes la opción de displayItemsExpanded="true", esto lo puedes hacer como una propiedad de tu tree o en el código cuando quieras volver a expandir pones:

idTree.displayItemsExpanded="true";

Saludos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 03 Dic 2010 02:21 pm
Gracias por tu respuesta, armolina.

Yo tengo un código que expande el Tree apenas se carga, así:

Código ActionScript :

myTree.openItems = dp..node;


Donde dp es un xml que me sirve para alimentar el Tree. Y funciona sin problemas. El asunto es que, una vez corriendo la aplicación, quiero evitar que el usuario pueda colapsar cualquier nodo (rama) del Tree, para que toda la información esté siempre visible.

Probé colocando el código anterior en el evento itemClose del Tree, haciendo esto:

Código ActionScript :

private function itemOpen(e:TreeEvent):void {
      myTree.openItems = dp..node;
}
<mx:Tree dataProvider="{dp}" showRoot="false" labelField="@label" id="myTree" itemClose="itemOpenEvt(event)"/>


Pero no lo mantiene abierto, sino que hace el proceso de cierre de la rama e inmediatamente la vuelve a abrir. Lo que yo quiero es evitar que pueda hacer el cierre de la rama, no sé si me explico. ¿Se puede? ¿Cómo?

Saludos!!!

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

chrome
Citar            
MensajeEscrito el 03 Dic 2010 08:56 pm
Bueno ahora si entiendo lo que querías hacer :)

Aquí tienes el código que hace lo que tu quieres, digamos que lo que hace es no dejar en ningún momento que el usuario haciendo click en el icono de expandir/contraer pueda hacer nada, es como deshabilitarlos.

Código XML :

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" viewSourceURL="srcview/index.html">
   <fx:Script>
      <![CDATA[
         import mx.controls.Alert;
         protected function XMLTree_renderHandler(event:Event):void
         {
            this.XMLTree.expandItem(XML(this.treeData.node), true, true);
         }
         
         protected function expand():void
         {
            collapseHandler(); //Vaciamos los items abiertos, por si hubiera alguno.
            XMLTree.openItems=this.treeData..node; //Abrimos todos los nodos
            XMLTree.validateNow(); //Forzamos a aplicar los cambios
         }
         
         protected function collapseHandler():void
         {
            this.XMLTree.openItems=[];
         }
      ]]>
   </fx:Script>
   <fx:Declarations>
      <fx:XMLList id="treeData">
         <root>
            <node label="Parent 1">
               <node label="Child 1"/>
               <node label="Child 2">
                  <node label="Grandchild 1"/>
                  <node label="Grandchild 2"/>
               </node>
               <node label="Child 3"/>
               <node label="Child 4"/>
               <node label="Child 5">
                  <node label="Grandchild 1"/>
                  <node label="Grandchild 2"/>
               </node>
            </node>
            
         </root>
      </fx:XMLList>
      
   </fx:Declarations>
   <s:layout>
      <s:VerticalLayout horizontalAlign="center"
                    verticalAlign="middle"/>
   </s:layout>
   <s:VGroup width="400"
           horizontalAlign="center">
      
      <mx:Tree id="XMLTree"
             width="100%"
             height="270"
             showRoot="false"
             labelField="@label"
             dataProvider="{this.treeData}" 
             borderVisible="false"
             creationComplete="expand()"
             itemClose="expand()"/>
   </s:VGroup>
</s:Application>


Cualquier cosa, me puedes ir comentando.

Saludos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 07 Dic 2010 02:35 pm
Te funcionó?
:wink:

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 07 Dic 2010 05:07 pm
Gracias por tu respuesta y atención, armolina.

Sí que funcionó!!! Gracias totales...

Saludos!!!

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

chrome
Citar            
MensajeEscrito el 08 Dic 2010 10:29 am
Me alegro ;)

Saludos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.