Rational Developer for System z


Lección 1: Crear la clase CustomContextProvider

Esta lección se basa en el proyecto de plug-in que ha creado en el ejercicio 5 y modificado en el ejercicio 6. En esta lección creará la clase CustomContextProvider, que puede personalizarse para ajustarla a al visor que desee. Por ejemplo, si desea el visor de campos, el proveedor de contextos puede ampliar CarmaFieldsContentProvider.

Para crear la clase CARMAContextProvider:

  1. Compruebe que se encuentra en la perspectiva Desarrollo de plug-ins. En la vista Explorador de paquetes, expanda el proyecto de plug-in com.ibm.carma.plugin.view que ha utilizado en los ejercicios 5 y 6.
  2. Pulse con el botón derecho del ratón el paquete view que contiene las clases CARMADeveloperView y CustomLabelProvider y seleccione Nuevo > Clase.
  3. En el recuadro de diálogo Clase Java nueva que se abre, especifique CustomContextProvider en el campo de texto Nombre.
  4. Pulse el botón Examinar situado a la derecha del campo de texto Superclase. En el recuadro de diálogo Selección de superclase que se abre, especifique el texto de filtro CARMATreeContentProvider. Seleccione la clase coincidente y pulse Aceptar.
  5. Marque el recuadro de selección Constructores de superclase y pulse Finalizar. El diálogo Clase Java nueva se cerrará y se creará la clase CustomContentProvider.
  6. Empiece por asegurarse de que las importaciones siguientes se han incluido en la clase Java™. Añada las que falten.
    import java.util.Vector;
    
    import com.ibm.carma.model.RepositoryInstance;
    import com.ibm.carma.ui.view.CarmaTreeContentProvider;
  7. Deberá modificar el método getChildren para cambiar el contenido suministrado al visor. Este método es la ubicación en la que el proveedor puede controlar qué elementos se envían al visor al expandir el RAM. En esta guía de aprendizaje, implementará el método getChildren para que devuelva sólo instancias de repositorio que tengan una señal CARMA en el nombre y que no sean una instancia de repositorio de listado, objeto o carga.

    A continuación figura un pseudocódigo que muestra lo que debe hacer el método getChildren:

    obtener los hijos del objeto que de devolverían normalmente;
    para cada hijo
    {
       si(el hijo es una instancia de repositorio)
       {
          si(la instancia de repositorio tiene una señal CARMA y no es una instancia de repositorio de listado, objeto o carga)
              añadir el hijo a la lista de hijos visualizables;
       }
    }
    Utilice el código de ejemplo siguiente para el método getChildren:
    public Object[] getChildren(Object parent)
    {
       Object[] children = super.getChildren(parent);
    
       //No analizar hijos inexistentes
       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. Guarde el código fuente y depure los errores.

Términos de uso | Comentarios



Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)