Revision 12180

View differences:

trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/properties/control/EnhancedControl.java
20 20

  
21 21
import java.awt.event.ActionEvent;
22 22
import java.awt.event.ActionListener;
23
import java.awt.event.KeyEvent;
24
import java.awt.event.KeyListener;
25 23
import java.util.ArrayList;
26 24

  
27 25
import javax.swing.JCheckBox;
28
import javax.swing.event.ChangeEvent;
29
import javax.swing.event.ChangeListener;
30 26

  
27
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
28
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
31 29
import org.gvsig.raster.dataset.IStatistics;
30
import org.gvsig.raster.grid.filter.RasterFilter;
32 31
import org.gvsig.raster.grid.filter.RasterFilterList;
33 32
import org.gvsig.raster.grid.filter.RasterFilterListManager;
34 33
import org.gvsig.raster.grid.filter.enhancement.BrightnessContrastListManager;
......
36 35
import org.gvsig.raster.grid.filter.enhancement.ContrastFilter;
37 36
import org.gvsig.raster.grid.filter.enhancement.EnhancementListManager;
38 37
import org.gvsig.raster.grid.filter.enhancement.LinearEnhancementFilter;
38
import org.gvsig.raster.grid.filter.statistics.StatisticsListManager;
39 39
import org.gvsig.raster.grid.filter.statistics.TailTrimFilter;
40 40
import org.gvsig.raster.shared.IRasterDataset;
41 41
import org.gvsig.raster.shared.IRasterRendering;
......
63 63
	 * Manejador de eventos de los slider de brillo y contraste.
64 64
	 * @author Nacho Brodin (nachobrodin@gmail.com)
65 65
	 */
