Example #1
0
 // Retorna o Nodo, dado um Ponteiro para Nodo
 // Tipo (0= Pessoa; 1= Artigo; 2= Livro; 3= Periódico; 4= Capítulo; 5= Conferência; 6= Instituição)
 public static TInfoNodo GetNodoFromLists(TPNodo Nodo)
 {
     switch (Nodo.Tipo)
     {
         case 0:
             return Program.mPessoas[(int)Nodo.Índice];
         case 1:
             return Program.mArtigos[(int)Nodo.Índice];
         case 2:
             return Program.mLivros[(int)Nodo.Índice];
         case 3:
             return Program.mPeriódicos[(int)Nodo.Índice];
         case 4:
             return Program.mCapítulos[(int)Nodo.Índice];
         case 5:
             return Program.mConferências[(int)Nodo.Índice];
         default:
             return null;
     }
 }
Example #2
0
        public Vector2 Size; // Tamanho (em worldSize)

        #endregion Fields

        #region Constructors

        // Inicializador de um maxNodo, automaticamente colocando todos os nodos ligados
        public TDrawMaxNodo(TPNodo Nodo, Vector2 Pos, TInfoNodo nodoAnterior)
        {
            MainNodo = Program.GetNodoFromLists(Nodo);
            Ligações = new List<int>();
            Nodos = new List<TDrawNodo>();
            Lines = new List<int>();
            Loops = 0;
            Size = new Vector2(0, 0);
            this.Pos = Pos;
            Drawable = true;
            this.nodoAnterior = nodoAnterior;
        }
