Statistics
| Revision:

root / trunk / libraries / libIverUtiles / src / com / iver / utiles / extensionPoints / package.html @ 4676

History | View | Annotate | Download (2.09 KB)

1
<html>
2
<body>
3

    
4
Este paquete expone un mecanismo para registro de clases.
5
<br>
6
Permite registrar clases o factorias de clases que luego pueden ser
7
recuperadas para construir instancias.
8
<br>
9
La finalidad de este registro es el manejo de puntos de extension a una
10
aplicacion. Una aplicacion declara o registra con un nombre los puntos de 
11
extension que va a tener. Cada punto de extension puede tener registradas una
12
o mas extensiones. Cuando se quiere a?adir una extension a la aplicacion, se
13
registra la clase o factoria que gestiona esa extension para el punto de extension
14
que se desee. 
15
<br>
16
Veamos esto con un ejemplo.
17
<br>
18
Supongamos que queremos a?adir un punto de extension a la aplicacion gvSIG, que
19
permita asignar un mecanismo de presentacion de la informacion asociada a la
20
herramienta de "informacion" especializada segun el tipo de tema sobre el que se
21
esta trabajando.
22
<br>
23
Lo primero que tendriamos que hacer es darle un nombre al punto de extension.
24
Lo llamaremos "InfoByPoint". Para esto, parte de la aplicacion que valla a utilizar
25
las extensiones que se registren en este punto deberia hacer lo siguiente:
26
<br>
27
<code>
28
  ExtensionPoint infoByPoint = new ExtensionPoint("InfoByPoint","Registra las distintas extensiones que se pueden a?adir al 'InfoByPoint'");
29
  ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
30
  
31
  extensionPoints.put(infoByPoint);
32
</code>
33
Con esto creamos un punto de extension de nombre "InfoByPoint", recogemos la 
34
instancia del registro de extensiones e insertamos el nuevo punto de extenstion
35
en el.
36
<br>
37
Si desde la parte de la aplicacion que se quieran acceder a la extension de nombre "MiLayer"
38
se haria:
39
<br>
40
<code>
41
    ExtensionPoint infoByPoint = (ExtensionPoint)extensionPoints.get("InfoByPoint");
42
    Object ext = infoByPoint.create("MiLayer");
43
</code>
44
Y para poder recorrer las distintas extensiones de ese punto:
45
<br>
46
<code>
47
    ExtensionPoint infoByPoint = (ExtensionPoint)extensionPoints.get("InfoByPoint");
48
        Iterator infoByPoint =infoByPoint.keySet().iterator();
49
        while( i.hasNext() ) {
50
                String nombre = (String)i.next();
51
                ...
52
                
53
        }
54
</code>  
55

    
56
</body>
57
</html>