Rational Developer para System z

Lição 1: Criar a Classe CustomContextProvider

Esta lição se baseia na parte superior do projeto de plug-in criado no Exercício 5, e modificado no Exercício 6. Nesta lição, você criará a classe CustomContextProvider, que pode ser customizada para se ajustar a qualquer visualizador desejado. Por exemplo, se você desejar o visualizador do campo, o provedor de contexto pode estender o CarmaFieldsContentProvider.

Para criar a classe CARMAContextProvider:

  1. Certifique-se de estar na perspectiva Desenvolvimento do Plug-in. Na visualização Package Explorer, expanda o projeto de plug-in com.ibm.carma.plugin.view usado para os Exercícios 5 e 6.
  2. Clique com o botão direito do mouse no pacote view que contém as classes CARMADeveloperView e CustomLabelProvider e selecione Novo > Classe.
  3. Na caixa de diálogo Nova Classe Java que é aberta, insira CustomContextProvider no campo de texto Nome.
  4. Clique no botão Navegar à direita do campo de texto Superclasse. Na caixa de diálogo Seleção da Superclasse que é aberta, insira o texto do filtro, CARMATreeContentProvider. Selecione a classe correspondente e clique em OK.
  5. Marque a caixa de seleção Construtores da superclasse e clique em Concluir. O diálogo Nova Classe Java será fechado e a classe CustomContentProvider será criada.
  6. Comece por garantir que as importações a seguir estão incluídas na classe Java. Inclua qualquer uma que esteja ausente.
    import java.util.Vector;
    
    import com.ibm.carma.model.RepositoryInstance;
    import com.ibm.carma.ui.view.CarmaTreeContentProvider;
  7. Modifique o método getChildren para alterar o conteúdo fornecido para o visualizador. Esse método é onde o provedor pode controlar quais itens são enviados para o visualizador ao expandir o RAM. Para esse tutorial, implemente o método getChildren para retornar somente as instâncias do repositório que têm um token do CARMA no nome e não são uma listagem, um objeto ou uma instância de repositório de carregamento.

    O pseudocódigo a seguir demonstra o que o método getChildren deve fazer:

    get the children of the object that would normally be returned;
    for each child{
       if(the child is a repository instance)
       {
          if(the repository instance has a CARMA token and is not a listing, object, or load repository instance)
              add the child to the list of displayable children;
       }
    }
    Use o código de amostra a seguir para o método getChildren:
    public Object[] getChildren(Object parent) {
       Object[] children = super.getChildren(parent);
    
       //Do not parse non-existant children
       if(children == null)
       {
          return children;
       }
    
       Vector<Object>displayChildren = new Vector<Object>();
       for(int i = 0; i < children.length; i++)
    	{
          if(children[i] instanceof RepositoryInstance)
          {
             RepositoryInstance myContainer = (RepositoryInstance) children[i];
             if (myContainer.getName().contains("CARMA"))
             {
                displayChildren.add(children[i]);
             }
          }
          else
          {
             displayChildren.add(children[i]);
          }
       }
       return displayChildren.toArray();
    }
  8. Salve a origem e depure qualquer erro.

Termos de Utilização | Feedback

Este centro de informações é desenvolvido pela tecnologia Eclipse. ( http://www.eclipse.org )