Пример #1
0
    protected void PopulateNode(Object source, TreeNodeEventArgs e)
    {
        modelos = (SortedList<int, ModeloCompetencias>)Session["modelos"];
        TreeNode node = e.Node;
        String[] paths = node.ValuePath.Split('|');

        if (paths.Length == 4)
        {
            //expandir uma prática
            currModelo = modelos[int.Parse(paths[0])];
            Pratica currPratica = currModelo.getFamilia(paths[1]).getCompetencia(paths[2]).getPratica(paths[3]);
            currPratica.loadPerguntas("JC");

            foreach (Pergunta perg in currPratica.Perguntas.Values)
            {
                TreeNode n1 = new TreeNode(perg.Name, perg.PerguntaID.ToString());
                node.ChildNodes.Add(n1);
            }
        }
        else if (paths.Length == 3)
        {
            //expandir uma competência
            currModelo = modelos[int.Parse(paths[0])];
            Competencia currCompetencia = currModelo.getFamilia(paths[1]).getCompetencia(paths[2]);
            currCompetencia.loadPraticas("JC");
            foreach (Pratica prat in currCompetencia.Praticas.Values)
            {
                TreeNode n1 = new TreeNode(prat.Name, prat.PraticaID.ToString());
                //n1.PopulateOnDemand = true;
                node.ChildNodes.Add(n1);
                prat.loadPerguntas("JC");
                if (prat.Perguntas.Count > 0) n1.PopulateOnDemand = true;
            }

        }
        else if (paths.Length == 2)
        {
            //expandir uma família
            currModelo = modelos[int.Parse(paths[0])];
            FamiliaCompetencias currFamilia = currModelo.getFamilia(paths[1]);
            currFamilia.loadCompetencias("JC",null);
            foreach(Competencia comp in currFamilia.Competencias.Values)
            {
                TreeNode n1 = new TreeNode(comp.Name, comp.CompetenciaID.ToString());
                //n1.PopulateOnDemand = true;
                node.ChildNodes.Add(n1);
                comp.loadPraticas("JC");
                if (comp.Praticas.Count > 0)
                    n1.PopulateOnDemand = true;
            }
        }
        else if (paths.Length == 1)
        {
            currModelo = modelos[int.Parse(node.Value)];
            currModelo.loadFamilias("JC");

            foreach (FamiliaCompetencias fam in currModelo.Familias.Values)
            {
                TreeNode n1 = new TreeNode(fam.Name, fam.FamiliaID.ToString());
                //n1.PopulateOnDemand = true;
                node.ChildNodes.Add(n1);
                fam.loadCompetencias("JC",null);
                if (fam.Competencias.Count > 0)
                {
                    n1.PopulateOnDemand = true;
                }
            }

        }
        Session["currModelo"] = currModelo;
    }