66
	class BrightnessContrastListener implements KeyListener, ChangeListener, ActionListener {
66
	class BrightnessContrastListener implements ActionListener, SliderListener {
67 67
		JCheckBox active = null;
68 68
		/**
69 69
		 * Constructor. Registra los listener
70 70
		 * @param panel
71 71
		 */
72 72
		public BrightnessContrastListener(EnhancedBrightnessContrastPanel panel) {
73
			panel.addBrightnessChangeListener(this);
74
			panel.addContrastChangeListener(this);
75
			panel.addBrightnessKeyListener(this);
76
			panel.addContrastKeyListener(this);
73
			panel.addBrightnessValueChangedListener(this);
74
			panel.addContrastValueChangedListener(this);
77 75
			active = panel.getActive();
78 76
			active.addActionListener(this);
79 77
		}
80 78

  
81
		public void keyPressed(KeyEvent e) {
82
		}
83

  
84
		public void keyReleased(KeyEvent e) {
85
			if (e.getKeyCode() == 10)
79
		/*
80
		 * (non-Javadoc)
81
		 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
82
		 */
83
		public void actionPerformed(ActionEvent e) {
84
			if (e.getSource() == active)
86 85
				onlyApply();
87 86
		}
88 87

  
89
		public void keyTyped(KeyEvent e) {
90
		}
91

  
92
		public void stateChanged(ChangeEvent e) {
88
		/*
89
		 * (non-Javadoc)
90
		 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueChanged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
91
		 */
92
		public void actionValueChanged(SliderEvent e) {
93 93
			onlyApply();
94 94
		}
95 95

  
96
		public void actionPerformed(ActionEvent e) {
97
			if (e.getSource() == active)
98
				onlyApply();
96
		/*
97
		 * (non-Javadoc)
98
		 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueDragged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
99
		 */
100
		public void actionValueDragged(SliderEvent e) {
99 101
		}
100 102
	}
101 103

  
......
105 107
	 * @version 14/06/2007
106 108
	 * @author Borja S?nchez Zamorano (borja.sanchez@iver.es)
107 109
	 */
108
	class EnhancedWithTrimListener implements ActionListener {
110
	class EnhancedWithTrimListener implements ActionListener, SliderListener {
109 111
		JCheckBox active = null;
110 112
		/**
111 113
		 * Constructor. Registra los listener
......
114 116
		public EnhancedWithTrimListener(EnhancedWithTrimPanel panel) {
115 117
			active = panel.getActive();
116 118
			active.addActionListener(this);
119
			panel.getTrimPanel().getRemoveCheck().addActionListener(this);
120
			panel.getTrimPanel().getTrimCheck().addActionListener(this);
121
			panel.getTrimPanel().getTrimSlider().addValueChangedListener(this);
117 122
		}
118 123

  
124
		/*
125
		 * (non-Javadoc)
126
		 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
127
		 */
119 128
		public void actionPerformed(ActionEvent e) {
120
			if (e.getSource() == active)
121
				onlyApply();
129
			onlyApply();
122 130
		}
131

  
132
		/*
133
		 * (non-Javadoc)
134
		 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueChanged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
135
		 */
136
		public void actionValueChanged(SliderEvent e) {
137
			onlyApply();
138
		}
139

  
140
		/*
141
		 * (non-Javadoc)
142
		 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueDragged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
143
		 */
144
		public void actionValueDragged(SliderEvent e) {
145
		}
123 146
	}
124 147

  
125 148
	/**
......
200 223
			int[] renderBands = new int[] { 0, 1, 2 };
201 224
			if (lyr instanceof IRasterRendering)
202 225
				renderBands = ((IRasterRendering) lyr).getRender().getRenderBands();
203
			if (!ePanel.isTailTrimCheckSelected() || ePanel.getTrimValue() == 0) // En este caso siempre es necesario el m?ximo y m?nimo
226
			 // En este caso siempre es necesario el m?ximo y m?nimo
227
			if (!ePanel.isTailTrimCheckSelected() || ePanel.getTrimValue() == 0) {
228
				filterList.remove(TailTrimFilter.class);
204 229
				eManager.addEnhancedFilter(ePanel.isRemoveEndsSelected(), stats, 0, renderBands);
205
			else
230
			} else
206 231
				eManager.addEnhancedFilter(ePanel.isRemoveEndsSelected(), stats, (double) (ePanel.getTrimValue() / 100D), renderBands);
207 232
		} else {
208 233
			filterList.remove(LinearEnhancementFilter.class);
......
222 247
		else
223 248
			filterList.remove(ContrastFilter.class);
224 249

  
250

  
251
		ArrayList listOrder = (ArrayList) RegistrableTabPanel.initialProperties.get("filterOrder");
252
		ArrayList listCopy = filterList.getStatusCloned();
253
		int cont = 0;
254
		for (int i=0; i<listOrder.size(); i++) {
255
			int pos = hasFilter(listCopy, ((RasterFilter) listOrder.get(i)).getName());
256
			if (pos != -1) {
257
				// Esta pero en posicion equivocada
258
				if (pos != cont) {
259
					Object copy = listCopy.remove(pos);
260
					listCopy.add(cont, copy);
261
				}
262
				cont++;
263
			}
264
		}
265
		filterList.setStatus(listCopy);
266
		filterList.controlTypes();
267

  
225 268
		// Redibujamos
226 269
		if (lyr != null)
227 270
			lyr.getMapContext().invalidate();
......
256 299
		restoreStatus();
257 300
	}
258 301

  
302
	private int hasFilter(ArrayList filter, String name) {
303
		for (int i = 0; i < filter.size(); i++) {
304
			if (((RasterFilter) filter.get(i)).getName().equals(name))
305
				return i;
306
		}
307
		return -1;
308
	}
309

  
259 310
	public void saveStatus() {
260 311
		RegistrableTabPanel.initialProperties.put("filterStatus", filterList.getStatusCloned());
312

  
313
		ArrayList filterOrder = filterList.getStatusCloned();
314
		int posEnhanced = hasFilter(filterOrder, "enhanced");
315
		int posTailTrim = hasFilter(filterOrder, "tailTrim");
316
		// Si tiene realce comprobamos el tailtrim
317
		if (posEnhanced != -1) {
318
			// Si no tiene el tailTrim, insertamos uno antes del realce
319
			if (posTailTrim == -1) {
320
				RasterFilter aux = StatisticsListManager.createTailFilter(0, 0, false, null);
321
				filterOrder.add(posEnhanced, aux);
322
			}
323
		} else {
324
			// Si existe un tailTrim lo borramos pq no tiene realce
325
			if (posTailTrim != -1)
326
				filterOrder.remove(posTailTrim);
327
			// Insertamos primero el tailtrim y luego el realce para conservar un orden logico
328
			filterOrder.add(0, StatisticsListManager.createTailFilter(0, 0, false, null));
329
			filterOrder.add(1, EnhancementListManager.createEnhancedFilter(false, null, 0, null));
330
		}
331

  
332
		// Si no tiene brillo, lo insertamos
333
		if (hasFilter(filterOrder, "brightness") == -1)
334
			filterOrder.add(BrightnessContrastListManager.createBrightnessFilter(0));
335

  
336
		// Si no tiene el contraste, lo insertamos
337
		if (hasFilter(filterOrder, "contrast") == -1)
338
			filterOrder.add(BrightnessContrastListManager.createContrastFilter(0));
339

  
340
		RegistrableTabPanel.initialProperties.put("filterOrder", filterOrder);
261 341
	}
262 342

  
263 343
	public void restoreStatus() {
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/properties/panels/TransparencyPanel.java
24 24

  
25 25
import javax.swing.JCheckBox;
26 26
import javax.swing.JPanel;
27
import javax.swing.event.ChangeEvent;
28
import javax.swing.event.ChangeListener;
29 27

  
30 28
import org.gvsig.gui.beans.checkslidertext.CheckSliderTextContainer;
29
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
30
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
31 31
import org.gvsig.raster.shared.IRasterProperties;
32 32
import org.gvsig.rastertools.properties.control.TransparencyControl;
33 33
import org.gvsig.rastertools.properties.dialog.IRegistrablePanel;
......
39 39
 * 
40 40
 * @author Nacho Brodin (nachobrodin@gmail.com)
41 41
 */
42
public class TransparencyPanel extends JPanel implements ActionListener, IRegistrablePanel, ChangeListener {
42
public class TransparencyPanel extends JPanel implements ActionListener, IRegistrablePanel, SliderListener {
43 43
	private static final long serialVersionUID = -4556920949255458471L;
44 44
	private IRasterProperties          op               = null;
45 45

  
......
117 117
			pOpacity = new CheckSliderTextContainer(0, 100, 100, false, PluginServices.getText(this, "activar"), false);
118 118
			pOpacity.setDecimal(false);
119 119
			pOpacity.setBorder(PluginServices.getText(this, "opacidad"));
120
			pOpacity.addChangeListener(this);
120
			pOpacity.addValueChangedListener(this);
121 121
		}
122 122

  
123 123
		return pOpacity;
......
247 247

  
248 248
	/*
249 249
	 * (non-Javadoc)
250
	 * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
250
	 * @see org.gvsig.rastertools.properties.dialog.IRegistrablePanel#selectTab(java.lang.String)
251 251
	 */
252
	public void stateChanged(ChangeEvent e) {
253
		tControl.onlyApply();
254
	}
252
	public void selectTab(String id) {}
255 253

  
256 254
	/*
257 255
	 * (non-Javadoc)
258
	 * @see org.gvsig.rastertools.properties.dialog.IRegistrablePanel#selectTab(java.lang.String)
256
	 * @see org.gvsig.rastertools.properties.dialog.IResizable#setComponentSize(int, int)
259 257
	 */
260
	public void selectTab(String id) {}
258
	public void setComponentSize(int w, int h) {}
261 259

  
262 260
	/*
263 261
	 * (non-Javadoc)
264
	 * @see org.gvsig.rastertools.properties.dialog.IResizable#setComponentSize(int, int)
262
	 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueChanged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
265 263
	 */
266
	public void setComponentSize(int w, int h) {}
264
	public void actionValueChanged(SliderEvent e) {
265
		tControl.onlyApply();
266
	}
267

  
268
	/*
269
	 * (non-Javadoc)
270
	 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueDragged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
271
	 */
272
	public void actionValueDragged(SliderEvent e) {}
267 273
}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/properties/panels/EnhancedBrightnessContrastPanel.java
22 22
import java.awt.GridLayout;
23 23
import java.awt.event.ActionEvent;
24 24
import java.awt.event.ActionListener;
25
import java.awt.event.KeyListener;
26 25

  
27 26
import javax.swing.JCheckBox;
28 27
import javax.swing.JPanel;
29
import javax.swing.event.ChangeListener;
30 28

  
31 29
import org.gvsig.gui.beans.slidertext.SliderTextContainer;
30
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
32 31

  
33 32
import com.iver.andami.PluginServices;
34 33
/**
......
36 35
 * 
37 36
 * @author Nacho Brodin (nachobrodin@gmail.com)
38 37
 */
39
public class EnhancedBrightnessContrastPanel extends JPanel implements ActionListener{
40
	final private static long 	serialVersionUID = 0;
41
	private InternalPanel 		internalPanel = null;
42
	private JCheckBox			active = null;
38
public class EnhancedBrightnessContrastPanel extends JPanel implements ActionListener {
39
	private static final long serialVersionUID = -475762560608930500L;
40
	private InternalPanel     internalPanel    = null;
41
	private JCheckBox         active           = null;
43 42

  
44 43
	/**
45 44
	 * Panel con los controles deslizantes de brillo y contraste
......
155 154
	 * A?ade un listener para el slider de brillo
156 155
	 * @param l ChangeListener
157 156
	 */
158
	public void addBrightnessChangeListener(ChangeListener l){
159
		internalPanel.brightness.addChangeListener(l);
157
	public void addBrightnessValueChangedListener(SliderListener l){
158
		internalPanel.brightness.addValueChangedListener(l);
160 159
	}
161 160

  
162 161
	/**
163 162
	 * A?ade un listener para el slider de contraste
164 163
	 * @param l ChangeListener
165 164
	 */
166
	public void addContrastChangeListener(ChangeListener l){
167
		internalPanel.contrast.addChangeListener(l);
165
	public void addContrastValueChangedListener(SliderListener l){
166
		internalPanel.contrast.addValueChangedListener(l);
168 167
	}
169 168

  
170 169
	/**
171
	 * A?ade un listener para el slider de brillo
172
	 * @param l MouseListener
173
	 */
174
	public void addBrightnessKeyListener(KeyListener l){
175
		internalPanel.brightness.addKeyListener(l);
176
	}
177

  
178
	/**
179
	 * A?ade un listener para el slider de contraste
180
	 * @param l MouseListener
181
	 */
182
	public void addContrastKeyListener(KeyListener l){
183
		internalPanel.contrast.addKeyListener(l);
184
	}
185

  
186
	/**
187 170
	 * Maneja eventos de activar y desactivar el panel
188 171
	 */
189 172
	public void actionPerformed(ActionEvent e) {
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/properties/panels/EnhancedWithTrimPanel.java
51 51
	 * 
52 52
	 * @author Nacho Brodin (nachobrodin@gmail.com)
53 53
	 */
54
	class TrimPanel extends JPanel implements ActionListener {
54
	public class TrimPanel extends JPanel implements ActionListener {
55 55
		private static final long   serialVersionUID = -6435560458161006843L;
56 56
		private SliderTextContainer trimSlider       = null;
57
		private JCheckBox           remove           = null;
57
		private JCheckBox           removeCheck      = null;
58 58
		private JCheckBox           trimCheck        = null;
59
		private JPanel              pCheck           = null;
59
		private JPanel              panel            = null;
60 60

  
61 61
		/**
62 62
		 * Contructor
63 63
		 */
64 64
		public TrimPanel() {
65
			trimSlider = new SliderTextContainer(0, 100, 50);
66
			trimSlider.setDecimal(true);
67
			trimSlider.setBorder("");
68 65
			init();
69
			getTrim().addActionListener(this);
66
			getTrimCheck().addActionListener(this);
70 67
		}
71 68

  
72 69
		private void init() {
73 70
			setBorder(javax.swing.BorderFactory.createTitledBorder(null, null, javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
74 71
			this.setLayout(new BorderLayout());
75
			this.add(getPCheck(), BorderLayout.NORTH);
76
			this.add(trimSlider, BorderLayout.CENTER);
72
			this.add(getPanel(), BorderLayout.NORTH);
73
			this.add(getTrimSlider(), BorderLayout.CENTER);
77 74
		}
78 75

  
79 76
		/**
......
81 78
		 * @return SliderTextContainer
82 79
		 */
83 80
		public SliderTextContainer getTrimSlider() {
84
			if (trimSlider == null)
81
			if (trimSlider == null) {
85 82
				trimSlider = new SliderTextContainer(0, 100, 50);
83
				trimSlider.setDecimal(true);
84
				trimSlider.setBorder("");
85
			}
86 86
			return trimSlider;
87 87
		}
88 88

  
89
		public JPanel getPCheck() {
90
			if (pCheck == null) {
91
				pCheck = new JPanel();
92
				pCheck.setLayout(new GridBagLayout());
89
		public JPanel getPanel() {
90
			if (panel == null) {
91
				panel = new JPanel();
92
				panel.setLayout(new GridBagLayout());
93 93
				GridBagConstraints gbc = new GridBagConstraints();
94 94
				gbc.insets = new Insets(9, 0, 0, 0);
95 95
				gbc.anchor = GridBagConstraints.WEST;
......
104 104
				gbc1.anchor = GridBagConstraints.WEST;
105 105
				gbc1.weightx = 8;
106 106

  
107
				pCheck.add(getRemove(), gbc);
108
				pCheck.add(getTrim(), gbc1);
107
				panel.add(getRemoveCheck(), gbc);
108
				panel.add(getTrimCheck(), gbc1);
109 109
			}
110
			return pCheck;
110
			return panel;
111 111
		}
112 112

  
113 113
		/**
114 114
		 * Obtiene el check de eliminar extremos
115 115
		 * @return
116 116
		 */
117
		public JCheckBox getRemove() {
118
			if (remove == null)
119
				remove = new JCheckBox(PluginServices.getText(this, "eliminar_extremos"));
120
			return remove;
117
		public JCheckBox getRemoveCheck() {
118
			if (removeCheck == null) {
119
				removeCheck = new JCheckBox(PluginServices.getText(this, "eliminar_extremos"));
120
			}
121
			return removeCheck;
121 122
		}
122 123

  
123 124
		/**
124 125
		 * Obtiene el check de recorte de colas
125 126
		 * @return
126 127
		 */
127
		public JCheckBox getTrim() {
128
			if (trimCheck == null)
128
		public JCheckBox getTrimCheck() {
129
			if (trimCheck == null) {
129 130
				trimCheck = new JCheckBox(PluginServices.getText(this, "recorte_colas"));
131
			}
130 132
			return trimCheck;
131 133
		}
132 134

  
......
135 137
		 * @param enable true activa y false desactiva los controles del panel
136 138
		 */
137 139
		public void setControlEnabled(boolean enabled) {
138
			if (enabled && getTrim().isSelected())
139
				trimSlider.setControlEnabled(true);
140
			if (enabled && getTrimCheck().isSelected())
141
				getTrimSlider().setControlEnabled(true);
140 142
			else
141
				trimSlider.setControlEnabled(false);
142
			remove.setEnabled(enabled);
143
			trimCheck.setEnabled(enabled);
143
				getTrimSlider().setControlEnabled(false);
144
			getRemoveCheck().setEnabled(enabled);
145
			getTrimCheck().setEnabled(enabled);
144 146
		}
145 147

  
146 148
		/**
147 149
		 * Maneja eventos de activar y desactivar el panel
148 150
		 */
149 151
		public void actionPerformed(ActionEvent e) {
150
			if (e.getSource() == getTrim())
151
				trimSlider.setControlEnabled(getTrim().isSelected());
152
			if (e.getSource() == getTrimCheck())
153
				getTrimSlider().setControlEnabled(getTrimCheck().isSelected());
152 154
		}
153 155
	}
154 156

  
......
196 198
	 */
197 199
	public EnhancedWithTrimPanel() {
198 200
		super();
199
		trimPanel = new TrimPanel();
200
		selectorPanel = new SelectorPanel();
201 201
		initialize();
202 202
	}
203 203

  
204
	public SelectorPanel getSelectorPanel() {
205
		if (selectorPanel == null) {
206
			selectorPanel = new SelectorPanel();
207
		}
208
		return selectorPanel;
209
	}
210

  
211
	public TrimPanel getTrimPanel() {
212
		if (trimPanel == null) {
213
			trimPanel = new TrimPanel();
214
		}
215
		return trimPanel;
216
	}
217

  
204 218
	private void initialize() {
205 219
		setBorder(javax.swing.BorderFactory.createTitledBorder(null, PluginServices.getText(this, "realce"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
206 220
		setLayout(new BorderLayout());
207 221
		add(getActive(), BorderLayout.NORTH);
208
		add(selectorPanel, BorderLayout.CENTER);
209
		add(trimPanel, BorderLayout.SOUTH);
222
		add(getSelectorPanel(), BorderLayout.CENTER);
223
		add(getTrimPanel(), BorderLayout.SOUTH);
210 224
		getActive().addActionListener(this);
211 225
	}
212 226

  
......
229 243
	 */
230 244
	public void setControlEnabled(boolean enabled) {
231 245
		getActive().setSelected(enabled);
232
		trimPanel.setControlEnabled(enabled);
233
		selectorPanel.setControlEnabled(enabled);
246
		getTrimPanel().setControlEnabled(enabled);
247
		getSelectorPanel().setControlEnabled(enabled);
234 248
	}
235 249

  
236 250
	/**
......
250 264
	 * @return boolean, true si est? seleccionado y false si no lo est?. 
251 265
	 */
252 266
	public boolean isRemoveEndsSelected() {
253
		return trimPanel.getRemove().isSelected();
267
		return getTrimPanel().getRemoveCheck().isSelected();
254 268
	}
255 269

  
256 270
	/**
......
258 272
	 * @return boolean, true si est? seleccionado y false si no lo est?.
259 273
	 */
260 274
	public boolean isTailTrimCheckSelected() {
261
		return trimPanel.getTrim().isSelected();
275
		return getTrimPanel().getTrimCheck().isSelected();
262 276
	}
263 277

  
264 278
	/**
......
266 280
	 * @return double
267 281
	 */
268 282
	public double getTrimValue() {
269
		return trimPanel.getTrimSlider().getValue();
283
		return getTrimPanel().getTrimSlider().getValue();
270 284
	}
271 285

  
272 286
	/**
......
274 288
	 * @param active true si deseamos activarlo y false para desactivarlo
275 289
	 */
276 290
	public void setTailTrimCheckActive(boolean active) {
277
		trimPanel.getTrim().setSelected(active);
291
		getTrimPanel().getTrimCheck().setSelected(active);
278 292
	}
279 293

  
280 294
	/**
......
282 296
	 * @param active true si deseamos activarlo y false para desactivarlo
283 297
	 */
284 298
	public void setRemoveEndsActive(boolean active) {
285
		trimPanel.getRemove().setSelected(active);
299
		getTrimPanel().getRemoveCheck().setSelected(active);
286 300
	}
287 301

  
288 302
	/**
......
290 304
	 * @param active true si deseamos activarlo y false para desactivarlo
291 305
	 */
292 306
	public void setTailTrimValue(double value) {
293
		trimPanel.getTrimSlider().setValue(value);
307
		getTrimPanel().getTrimSlider().setValue(value);
294 308
	}
295 309

  
296 310
	/**
trunk/libraries/libUIComponent/src-test-ui/org/gvsig/gui/beans/slidertext/TestSliderTextTable.java
20 20

  
21 21
import javax.swing.JFrame;
22 22

  
23
public class TestSliderTextTable {
23
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
24
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
25

  
26
public class TestSliderTextTable implements SliderListener {
24 27
	private int 				w = 350, h = 150;
25 28
	private JFrame 				frame=new JFrame();
26 29
	private SliderTextContainer	slider = null;
27 30

  
28 31
	public TestSliderTextTable() {
29 32
		slider = new SliderTextContainer(-255, 255, 0);
33
		slider.addValueChangedListener(this);
30 34

  
31 35
		frame.getContentPane().add(slider);
32 36
		frame.setSize(w, h);
......
37 41
	public static void main(String[] args) {
38 42
		new TestSliderTextTable();
39 43
	}
44

  
45
	public void actionValueChanged(SliderEvent e) {
46
		System.out.println("- Changed: " + slider.getValue());
47
	}
48

  
49
	public void actionValueDragged(SliderEvent e) {
50
//		System.out.println("+ Dragged: " + slider.getValue());
51
	}
40 52
}
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/checkslidertext/CheckSliderTextContainer.java
16 16
 * along with this program; if not, write to the Free Software
17 17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18 18
 */
19

  
20 19
package org.gvsig.gui.beans.checkslidertext;
21 20

  
22 21
import java.awt.BorderLayout;
......
31 30
import javax.swing.JPanel;
32 31

  
33 32
import org.gvsig.gui.beans.slidertext.SliderTextContainer;
34

  
35 33
/**
36 34
 * A?ade un check al componente Slider ajustando el tama?o del componente
37 35
 * a la longitud del check. Al redimensionar el componente varia el tama?o
38 36
 * del slider
37
 * 
39 38
 * @author Nacho Brodin(nachobrodin@gmail.com) 
40
 *
41 39
 */
42 40
public class CheckSliderTextContainer extends SliderTextContainer implements ActionListener{
43
	final private static long 	serialVersionUID = 0;
44
	public JCheckBox check = null;
45
	private JPanel pLabel = null;
46
	private String	text = null;
41
	private static final long serialVersionUID = -542842897847364459L;
42
	public JCheckBox          check            = null;
43
	private JPanel            pLabel           = null;
44
	private String            text             = null;
47 45

  
48 46
	/**
49 47
	 * Constructor	
......
76 74
	private JPanel getPCheck(boolean up) {
77 75
		if (pLabel == null) {
78 76
			pLabel = new JPanel();
79
			if(!up){
77
			if (!up) {
80 78
				GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
81 79
				gridBagConstraints1.insets = new java.awt.Insets(0, 10, 13, 0);
82 80
				pLabel.setLayout(new GridBagLayout());
83 81
				pLabel.add(getCheck(), gridBagConstraints1);
84
			}else{
82
			} else {
85 83
				FlowLayout fl = new FlowLayout();
86 84
				fl.setAlignment(FlowLayout.LEFT);
87 85
				pLabel.setLayout(fl);
......
95 93
	 * This method initializes JLabel
96 94
	 * @return
97 95
	 */
98
	public JCheckBox getCheck(){
96
	public JCheckBox getCheck() {
99 97
		if(check == null)
100 98
			check = new JCheckBox(text);
101 99
		return check;
......
105 103
	 * Activa o desactiva el control del panel
106 104
	 * @param active
107 105
	 */
108
	public void setControlEnabled(boolean active){
106
	public void setControlEnabled(boolean active) {
109 107
		getCheck().setSelected(active);
110 108
		super.setControlEnabled(active);
111 109
	}
112 110

  
111
	/*
112
	 * (non-Javadoc)
113
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
114
	 */
113 115
	public void actionPerformed(ActionEvent e) {
114 116
		if (e.getSource() == check) {
115 117
			setControlEnabled(check.isSelected());
116
			listener.stateChanged(null);
118
			callChangeValue();
117 119
		}
118 120
	}
119
}
121
}
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/slidertext/listeners/SliderTextListener.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*/
19
package org.gvsig.gui.beans.slidertext.listeners;
20

  
21
import java.awt.event.FocusEvent;
22
import java.awt.event.FocusListener;
23
import java.awt.event.KeyEvent;
24
import java.awt.event.KeyListener;
25
import java.util.ArrayList;
26

  
27
import javax.swing.event.ChangeEvent;
28
import javax.swing.event.ChangeListener;
29

  
30
import org.gvsig.gui.beans.slidertext.SliderTextContainer;
31
/**
32
 * Manejador de eventos del componente SliderText
33
 * 
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
public class SliderTextListener implements ChangeListener, KeyListener, FocusListener {
37
	public ArrayList changeListenerList = new ArrayList();
38
	public ArrayList mouseListenerList = new ArrayList();
39
	public ArrayList keyListenerList = new ArrayList();
40

  
41
	private SliderTextContainer sliderTextContainer = null;
42
	private boolean             disconnectEvent     = false;
43

  
44
	public SliderTextListener(SliderTextContainer panel) {
45
		this.sliderTextContainer = panel;
46
	}
47

  
48
	/**
49
	 * Control del evento de cambio en la posici?n del slider. Este cambio
50
	 * actualiza el valor de la caja de texto y ejecuta el m?todo stateChanged de
51
	 * los listener registrados.
52
	 */
53
	public void stateChanged(ChangeEvent e) {
54
		//Modificamos la caja de texto con el valor de la posici?n del slider
55
		if(!disconnectEvent) {
56
			double value = (sliderTextContainer.getSlider().getValue() * sliderTextContainer.getInterval()) + sliderTextContainer.getMin();
57
			if(!sliderTextContainer.getDecimal())
58
				sliderTextContainer.getTextField().setText(((int) value) + "");
59
			else
60
				sliderTextContainer.getTextField().setText(((int) (value * 10))/10.0 + "");
61
		}
62
		disconnectEvent = false;
63

  
64
		//Ejecutamos los listener registrados
65
		for (int i = 0; i < changeListenerList.size(); i++)
66
			((ChangeListener) changeListenerList.get(i)).stateChanged(e);
67
	}
68

  
69
	/**
70
	 * Ejecuta el m?todo keyPressed de los listener registrados.
71
	 */
72
	public void keyPressed(KeyEvent e) {
73
		//Ejecutamos los listener registrados
74
		for (int i = 0; i < keyListenerList.size(); i++)
75
			((KeyListener) keyListenerList.get(i)).keyPressed(e);
76
	}
77

  
78
	/**
79
	 * Ejecuta el m?todo keyReleased de los listener registrados.
80
	 */
81
	public void keyReleased(KeyEvent e) {
82
		// Asignamos la nueva posici?n de la barra cuando se modifica el texto
83
		if (e.getKeyCode() == 10)
84
			checkDecimalTextAndUpdateSlider();
85

  
86
		// Ejecutamos los listener registrados
87
		for (int i = 0; i < keyListenerList.size(); i++)
88
			((KeyListener) keyListenerList.get(i)).keyReleased(e);
89
	}
90

  
91
	/**
92
	 * Ejecuta el m?todo keyTyped de los listener registrados.
93
	 */
94
	public void keyTyped(KeyEvent e) {
95
		// Ejecutamos los listener registrados
96
		for (int i = 0; i < keyListenerList.size(); i++)
97
			((KeyListener) keyListenerList.get(i)).keyTyped(e);
98
	}
99

  
100
	public void focusGained(FocusEvent e) {
101
	}
102

  
103
	public void focusLost(FocusEvent e) {
104
		checkDecimalTextAndUpdateSlider();
105
	}
106

  
107
	/**
108
	 * Controla que si el formato introducido en el textfield es numerico. Si lo
109
	 * es se actualiza la posici?n del slider
110
	 */
111
	private void checkDecimalTextAndUpdateSlider() {
112
		String text = sliderTextContainer.getTextField().getText();
113
		double value = 0;
114
		disconnectEvent = true;
115

  
116
		try {
117
			if (!text.equals("")) {
118
				value = (Double.parseDouble(text) * 100) / (double) (sliderTextContainer.getMax() - sliderTextContainer.getMin());
119
				value = Double.valueOf(text).doubleValue();
120
				if (value < sliderTextContainer.getMin())
121
					value = sliderTextContainer.getMin();
122
				if (value > sliderTextContainer.getMax())
123
					value = sliderTextContainer.getMax();
124
			}
125
			sliderTextContainer.setValue(value);
126
		} catch (NumberFormatException exc) {
127
			System.err.println("Formato no numerico");
128
			sliderTextContainer.setValue(0.0);
129
		}
130
	}
131
}
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/slidertext/listeners/SliderListener.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*/
19
package org.gvsig.gui.beans.slidertext.listeners;
20

  
21
import java.util.EventListener;
22

  
23
public interface SliderListener extends EventListener {
24
	/**
25
	 * Evento que se dispara cuando cambia el valor del componente. Nunca
26
	 * se dispara mientras se hace un dragged con el rat?n.
27
	 * @param e
28
	 */
29
	public void actionValueChanged(SliderEvent e);
30

  
31
	/**
32
	 * Evento que se dispara cuando cambia el valor del componente mientras se
33
	 * hace un dragged con el rat?n.
34
	 * @param e
35
	 */
36
	public void actionValueDragged(SliderEvent e);
37
}
0 38

  
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/slidertext/listeners/SliderEvent.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*/
19
package org.gvsig.gui.beans.slidertext.listeners;
20

  
21
import java.util.EventObject;
22

  
23
public class SliderEvent extends EventObject {
24
	private static final long serialVersionUID = -128111523373280522L;
25

  
26
	public SliderEvent(Object source) {
27
		super(source);
28
	}
29
}
0 30

  
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/slidertext/ColorSliderTextContainer.java
39 39
 * posici?n de la barra. En este control podr? controlarse mediante la entrada
40 40
 * de datos por la caja de texto la posibilidad de introducir valores decimales.
41 41
 * 
42
 * Nacho Brodin (nachobrodin@gmail.com)
42
 * @version 15/06/2007
43
 * @author Borja S?nchez Zamorano (borja.sanchez@iver.es)
43 44
 */
44 45
public class ColorSliderTextContainer extends JPanel implements ChangeListener, DoubleSliderListener {
45 46
	private static final long serialVersionUID = 1876415954410511634L;
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/slidertext/SliderTextContainer.java
22 22
import java.awt.Dimension;
23 23
import java.awt.GridBagConstraints;
24 24
import java.awt.GridBagLayout;
25
import java.awt.event.FocusEvent;
26
import java.awt.event.FocusListener;
27
import java.awt.event.KeyEvent;
25 28
import java.awt.event.KeyListener;
29
import java.awt.event.MouseEvent;
30
import java.awt.event.MouseListener;
31
import java.awt.event.MouseMotionListener;
32
import java.awt.event.MouseWheelListener;
33
import java.util.ArrayList;
34
import java.util.Iterator;
26 35

  
27 36
import javax.swing.JPanel;
28 37
import javax.swing.JSlider;
29 38
import javax.swing.JTextField;
39
import javax.swing.event.ChangeEvent;
30 40
import javax.swing.event.ChangeListener;
31 41

  
32
import org.gvsig.gui.beans.slidertext.listeners.SliderTextListener;
42
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
43
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
33 44
/**
34 45
 * Barra de deslizamiento con una ventana de texto que tiene el valor de la
35 46
 * posici?n de la barra. En este control podr? controlarse mediante la entrada
......
37 48
 * 
38 49
 * Nacho Brodin (nachobrodin@gmail.com)
39 50
 */
40
public class SliderTextContainer extends JPanel {
41
	private static final long serialVersionUID = 1876415954410511634L;
42
	private JPanel             pText      = null;
43
	private JSlider            slider     = null;
44
	private JTextField         text       = null;
45
	private int                min        = 0;
46
	private int                max        = 255;
47
	private double             interval   = 1.0;
48
	private int                defaultPos = 0;
49
	protected SliderTextListener listener = null;
50
	private boolean            decimal    = false;
51
public class SliderTextContainer extends JPanel implements ChangeListener, FocusListener, KeyListener, MouseListener {
52
	private static final long serialVersionUID       = 1876415954410511634L;
53
	private JPanel            pText                  = null;
54
	private JSlider           slider                 = null;
55
	private JTextField        text                   = null;
56
	private int               min                    = 0;
57
	private int               max                    = 255;
58
	private double            interval               = 1.0;
59
	private int               defaultPos             = 0;
60
	private boolean           decimal                = false;
61
	private ArrayList         actionCommandListeners = new ArrayList();
62
	private boolean           disconnectEvent        = false;
63
	private boolean           dragged                = false;
51 64

  
52 65
	/**
53 66
	 * Contructor
67
	 *
54 68
	 * @param min Valor m?nimo de la barra
55 69
	 * @param max Valor m?ximo de la barra
56
	 * @param defaultPos Posici?n por defecto 
70
	 * @param defaultPos Posici?n por defecto
57 71
	 */
58 72
	public SliderTextContainer(int min, int max, int defaultPos) {
59 73
		super();
......
72 86
	}
73 87

  
74 88
	/**
75
	 * A?ade un ChangeListener al panel. El m?todo stateChanged del listener registrado
76
	 * ser? ejecutado cuando se accione el slider.
77
	 * @param l
89
	 * Dispara el evento del cambio del control
78 90
	 */
79
	public void addChangeListener(ChangeListener l) {
80
		listener.changeListenerList.add(l);
91
	protected void callChangeValue() {
92
		Iterator acIterator = actionCommandListeners.iterator();
93
		while (acIterator.hasNext()) {
94
			SliderListener listener = (SliderListener) acIterator.next();
95
			listener.actionValueChanged(new SliderEvent(this));
96
		}
81 97
	}
82 98

  
83 99
	/**
84
	 * A?ade un ChangeListener al panel. El m?todo stateChanged del listener registrado
85
	 * ser? ejecutado cuando se accione el slider.
86
	 * @param l
100
	 * Dispara el evento del cambio del control
87 101
	 */
88
	public void addKeyListener(KeyListener l) {
89
		listener.keyListenerList.add(l);
102
	protected void callDraggedValue() {
103
		Iterator acIterator = actionCommandListeners.iterator();
104
		while (acIterator.hasNext()) {
105
			SliderListener listener = (SliderListener) acIterator.next();
106
			listener.actionValueDragged(new SliderEvent(this));
107
		}
90 108
	}
91 109

  
92 110
	/**
111
	 * A?adir un listener a la lista de eventos
112
	 * @param listener
113
	 */
114
	public void addValueChangedListener(SliderListener listener) {
115
		if (!actionCommandListeners.contains(listener))
116
			actionCommandListeners.add(listener);
117
	}
118

  
119
	/**
120
	 * Borrar un listener de la lista de eventos
121
	 * @param listener
122
	 */
123
	public void removeValueChangedListener(SliderListener listener) {
124
		actionCommandListeners.remove(listener);
125
	}
126

  
127
	/**
93 128
	 * Asigna un borde al componente con el texto pasado como
94 129
	 * par?metro
95 130
	 * @param name
......
103 138
	 * 
104 139
	 */
105 140
	private void initialize() {
106
		listener = new SliderTextListener(this);
107 141
		this.setLayout(new BorderLayout());
108 142
		this.add(getSlider(), BorderLayout.CENTER);
109 143
		this.add(getPText(), BorderLayout.EAST);
......
138 172
			slider.setMaximum((int) ((max - min) / interval));
139 173
			slider.setValue((int) ((defaultPos - min) / interval));
140 174
			updateTicks();
141
			slider.addChangeListener(listener);
175
			slider.addChangeListener(this);
176
			slider.addMouseListener(this);
142 177
		}
143 178
		return slider;
144 179
	}
......
154 189
			text.setText(defaultPos + "");
155 190
			text.setPreferredSize(new Dimension(40, 26));
156 191
			text.setMinimumSize(new Dimension(40, 26));
157
			text.addFocusListener(listener);
158
			text.addKeyListener(listener);
192
			text.addFocusListener(this);
193
			text.addKeyListener(this);
159 194
		}
160 195
		return text;
161 196
	}
......
309 344
	public double getInterval() {
310 345
		return interval;
311 346
	}
312
}
347

  
348
	/**
349
	 * Controla que si el formato introducido en el textfield es numerico. Si lo
350
	 * es se actualiza la posici?n del slider
351
	 */
352
	private void checkDecimalTextAndUpdateSlider() {
353
		String text = getTextField().getText();
354
		double value = 0;
355
		disconnectEvent = true;
356

  
357
		try {
358
			if (!text.equals("")) {
359
				value = (Double.parseDouble(text) * 100) / (double) (getMax() - getMin());
360
				value = Double.valueOf(text).doubleValue();
361
				if (value < getMin())
362
					value = getMin();
363
				if (value > getMax())
364
					value = getMax();
365
			}
366
			setValue(value);
367
			callChangeValue();
368
		} catch (NumberFormatException exc) {
369
			setValue(getSlider().getValue()*interval + min);
370
		}
371
	}
372

  
373
	/**
374
	 * Control del evento de cambio en la posici?n del slider. Este cambio
375
	 * actualiza el valor de la caja de texto y ejecuta el m?todo stateChanged de
376
	 * los listener registrados.
377
	 */
378
	public void stateChanged(ChangeEvent e) {
379
		//Modificamos la caja de texto con el valor de la posici?n del slider
380
		if (!disconnectEvent) {
381
			double value = (getSlider().getValue() * getInterval()) + getMin();
382
			if (!getDecimal())
383
				getTextField().setText(((int) value) + "");
384
			else
385
				getTextField().setText(((int) (value * 10)) / 10.0 + "");
386
			if (dragged)
387
				callDraggedValue();
388
			else
389
				callChangeValue();
390
		}
391
		disconnectEvent = false;
392
	}
393

  
394
	/*
395
	 * (non-Javadoc)
396
	 * @see java.awt.event.FocusListener#focusLost(java.awt.event.FocusEvent)
397
	 */
398
	public void focusLost(FocusEvent e) {
399
		checkDecimalTextAndUpdateSlider();
400
	}
401

  
402
	/*
403
	 * (non-Javadoc)
404
	 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
405
	 */
406
	public void keyReleased(KeyEvent e) {
407
		if (e.getKeyCode() == 10)
408
			checkDecimalTextAndUpdateSlider();
409
	}
410

  
411
	/*
412
	 * (non-Javadoc)
413
	 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
414
	 */
415
	public void mousePressed(MouseEvent e) {
416
		dragged = true;
417
	}
418

  
419
	/*
420
	 * (non-Javadoc)
421
	 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
422
	 */
423
	public void mouseReleased(MouseEvent e) {
424
		dragged = false;
425
		callChangeValue();
426
	}
427

  
428
	public void focusGained(FocusEvent e) {}
429
	public void keyPressed(KeyEvent e) {}
430
	public void keyTyped(KeyEvent e) {}
431
	public void mouseClicked(MouseEvent e) {}
432
	public void mouseEntered(MouseEvent e) {}
433
	public void mouseExited(MouseEvent e) {}
434

  
435
	/**
436
	 * @deprecated Usar addValueChangedListener() en su lugar
437
	 */
438
	public synchronized void addFocusListener(FocusListener l) {
439
		super.addFocusListener(l);
440
	}
441

  
442
	/**
443
	 * @deprecated Usar addValueChangedListener() en su lugar
444
	 */
445
	public synchronized void addKeyListener(KeyListener l) {
446
		super.addKeyListener(l);
447
	}
448

  
449
	/**
450
	 * @deprecated Usar addValueChangedListener() en su lugar
451
	 */
452
	public synchronized void addMouseListener(MouseListener l) {
453
		super.addMouseListener(l);
454
	}
455

  
456
	/**
457
	 * @deprecated Usar addValueChangedListener() en su lugar
458
	 */
459
	public synchronized void addMouseMotionListener(MouseMotionListener l) {
460
		super.addMouseMotionListener(l);
461
	}
462

  
463
	/**
464
	 * @deprecated Usar addValueChangedListener() en su lugar
465
	 */
466
	public synchronized void addMouseWheelListener(MouseWheelListener l) {
467
		super.addMouseWheelListener(l);
468
	}
469
}
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/propertiespanel/PropertiesComponent.java
46 46
import javax.swing.event.ChangeListener;
47 47

  
48 48
import org.gvsig.gui.beans.slidertext.SliderTextContainer;
49
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
50
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
49 51
/**
50 52
 * Componente para crear un cuadro de propiedades de configuracion standard.
51 53
 * 
52 54
 * @version 19/04/2007
53 55
 * @author Borja S?nchez Zamorano (borja.sanchez@iver.es)
54 56
 */
55
public class PropertiesComponent extends JScrollPane implements FocusListener, KeyListener, ChangeListener, ItemListener, PropertiesComponentListener {
57
public class PropertiesComponent extends JScrollPane implements FocusListener, KeyListener, ChangeListener, ItemListener, PropertiesComponentListener, SliderListener {
56 58
	private static final long serialVersionUID = 372118344763661890L;
57 59
	private ArrayList datalist = new ArrayList();
58 60
	private ArrayList actionCommandListeners = new ArrayList();
......
147 149
							((SliderTextContainer) component).setMaximum(((Integer) property.getExtras()[2]).intValue());
148 150
						((SliderTextContainer) component).setValue(((Integer) property.getOldValue()).intValue());
149 151

  
150
						((SliderTextContainer) component).addChangeListener(this);
152
						((SliderTextContainer) component).addValueChangedListener(this);
151 153

  
152 154
						created = true;
153 155
						break;
......
377 379

  
378 380
	/*
379 381
	 * (non-Javadoc)
380
	 * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
382
	 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueChanged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
381 383
	 */
382
	public void keyTyped(KeyEvent e) {
384
	public void actionValueChanged(SliderEvent e) {
385
		callStateChanged();
383 386
	}
384 387

  
385 388
	/*
386 389
	 * (non-Javadoc)
387
	 * @see java.awt.event.FocusListener#focusGained(java.awt.event.FocusEvent)
390
	 * @see org.gvsig.gui.beans.slidertext.listeners.SliderListener#actionValueDragged(org.gvsig.gui.beans.slidertext.listeners.SliderEvent)
388 391
	 */
389
	public void focusGained(FocusEvent e) {
392
	public void actionValueDragged(SliderEvent e) {
393
		callStateChanged();
390 394
	}
391 395

  
392
	/*
393
	 * (non-Javadoc)
394
	 * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
395
	 */
396
	public void keyPressed(KeyEvent e) {
397
	}
396
	public void keyTyped(KeyEvent e) {}
397
	public void focusGained(FocusEvent e) {}
398
	public void keyPressed(KeyEvent e) {}
398 399
}
trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/doubleslider/DoubleSliderEvent.java
18 18
*/
19 19
package org.gvsig.gui.beans.doubleslider;
20 20

  
21
import java.util.EventObject;
21
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
22 22

  
23
public class DoubleSliderEvent extends EventObject {
23
public class DoubleSliderEvent extends SliderEvent {
24 24
	private static final long serialVersionUID = -684281519921935004L;
25 25

  
26 26
	public DoubleSliderEvent(Object source) {
trunk/libraries/libRaster/src/org/gvsig/raster/grid/Grid.java
1052 1052
	 *Aplica la lista de filtros sobre el buffer
1053 1053
	 */
1054 1054
	public void applyFilters(){
1055
		if(filterList == null)
1055
		if (filterList == null)
1056 1056
			return;
1057

  
1057 1058
		filterList.setInitRasterBuf(rasterBuf);
1058 1059
		filterList.execute();
1059
		rasterBuf = (RasterBuffer)filterList.getResult();
1060
		rasterBuf = (RasterBuffer) filterList.getResult();
1060 1061
		dataType = rasterBuf.getDataType();
1061 1062
	}
1062 1063

  
trunk/libraries/libRaster/src/org/gvsig/raster/grid/render/Rendering.java
265 265
		else
266 266
			grid.setFilterList(filterList);
267 267

  
268
		// Controlamos que los tipos de los filtros de entrada y salida sean los
269
		// correctos
270
		RasterFilterListManager stackManager = new RasterFilterListManager(filterList);
271
		stackManager.controlTypes();
272

  
273 268
		grid.applyFilters();
274 269

  
275 270
		if ((wImg <= 0) || (hImg <= 0))
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/RasterFilterList.java
57 57
	}
58 58

  
59 59
	/**
60
	 * Controla que los tipos de entrada y salida de los filtros sean los
61
	 * correctos
62
	 */
63
	public void controlTypes() {
64
		RasterFilterListManager stackManager = new RasterFilterListManager(this);
65
		stackManager.controlTypes();
66
	}
67

  
68
	/**
60 69
	 * A?ade un filtro al final de la lista
61 70
	 * @param filter        filtro a?adido
62 71
	 */
......
65 74
			replace(filter, filter.getName());
66 75
		} else {
67 76
			list.add(filter);
77
			controlTypes();
68 78
		}
69 79
	}
70 80

  
71 81
	/**
82
	 * Sustituye un filtro de una posici?n de la pila por otro
83
	 * @param filter
84
	 * @param i
85
	 */
86
	public void replace(RasterFilter filter, String name) {
87
		boolean changed = false;
88

  
89
		for (int i = list.size() - 1; i >= 0; i--)
90
			if (((RasterFilter) list.get(i)).getName().equals(name)) {
91
				list.remove(i);
92
				list.add(i, filter);
93
				changed = true;
94
			}
95

  
96
		if (changed)
97
			controlTypes();
98
	}
99

  
100
	/**
72 101
	 * A?ade un filtro en la lista en la posici?n indicada.
73 102
	 * @param filter        filtro a?adido
74 103
	 * @param pos	posici?n
......
76 105
	public void add(RasterFilter filter, int pos) {
77 106
		try {
78 107
			list.add(pos, filter);
108
			controlTypes();
79 109
		} catch (IndexOutOfBoundsException e) {
80 110
			add(filter);
81 111
		}
......
86 116
	 * @param name Nombre del filtro a eliminar
87 117
	 */
88 118
	public void remove(String name) {
89
		for (int i = list.size() - 1; i >= 0; i--) {
90
			if (((RasterFilter) list.get(i)).getName().equals(name))
119
		boolean changed = false;
120
		for (int i = list.size() - 1; i >= 0; i--)
121
			if (((RasterFilter) list.get(i)).getName().equals(name)) {
91 122
				list.remove(i);
92
		}
123
				changed = true;
124
			}
125
		if (changed)
126
			controlTypes();
93 127
	}
94 128

  
95 129
	/**
......
97 131
	 * @param type
98 132
	 */
99 133
	public void remove(RasterFilter filter) {
100
		for (int i = list.size() - 1; i >= 0; i--) {
101
			if (((RasterFilter) list.get(i)).equals(filter))
134
		boolean changed = false;
135
		for (int i = list.size() - 1; i >= 0; i--)
136
			if (((RasterFilter) list.get(i)).equals(filter)) {
102 137
				list.remove(i);
103
		}
138
				changed = true;
139
			}
140
		if (changed)
141
			controlTypes();
104 142
	}
105 143

  
106 144
	/**
......
109 147
	 * @param baseFilterClass
110 148
	 */
111 149
	public void remove(Class baseFilterClass) {
112
		for (int i = 0; i < lenght(); i++) {
150
		boolean changed = false;
151
		for (int i = 0; i < lenght(); i++)
113 152
			if (baseFilterClass.isInstance(((RasterFilter) list.get(i)))) {
114 153
				list.remove(i);
115 154
				i--;
155
				changed = true;
116 156
			}
117
		}
157
		if (changed)
158
			controlTypes();
118 159
	}
119 160

  
120 161
	/**
......
142 183
	 * @param b  Nombre de filtro
143 184
	 * @return
144 185
	 */
186
/*
145 187
	private boolean isOnTop(String a, String b) {
146 188
		int posA = -1;
147 189
		int posB = -1;
......
162 204
		else
163 205
			return false;
164 206
	}
165

  
207
*/
166 208
	/**
167 209
	 * Dado un modo de inserci?n se obtiene el tipo de dato del filtro a
168 210
	 * introducir. Se insertionMode es ADD_END quiere decir que se a?adir? al
......
283 325
	 * @param filter
284 326
	 * @param i
285 327
	 */
286
	public void replace(RasterFilter filter, String name) {
287
		for (int i = list.size() - 1; i >= 0; i--) {
288
			if (((RasterFilter) list.get(i)).getName().equals(name)) {
289
				list.remove(i);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff