root / trunk / libraries / libIverUtiles / src / com / iver / utiles / extensionPoints / package.html @ 4676
History | View | Annotate | Download (2.09 KB)
1 | 4643 | jjdelcerro | <html>
|
---|---|---|---|
2 | <body>
|
||
3 | |||
4 | 4676 | jorpiell | Este paquete expone un mecanismo para registro de clases. |
5 | 4643 | jjdelcerro | <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 | 4676 | jorpiell | Object ext = infoByPoint.create("MiLayer"); |
43 | 4643 | jjdelcerro | </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> |