public void Initialize()
        {
            lstNiveles.Items.Clear();
            lstEscogencia.Items.Clear();

            System.Web.UI.WebControls.TreeView wft = (System.Web.UI.WebControls.TreeView)Web.Global.FindMyControl(Page, "wfTreeView");
            wft.Visible = true;
            wft.ExpandAll();
            //NodeIndex = wft.SelectedValue;

            if (WorkflowId != -1 && FirstTime)
            {
                FirstTime      = false;
                wft.DataSource = WFPolitica.ObtenerRepresentacionXmlDataSourceConRutas(WorkflowId);

                // we want the full name displayed in the tree so
                // do custom databindings
                TreeNodeBinding Binding = new TreeNodeBinding();
                Binding.TextField  = "FullName";
                Binding.ValueField = "ID";
                wft.DataBindings.Add(Binding);

                wft.DataBind();
            }

            System.Web.UI.WebControls.TreeNode tn = Global.GetNodeFromPath(wft.Nodes, NodeIndex);
            if (tn == null || tn.ChildNodes.Count > 1)
            {
                return;                                        //MOSTRAR ALGUN MENSAJE DE ALARMA: no es una hoja donde se pueda conseguir una ruta
            }
            int ID = 0;

            if (tn.Value[0] == 'R')
            {
                ID = Convert.ToInt32(tn.Value.Substring(2));

                //lstNiveles.DataSource = WFGrupoDeRoles.ObtenerGruposDeRolesExcepto(ID);
                lstNiveles.DataSource     = WFGrupoDeRoles.ObtenerGruposDeRolesExcepto(0);
                lstNiveles.DataTextField  = "strNbrRoles";
                lstNiveles.DataValueField = "intCodRoles";
                lstNiveles.DataBind();

                lstEscogencia.DataSource     = WFGrupoDeRoles.ObtenerGruposDeRoles(ID, tn.Text);
                lstEscogencia.DataTextField  = "strNbrRoles";
                lstEscogencia.DataValueField = "intCodRoles";
                lstEscogencia.DataBind();
            }
            else
            {
                lstNiveles.DataSource     = WFGrupoDeRoles.ObtenerGruposDeRolesExcepto(ID);
                lstNiveles.DataTextField  = "strNbrRoles";
                lstNiveles.DataValueField = "intCodRoles";
                lstNiveles.DataBind();
            }

            /*
             * Microsoft.Web.UI.WebControls.TreeView tvw = (Microsoft.Web.UI.WebControls.TreeView)Page.FindControl("tvWorkflow");
             *          if(WorkflowId != -1 && FirstTime)
             *          {
             *                  FirstTime = false;
             *                  tvw.TreeNodeSrc = WFPolitica.ObtenerRepresentacionXmlConRutas(WorkflowId);
             *                  tvw.DataBind();
             *          }
             *
             *          tvw.Visible = true;
             *          tvw.AutoPostBack = true;
             *          tvw.ExpandLevel = NIVELES_EXPANDIDOS;
             *
             *          NodeIndex = tvw.SelectedNodeIndex;
             *          Microsoft.Web.UI.WebControls.TreeNode tn = tvw.GetNodeFromIndex(NodeIndex);
             *          int ID = 0;
             *          if(tn != null)
             *          {
             *                  if(tn.NodeData[0] != 'N')
             *                  {
             *                          ID = Convert.ToInt32(tn.NodeData);
             *
             *                          lstNiveles.DataSource = WFGrupoDeRoles.ObtenerGruposDeRolesExcepto(ID);
             *                          lstNiveles.DataTextField = "strNbrRoles";
             *                          lstNiveles.DataValueField = "intCodRoles";
             *                          lstNiveles.DataBind();
             *
             *                          lstEscogencia.DataSource = WFGrupoDeRoles.ObtenerGruposDeRoles(ID,tn.Text);
             *                          lstEscogencia.DataTextField = "strNbrRoles";
             *                          lstEscogencia.DataValueField = "intCodRoles";
             *                          lstEscogencia.DataBind();
             *                  }
             *                  else
             *                  {
             *                          lstNiveles.DataSource = WFGrupoDeRoles.ObtenerGruposDeRolesExcepto(ID);
             *                          lstNiveles.DataTextField = "strNbrRoles";
             *                          lstNiveles.DataValueField = "intCodRoles";
             *                          lstNiveles.DataBind();
             *                  }
             *          }*/
        }
        protected void btnDel_Click(object sender, System.EventArgs e)
        {
            System.Web.UI.WebControls.TreeView wft = (System.Web.UI.WebControls.TreeView)Web.Global.FindMyControl(Page, "wfTreeView");
            System.Web.UI.WebControls.TreeNode tn  = Global.GetNodeFromPath(wft.Nodes, NodeIndex);
            if (tn == null || tn.ChildNodes.Count > 1)
            {
                return;
            }

            if (lstEscogencia.SelectedIndex > -1 && tn.Value[0] == 'R')
            {
                if (lstEscogencia.Items.Count > 1)
                {
                    int       ID    = Convert.ToInt32(tn.Value.Substring(2));
                    ArrayList rutas = WFGrupoDeRoles.ObtenerGruposDeRoles(ID, tn.Text);

                    string camino = "";
                    int    i      = 0;
                    for (int j = rutas.Count; i < j; i++)
                    {
                        if (((WFGrupoDeRoles)rutas[i]).intCodRoles != Convert.ToInt32(lstEscogencia.SelectedValue))
                        {
                            camino += ((WFGrupoDeRoles)rutas[i]).intCodRoles.ToString() + ";";
                        }
                    }

                    if (WFWorkflow.InsertarCamino(Int32.Parse(tn.Value.Substring(2)), camino))
                    {
                        FirstTime = true;
                        Initialize();
                    }
                }
                else
                {
                    int ID = Convert.ToInt32(tn.Value.Substring(2));

                    if (WFWorkflow.BorrarCamino(ID))
                    {
                        FirstTime = true;
                        Initialize();
                    }
                }
            }


            /*
             * Microsoft.Web.UI.WebControls.TreeView tvw = (Microsoft.Web.UI.WebControls.TreeView)Page.FindControl("tvWorkflow");
             *          //NodeIndex = tvw.SelectedNodeIndex;
             *          Microsoft.Web.UI.WebControls.TreeNode tn = tvw.GetNodeFromIndex(tvw.SelectedNodeIndex);
             *
             *          if (lstEscogencia.SelectedIndex > -1 && tn.NodeData[0] != 'N')
             *          {
             *                  if(lstEscogencia.Items.Count > 1)
             *                  {
             *                          int ID = Convert.ToInt32(tn.NodeData);
             *                          ArrayList rutas = WFGrupoDeRoles.ObtenerGruposDeRoles(ID,tn.Text);
             *
             *                          string camino = "";
             *                          int i = 0;
             *                          for(int j=rutas.Count; i<j; i++)
             *                          {
             *                                  if(((WFGrupoDeRoles)rutas[i]).intCodRoles != Convert.ToInt32(lstEscogencia.SelectedValue))
             *                                          camino += ((WFGrupoDeRoles)rutas[i]).intCodRoles.ToString() + ";";
             *                          }
             *
             *                          if (WFWorkflow.InsertarCamino(Int32.Parse(tn.NodeData),camino))
             *                          {
             *                                  FirstTime = true;
             *                                  Initialize();
             *                          }
             *                  }
             *                  else
             *                  {
             *                          int ID = Convert.ToInt32(tn.NodeData);
             *
             *                          if (WFWorkflow.BorrarCamino(ID))
             *                          {
             *                                  FirstTime = true;
             *                                  Initialize();
             *                          }
             *                  }
             *          }
             * */
        }