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>
|