Revision 18962 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/RasterModule.java

View differences:

RasterModule.java
18 18
 */
19 19
package org.gvsig.rastertools;
20 20

  
21
import java.util.ArrayList;
22 21
import java.util.prefs.Preferences;
23 22

  
24 23
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
......
76 75
 * @author Nacho Brodin (nachobrodin@gmail.com)
77 76
 */
78 77
public class RasterModule extends Extension implements ConfigurationListener {
79
	/**
80
	 * Contador global de las capas generadas para raster
81
	 */
82
	private static int           layerCount = 1;
83
	private static ArrayList     propetiesListeners = new ArrayList();
84 78

  
85 79
	/**
86 80
	 * Indica si en el panel de preferencias se refresca automaticamente la vista
......
94 88
	 */
95 89
	public static boolean       askCoordinates = false;
96 90

  
97
	/**
98
	 * La gesti?n de nombres ?nicos en la generaci?n de capas se lleva de forma
99
	 * autom?tica. Cuando alguien crea una capa nueva, si esta no tiene nombre especifico,
100
	 * obtiene su nombre mediante este m?todo. La siguiente vez que se llame dar? un nombre
101
	 * distinto. El nombre de la capa ser? NewLayer_ seguido de un contador de actualizaci?n
102
	 * autom?tica cada vez que se usa.
103
	 * @return Nombre ?nico para la capa.
104
	 */
105
	public static String usesOnlyLayerName() {
106
		String oldValue = getOnlyLayerName();
107
		String newValue = "NewLayer_" + (++RasterModule.layerCount);
108
		for (int i = 0; i < propetiesListeners.size(); i++) {
109
			if(propetiesListeners.get(i) instanceof PropertyListener) 
110
				((PropertyListener)propetiesListeners.get(i)).actionValueChanged(new PropertyEvent(oldValue, "NewLayer", newValue, oldValue));
111
		}
112
		return newValue;
113
	}
114
	
115
	/**
116
	 * Obtiene el nombre ?nico de la siguiente capa sin actualizar el contador. Es
117
	 * solo para consulta. La siguiente vez que se llama a getOnlyLayerName o usesOnlyLayerName
118
	 * devolver? el mismo nomnbre. 
119
	 * @return Nombre ?nico para la capa.
120
	 */
121
	public static String getOnlyLayerName() {
122
		return "NewLayer_" + RasterModule.layerCount;
123
	}
124
	
125
	/**
126
	 * A?adir un listener a la lista de eventos
127
	 * @param listener
128
	 */
129
	public static void addOnlyLayerNameListener(PropertyListener listener) {
130
		if (!propetiesListeners.contains(listener))
131
			propetiesListeners.add(listener);
132
	}
133
	
134
	/**
135
	 * Elimina un listener de la lista de eventos
136
	 * @param listener
137
	 */
138
	public static void removeOnlyLayerNameListener(PropertyListener listener) {
139
		for (int i = 0; i < propetiesListeners.size(); i++)
140
			if(propetiesListeners.get(i) == listener)
141
				propetiesListeners.remove(i);
142
	}
143
	
144 91
	/*
145 92
	 * (non-Javadoc)
146 93
	 * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)

Also available in: Unified diff