Ir para o conteúdo

 Voltar a Composer
Tela cheia

Duvidas quanto a geracao do codigo NCL no Composer

21 de Novembro de 2012, 16:15 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 29 vezes

Primeiramente cumprimentos a todos do grupo. Não sei se este é o melhor lugar para tirar essa duvida, mas n encontrei outro.

Preciso modificar o codigo atual do Composer para que ele gere novos atributos no codigo NCL. Sei que o Roberto Azevedo é um dos desenvolvedores, mas nao sei se ele ficou responsavel com a parte do plugin textual (que acho que cuida dessa parte de geração do documento NCL). Roberto alguma indicação?

O que eu quero é alguma luz de qual plugin, classe , método eu tenho que modificar para colocar alterações na forma como o codigo NCL é gerado.

 

Abs a todos.

Autor: thales ferreira


66 comentários

  • D5f235ea53c0f98038f0ec250533cf3d?only path=false&size=50&d=404Eduardo Cruz Araújo(usuário não autenticado)
    21 de Novembro de 2012, 16:35

     

    Olá Thales,

    O código NCL é gerado a partir do modelo interno do NCL Composer.

    Sugiro você olhar o método toString()  da classe Entity do projeto composer-core (atualmente linha 210 do arquivo Entity.cpp).

    Os seguintes arquivos podem ajudar também:

    - Project.cpp, método toString() (atualmente linha 172), projeto composer-core.

    - ComposerMainWindow.cpp, método saveCurrentProject() (atualmente linha 1076), projeto composer-gui.

     abs,

    edcaraujo

    • 2cb7029b058a231e2d9c1a91c0bdc804?only path=false&size=50&d=404thales ferreira(usuário não autenticado)
      21 de Novembro de 2012, 17:10

       

      Ola Eduardo, obrigado pelas informações. Fiquei com uma duvida. O metodo que salva o projeto (saveCurrentProject() de ComposerMainWindow.cpp?) ele coloca no arquivo .ncl o conteudo identico ao que é exibido pelo plugin textual?

      Eu ainda não fiz testes quanto ao que falei no meu email em seguida. Mas eu acho que funciona.

      Abs.

      • D5f235ea53c0f98038f0ec250533cf3d?only path=false&size=50&d=404Eduardo Cruz Araújo(usuário não autenticado)
        21 de Novembro de 2012, 17:50

         

        Oi Thales,

        Ele salva o modelo interno do NCL Composer e chama cada plugin para salvar o seu modelo específico. A visão estrutural, por exemplo, salva a posição de cada objeto, já que essa informação não é mantidada pelo modelo interno. No caso da textual, ela também salva o posicionamento dos elementos no texto, para permitir a inserção/alteração de elementos de forma incremental.

        abs,

        edcaraujo

        • 2cb7029b058a231e2d9c1a91c0bdc804?only path=false&size=50&d=404thales ferreira(usuário não autenticado)
          22 de Novembro de 2012, 11:37

           

          Ah sim Eduardo. Pensei que era ele tambem responsavel por searializar para o arquivo .ncl.

           

          Obrigado.

          • D5f235ea53c0f98038f0ec250533cf3d?only path=false&size=50&d=404Eduardo Cruz Araújo(usuário não autenticado)
            22 de Novembro de 2012, 14:31

             

            Oi Thales,

            Pensou certo! Além de salvar o *.cpr (Modelo Interno + Modelos dos Plugins), ele salva uma cópia do modelo interno como *.ncl.

            Procure por "saveAlsoNCLDocument" no código. :)

            abs

            edcaraujo

  • 2cb7029b058a231e2d9c1a91c0bdc804?only path=false&size=50&d=404thales ferreira(usuário não autenticado)
    21 de Novembro de 2012, 16:53

     

    Antes que alguem perca tempo, consegui fazer o que eu queria. Dei mais uma vasculhada no codigo e consegui fazer. 

    Eu queria adicionar o atributo value para cada novo conector criado.Caso alguém se depare com esse problema ai vai o plugin e metodo responsavel pela descricao do conector.

    Após cada entidade ser criada pela visao estrutural o plugin QnstComposerPlugin é notificado pelo slot onEntityAdded(), o qual em seguida preenche uma entidade em especifico com novos elementos e atributos. No caso especifico do conector o metodo QnstComposerPlugin::requestComplexConnectorAddition(const QString uid, const QString parent, const QMap<QString, QString> properties) cuida de preencher os atributos do conector e também de disparar o evento  addEntity(...), com os novos atributos, para que o plugin textual receba as informacoes e gere o codigo com os dados preenchidos pelo plugin QnstComposerPlugin.

     

     

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo