MultiViews en NetBeans Platform parte 2

Ir abajo

MultiViews en NetBeans Platform parte 2

Mensaje  Admin (Viruz) el Jue Dic 13, 2012 7:43 pm

Hemos conocido un poco mas sobre las Multiviews en la plataforma de NetBeans como se comenta en la entrada anterior, para cada vista que se tenga se crea un JPanel y después se asociarán todas las vistas.

Pero al crear un JPanel no contaremos con algunas propiedades o asociaciones que tiene un TopComponent y se preguntarán ¿Si se puede crear una vista con un TopComponent? la respuesta es si y lo veremos a continuación, pero para ello seguiremos la base de la parte 1.

Opcional: Lo mas recomendable para realizar este ejercicio es crear dentro del paquete donde tenemos nuestras vistas un nuevo TopComponent, pero que se maneje un "Editor" como una vista les mostraré como se realiza.

Lo que se necesita conocer:
Pasos:

1. En nuestro editor donde agregamos las vistas EditorPaletaTopComponent implementaremos la interfaz MultiViewElement.

Código:
public final class EditorPaletaTopComponent extends TopComponent implements MultiViewElement

Como realizamos antes agregamos las importaciones correspondientes y los métodos abstractos, debes de tener los siguientes:

getVisualRepresentation()
getToolbarRepresentation()
setMultiViewCallback
canCloseElement()
componentDeactivated()
componentActivated()
componentHidden()
componentShowing()


Nota: Los métodos componentOpened() y componentClosed(), se encuentran ya que son parte de un TopComponent al crearse.

Nos marcará error en algunos métodos, por lo que aquí hay que hacer lo siguiente para que solucionar esto.
Código:
@Override
public void componentDeactivated() {
    super.componentDeactivated();
}

@Override
public void componentActivated() {
    super.componentActivated();
}

@Override
public void componentHidden() {
    super.componentHidden();
}

@Override
public void componentShowing() {
    super.componentShowing();
}
Nota: Los demás métodos los llenamos como ya se conoce.

2. Quitaremos el arreglo de MultiViewDescription del constructor y lo declararemos al principio de la clase (para poder utilizar la variable de forma global y no local) de tipo privado.

Código:
private MultiViewDescription dsc[] = {
    new MultiVista1Descripcion(),
    new MultiVista2Descripcion(),
};
3. De igual forma declaramos la siguiente línea donde se crea un TopComponent independiente y a este le asignaremos las vistas.

Código:
private TopComponent tc =  MultiViewFactory.createMultiView(dsc, dsc[0]);
Para evitar algún tipo de error comentaremos las líneas donde agregábamos las vistas en el constructor.

Código:
// add(MultiViewFactory.createMultiView(dsc, dsc[0]));
//open();
4. En el método componentOpened() asignamos las vistas creadas.

Código:
@Override
public void componentOpened() {
    tc =  MultiViewFactory.createMultiView(dsc, dsc[0]);
    tc.open();
}
5. Nos queda agregar el editor como si fuera una vista y como se conoce debe de tener una descripción, por lo que crearemos la clase que vendrá asociada con nuestro editor EditorPaletaTopComponentDescripcion.

La llenamos como las anteriores y al último nos queda agregar al arreglo la clase de la descripción.

Código:
 private MultiViewDescription dsc[] = {
    new MultiVista1Descripcion(),
    new MultiVista2Descripcion(),
    new EditorPaletaTopComponentDescripcion()
};

6. Haciendo bien todo el proceso tendremos que al abrir la ventana de EditorPaleta se abrirá un TopComponent independiente con las vistas.
[Tienes que estar registrado y conectado para ver esa imagen]
La Vista 3 es el TopComponent (el editor que se abre) y aunque suene redundante abrir 2 veces el editor solo es de prueba para que vean como se asocia la paleta.
[Tienes que estar registrado y conectado para ver esa imagen]
De esta manera sabemos como crear vistas con TopComponent y no solamente con JPanel.

Autor: Viruz study
Enlace: [Tienes que estar registrado y conectado para ver este vínculo]

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
avatar
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 30
Localización : Desktop

http://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.