Example #3
0
        // Carrega as informações de um nodo na aba da direita
        public static void CarregaInformações(TPNodo Nodo)
        {
            if (Nodo != null)
            {
                TInfoNodo iNodo = Program.GetNodoFromLists(Nodo);
                switch (Nodo.Tipo)
                {
                    // Pessoa
                    case 0:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Pessoa", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = true;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Artigos: ";
                            TFPessoa Information = new TFPessoa();
                            bool Go = true;
                            try
                            {
                                Information = Program.fPessoas.GetPessoa(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Nome: " + Information.NomeCompleto, true);
                                Renderer.rInfoInfos.Add("País: " + Information.País, true);
                                Renderer.rInfoInfos.Add("Resumo: " + Information.TextoResumo, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Nome: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            Renderer.ArtigosSorts = new List<TFArtigo>();
                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                if (iNodo.Ligações[i].Tipo == 1)
                                {
                                    Renderer.ArtigosSorts.Add(Program.fArtigos.GetArtigo(Program.GetNodoFromLists(iNodo.Ligações[i]).Data));
                                    Renderer.ArtigosSortsI.Add(Program.GetNodoFromLists(iNodo.Ligações[i]));
                                }
                            Renderer.OrganizeLeftOrgPanel(3);
                            break;
                        }
                    // Artigo
                    case 1:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Artigo", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = false;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Pesquisadores: ";
                            TFArtigo Information = new TFArtigo();
                            bool Go = true;
                            try
                            {
                                Information = Program.fArtigos.GetArtigo(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Título: " + Information.Título, true);
                                if (Information.ISSN == "i")
                                {
                                    Renderer.rInfoInfos.Add("ISSN: N/A", true);
                                    Renderer.rInfoInfos.Add("Conferência: " + Information.PeriodicoOuConferencia, true);
                                }
                                else
                                {
                                    Renderer.rInfoInfos.Add("ISSN: " + Information.ISSN, true);
                                    Renderer.rInfoInfos.Add("Periódico: " + Information.PeriodicoOuConferencia, true);
                                }
                                Renderer.rInfoInfos.Add("Ano Publicação: " + Information.AnoPublicação, true);
                                Renderer.rInfoInfos.Add("Idioma: " + Information.Idioma, true);
                                Renderer.rInfoInfos.Add("Divulgação: " + Information.MeioDivulgação, true);
                                Renderer.rInfoInfos.Add("Natureza: " + Information.Natureza, true);
                                string pc = "";
                                foreach (string npc in Information.PalavrasChave)
                                    if (pc == "")
                                        pc += npc;
                                    else
                                        pc += ", " + npc;
                                Renderer.rInfoInfos.Add("Palavras-chave: " + pc, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Título: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            // listagem alfabética dos pesquisadores
                            List<string> PesquisadoresAlfa = new List<string>();

                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                if (iNodo.Ligações[i].Tipo == 0)
                                    PesquisadoresAlfa.Add(Program.GetNodoFromLists(iNodo.Ligações[i]).Nome);
                            PesquisadoresAlfa.Sort();
                            for (int i = 0; i < PesquisadoresAlfa.Count; i++)
                                Renderer.rInfoLista.Add(PesquisadoresAlfa[i]);
                            break;
                        }
                    // Livro
                    case 2:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Livro", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = false;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Ligações: ";
                            TFLivro Information = new TFLivro();
                            bool Go = true;
                            try
                            {
                                Information = Program.fLivros.GetLivro(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Título: " + Information.Título, true);
                                Renderer.rInfoInfos.Add("Ano Publicação: " + Information.AnoPublicação, true);
                                Renderer.rInfoInfos.Add("ISBN: " + Information.ISBN, true);
                                Renderer.rInfoInfos.Add("Idioma: " + Information.Idioma, true);
                                Renderer.rInfoInfos.Add("Divulgação: " + Information.MeioDivulgação, true);
                                string pc = "";
                                foreach (string npc in Information.PalavrasChave)
                                    if (pc == "")
                                        pc += npc;
                                    else
                                        pc += ", " + npc;
                                Renderer.rInfoInfos.Add("Palavras-chave: " + pc, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Título: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                Renderer.rInfoLista.Add(Program.GetNodoFromLists(iNodo.Ligações[i]).Nome);
                            break;
                        }
                    // Periódico
                    case 3:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Periódico", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = false;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Ligações: ";
                            TFPeriódico Information = new TFPeriódico();
                            bool Go = true;
                            try
                            {
                                 Information = Program.fPeridódicos.GetPeriódico(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Nome: " + Information.Nome, true);
                                Renderer.rInfoInfos.Add("ISSN: " + Information.ISSN, true);
                                Renderer.rInfoInfos.Add("Qualis: " + Information.Qualis, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Nome: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                Renderer.rInfoLista.Add(Program.GetNodoFromLists(iNodo.Ligações[i]).Nome);
                            break;
                        }
                    // Capítulo
                    case 4:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Capítulo de Livro", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = false;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Coautores: ";
                            TFCap Information = new TFCap();
                            bool Go = true;
                            try
                            {
                                Information = Program.fCapítulos.GetCapítulo(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Título: " + Information.Título, true);
                                Renderer.rInfoInfos.Add("Ano Publicação: " + Information.AnoPublicação, true);
                                Renderer.rInfoInfos.Add("ISBN: " + Information.ISBN, true);
                                Renderer.rInfoInfos.Add("Idioma: " + Information.Idioma, true);
                                Renderer.rInfoInfos.Add("Divulgação: " + Information.MeioDivulgação, true);
                                Renderer.rInfoInfos.Add("Livro: " + Information.Livro, true);
                                string pc = "";
                                if (Information.PalavrasChave != null)
                                    foreach (string npc in Information.PalavrasChave)
                                        if (pc == "")
                                            pc += npc;
                                        else
                                            pc += ", " + npc;
                                Renderer.rInfoInfos.Add("Palavras-chave: " + pc, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Título: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                Renderer.rInfoLista.Add(Program.GetNodoFromLists(iNodo.Ligações[i]).Nome);
                           break;
                        }
                    // Conferência
                    case 5:
                        {
                            Renderer.rInfoInfos.Clear();
                            Renderer.rInfoInfos.Add("Conferência", true);
                            Renderer.rInfoLista.Visible = true;
                            Renderer.rInfoLista.Items.Clear();
                            Renderer.rInfoOrgOpenPanel.Visible = false;
                            Renderer.rInfoTipoLista.Visible = true;
                            Renderer.rInfoTipoLista.Text = "Ligações: ";
                            TFConferência Information = new TFConferência();
                            bool Go = true;
                            try
                            {
                                Information = Program.fConferências.GetConferência(iNodo.Data);
                            }
                            catch
                            {
                                Go = false;
                            }
                            if (Go)
                            {
                                Renderer.rInfoInfos.Add("Nome: " + Information.Nome, true);
                                Renderer.rInfoInfos.Add("Caráter: " + Information.Caráter, true);
                                Renderer.rInfoInfos.Add("Qualis: " + Information.Qualis, true);
                            }
                            else
                            {
                                Renderer.rInfoInfos.Add("Nome: " + iNodo.Nome, true);
                                Renderer.rInfoInfos.Add(" Informações adicionais não disponíveis!", true);
                            }
                            for (int i = 0; i < iNodo.Ligações.Count; i++)
                                Renderer.rInfoLista.Add(Program.GetNodoFromLists(iNodo.Ligações[i]).Nome);
                            break;
                        }
                    default:
                        {
                            break;
                        }
                }
            }
        }
Example #4
0
        // Seleciona um nodo / maxNodo, dependendo do ViewMode
        public static void SelecionaNodoComVoltar(TPNodo Nodo, int Atual)
        {
            TInfoNodo nodoAtual = null;
            //TInfoNodo nodoAnterior = null;
            if (Atual > -1)
            {
                if (MaxNodos[Atual].MainNodo.Nodo == Nodo)
                    return;
                MaxNodos[Atual].Esconder();

                nodoAtual = MaxNodos[Atual].MainNodo;
                if (nodoAtual != null)
                {
                    if ((Program.GetNodoFromLists(Nodo) == MaxNodos[Atual].nodoAnterior) &&
                        (Atual > 0))
                    {
                        MaxNodos[Atual].Esconder();
                        MaxNodos[Atual].Deletar();
                        MaxNodos.RemoveAt(Atual);
                        MouseNodeHandler.MaxNodoSelecionado--;

                        MaxNodos[Atual - 1].Ressurgir();
                        AppGraphics.Camera.LookAt(new Vector2(0, 0), MaxNodos[Atual - 1].Size.X);
                        MouseNodeHandler.SelectNodo(AppGraphics.MaxNodos[MouseNodeHandler.MaxNodoSelecionado].MainNodo.DrawNodo);
                        CarregaInformações(MaxNodos[MouseNodeHandler.MaxNodoSelecionado].MainNodo.Nodo);
                        return;
                    }
                    else
                    {
                        MaxNodos[Atual].Esconder();
                        // Apaga todo os depois (apaga a linha seguinte de nodos)
                        for (int i = Atual + 1; i < MaxNodos.Count; i++)
                            MaxNodos.RemoveAt(Atual + 1);
                    }
                }
                else
                {
                    MaxNodos[Atual].Esconder();
                    // Apaga todo os depois (apaga a linha seguinte de nodos)
                    for (int i = Atual + 1; i < MaxNodos.Count; i++)
                        MaxNodos.RemoveAt(Atual + 1);
                }
            }
            else
            {
                ResetView();
            }

            CarregaInformações(Nodo);
            // Cria o novo na posição 0,0
            AppGraphics.MaxNodos.Add(
                new TDrawMaxNodo(Nodo, new Vector2(0, 0), nodoAtual));
            // Inicializa
            AppGraphics.MaxNodos[AppGraphics.MaxNodos.Count - 1].Inicializa();
            // Olha
            AppGraphics.Camera.LookAt(new Vector2(0, 0), AppGraphics.MaxNodos[AppGraphics.MaxNodos.Count - 1].Size.X);
            MouseNodeHandler.MaxNodoSelecionado = AppGraphics.MaxNodos.Count - 1;

            MouseNodeHandler.SelectNodo(AppGraphics.MaxNodos[MouseNodeHandler.MaxNodoSelecionado].MainNodo.DrawNodo);
        }