Revision 1839

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.impl/src/main/java/org/gvsig/raster/swing/impl/slider/ColorSliderTextContainer.java
1
package org.gvsig.raster.swing.impl.slider;
2

  
3
import java.awt.BorderLayout;
4
import java.awt.Color;
5
import java.awt.Dimension;
6
import java.awt.GridBagConstraints;
7
import java.awt.GridBagLayout;
8
import java.util.ArrayList;
9
import java.util.Iterator;
10

  
11
import javax.swing.JPanel;
12
import javax.swing.JSpinner;
13
import javax.swing.event.ChangeEvent;
14
import javax.swing.event.ChangeListener;
15

  
16
import org.gvsig.gui.beans.doubleslider.DoubleSlider;
17
import org.gvsig.gui.beans.doubleslider.DoubleSliderEvent;
18
import org.gvsig.gui.beans.doubleslider.DoubleSliderListener;
19
/**
20
 * Barra de deslizamiento con una ventana de texto que tiene el valor de la
21
 * posici?n de la barra. En este control podr? controlarse mediante la entrada
22
 * de datos por la caja de texto la posibilidad de introducir valores decimales.
23
 *
24
 * @version 15/06/2007
25
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
26
 */
27
public class ColorSliderTextContainer extends JPanel implements ChangeListener, DoubleSliderListener {
28
	private static final long serialVersionUID = 1876415954410511634L;
29
	private ArrayList<DoubleSliderListener> actionCommandListeners = new ArrayList<DoubleSliderListener>();
30

  
31
	private JPanel       pText            = null;
32
	private DoubleSlider slider           = null;
33
	private JSpinner     jSpinner         = null;
34
	private int          min              = 0;
35
	private int          max              = 255;
36
	private int          defaultPos       = 0;
37

  
38
	/**
39
	 * Contructor
40
	 * @param min Valor m?nimo de la barra
41
	 * @param max Valor m?ximo de la barra
42
	 * @param defaultPos Posici?n por defecto
43
	 */
44
	public ColorSliderTextContainer(int min, int max, int defaultPos) {
45
		super();
46
		this.min = min;
47
		this.max = max;
48
		this.defaultPos = defaultPos;
49

  
50
		initialize();
51
		slider.setTwoSliders(false);
52
	}
53

  
54
	/**
55
	 * Constructor vacio
56
	 */
57
	public ColorSliderTextContainer() {
58
		this(0, 100, 0);
59
	}
60

  
61
	/**
62
	 * This method initializes this
63
	 *
64
	 */
65
	private void initialize() {
66
		this.setLayout(new BorderLayout(5, 5));
67
		this.add(getSlider(), BorderLayout.CENTER);
68
		this.add(getPText(), BorderLayout.EAST);
69
	}
70

  
71
	/**
72
	 * This method initializes jPanel1
73
	 *
74
	 * @return javax.swing.JPanel
75
	 */
76
	private JPanel getPText() {
77
		if (pText == null) {
78
			pText = new JPanel();
79
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
80
			gridBagConstraints1.insets = new java.awt.Insets(0, 10, 8, 0);
81
			pText.setLayout(new GridBagLayout());
82
			pText.add(getJSpinner(), gridBagConstraints1);
83
		}
84
		return pText;
85
	}
86

  
87
	/**
88
	 * This method initializes jSlider
89
	 *
90
	 * @return javax.swing.JSlider
91
	 */
92
	public DoubleSlider getSlider() {
93
		if (slider == null) {
94
			slider = new DoubleSlider();
95
			slider.setMinimum(min);
96
			slider.setMaximum(max);
97
			slider.setValue(defaultPos);
98
			slider.addValueChangedListener(this);
99
		}
100
		return slider;
101
	}
102

  
103
	/**
104
	 * This method initializes jTextField
105
	 *
106
	 * @return javax.swing.JTextField
107
	 */
108
	public JSpinner getJSpinner() {
109
		if (jSpinner == null) {
110
			jSpinner = new JSpinner();
111
			jSpinner.setValue(new Integer(defaultPos));
112
			jSpinner.setPreferredSize(new Dimension(50, 26));
113
			jSpinner.setMinimumSize(new Dimension(50, 26));
114
			jSpinner.addChangeListener(this);
115
		}
116
		return jSpinner;
117
	}
118

  
119
	public void setComponentSize(int w, int h){
120
	}
121

  
122
	/**
123
	 * Obtiene el valor del control.
124
	 * @return Valor del control en formato double.
125
	 */
126
	public int getValue() {
127
		return new Integer(getJSpinner().getValue() + "").intValue();
128
	}
129

  
130
	/**
131
	 * Asigna el valor del control.
132
	 * @return Valor del control en formato double.
133
	 */
134
	public void setValue(int value) {
135
		getJSpinner().setValue(new Integer(value));
136
		getSlider().setValue(value);
137
	}
138

  
139
	/**
140
	 * Activa o desactiva el control del panel
141
	 * @param active
142
	 */
143
	public void setControlEnabled(boolean active){
144
		getSlider().setEnabled(active);
145
		getJSpinner().setEnabled(active);
146
	}
147

  
148
	/**
149
	 * Obtiene el valor m?ximo del slider
150
	 * @return Entero con el valor m?ximo
151
	 */
152
	public int getMax() {
153
		return max;
154
	}
155

  
156
	/**
157
	 * Asigna el valor m?ximo del slider
158
	 * @param Entero con el valor m?ximo
159
	 * @deprecated Usar setMaximum en su lugar
160
	 */
161
	public void setMax(int max) {
162
		this.setMaximum(max);
163
	}
164

  
165
	/**
166
	 * Asigna el valor m?ximo del slider
167
	 * @param Entero con el valor m?ximo
168
	 */
169
	public void setMaximum(int max) {
170
		this.max = max;
171
		updateInterval();
172
	}
173

  
174
	/**
175
	 * Obtiene el valor m?nimo del slider
176
	 * @return Entero con el valor m?nimo
177
	 */
178
	public int getMin() {
179
		return min;
180
	}
181

  
182
	/**
183
	 * Asigna el valor m?nimo del slider
184
	 * @param Entero con el valor m?nimo
185
	 * @deprecated Usar setMinimum
186
	 */
187
	public void setMin(int min) {
188
		this.setMinimum(min);
189
	}
190

  
191
	/**
192
	 * Asigna el valor m?nimo del slider
193
	 * @param Entero con el valor m?nimo
194
	 */
195
	public void setMinimum(int min) {
196
		this.min = min;
197
		updateInterval();
198
	}
199

  
200
	private void updateInterval() {
201
		int aux = this.getValue();
202
		getSlider().setMinimum(min);
203
		getSlider().setMaximum(max);
204
		setValue(aux);
205
	}
206

  
207
	/**
208
	 * Especificar el color izquierdo del control
209
	 * @param color
210
	 */
211
	public void setColor1(Color color, boolean refresh) {
212
		slider.setColor1(color, refresh);
213
	}
214

  
215
	/**
216
	 * Especificar el color derecho del control
217
	 * @param color
218
	 */
219
	public void setColor2(Color color, boolean refresh) {
220
		slider.setColor2(color, refresh);
221
	}
222

  
223
	/**
224
	 * Controla cuando cambia el spinner
225
	 */
226
	public void stateChanged(ChangeEvent e) {
227
		int value = new Integer(getJSpinner().getValue().toString()).intValue();
228
		if (value != getSlider().getValue())
229
			getSlider().setValue(value);
230
		if (new Integer(getJSpinner().getValue().toString()).intValue() != getSlider().getValue())
231
			getJSpinner().setValue(new Integer(getSlider().getValue()));
232

  
233
		if (spinnerEvent)
234
			callChangeValue();
235
	}
236

  
237
	/**
238
	 * Dispara el evento del cambio del control
239
	 */
240
	protected void callChangeValue() {
241
		Iterator<DoubleSliderListener> iterator = actionCommandListeners.iterator();
242
		while (iterator.hasNext()) {
243
			DoubleSliderListener listener = iterator.next();
244
			listener.actionValueChanged(new DoubleSliderEvent(this));
245
		}
246
	}
247

  
248
	/**
249
	 * Dispara el evento del cambio del control
250
	 */
251
	protected void callDraggedValue() {
252
		Iterator<DoubleSliderListener> iterator = actionCommandListeners.iterator();
253
		while (iterator.hasNext()) {
254
			DoubleSliderListener listener = iterator.next();
255
			listener.actionValueDragged(new DoubleSliderEvent(this));
256
		}
257
	}
258

  
259
	/**
260
	 * A?adir un listener a la lista de eventos
261
	 * @param listener
262
	 */
263
	public void addValueChangedListener(DoubleSliderListener listener) {
264
		if (!actionCommandListeners.contains(listener))
265
			actionCommandListeners.add(listener);
266
	}
267

  
268
	/**
269
	 * Borrar un listener de la lista de eventos
270
	 * @param listener
271
	 */
272
	public void removeValueChangedListener(DoubleSliderListener listener) {
273
		actionCommandListeners.remove(listener);
274
	}
275

  
276
	/* (non-Javadoc)
277
	 * @see javax.swing.JComponent#setEnabled(boolean)
278
	 */
279
	public void setEnabled(boolean enabled) {
280
		super.setEnabled(enabled);
281
		jSpinner.setEnabled(enabled);
282
		slider.setEnabled(enabled);
283
	}
284

  
285
	/**
286
	 * Controla cuando cambia el slider
287
	 */
288
	public void actionValueChanged(DoubleSliderEvent e) {
289
		int value = getSlider().getValue();
290
		getJSpinner().setValue(new Integer(value));
291

  
292
		if (isEnabled())
293
			callChangeValue();
294
	}
295

  
296
	/*
297
	 * (non-Javadoc)
298
	 * @see org.gvsig.gui.beans.doubleslider.DoubleSliderListener#actionValueDragged(java.util.EventObject)
299
	 */
300
	boolean spinnerEvent = true;
301
	int lastDragged = -1;
302
	public void actionValueDragged(DoubleSliderEvent e) {
303
		int value = getSlider().getValue();
304
		if (lastDragged != value) {
305
			lastDragged = value;
306
			spinnerEvent = false;
307
			getJSpinner().setValue(new Integer(value));
308
			spinnerEvent = true;
309

  
310
			if (isEnabled())
311
				callDraggedValue();
312
		}
313
	}
314
}
0 315

  
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.impl/src/main/java/org/gvsig/raster/swing/impl/slider/SliderTextContainer.java
1
package org.gvsig.raster.swing.impl.slider;
2

  
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5
import java.awt.GridBagConstraints;
6
import java.awt.GridBagLayout;
7
import java.awt.event.FocusEvent;
8
import java.awt.event.FocusListener;
9
import java.awt.event.KeyEvent;
10
import java.awt.event.KeyListener;
11
import java.awt.event.MouseEvent;
12
import java.awt.event.MouseListener;
13
import java.util.ArrayList;
14
import java.util.Iterator;
15

  
16
import javax.swing.BorderFactory;
17
import javax.swing.JPanel;
18
import javax.swing.JSlider;
19
import javax.swing.JTextField;
20
import javax.swing.border.TitledBorder;
21
import javax.swing.event.ChangeEvent;
22
import javax.swing.event.ChangeListener;
23

  
24
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
25
import org.gvsig.gui.beans.slidertext.listeners.SliderListener;
26
import org.gvsig.raster.swing.slider.SliderText;
27
/**
28
 * Barra de deslizamiento con una ventana de texto que tiene el valor de la
29
 * posici?n de la barra. En este control podr? controlarse mediante la entrada
30
 * de datos por la caja de texto la posibilidad de introducir valores decimales.
31
 *
32
 * Nacho Brodin (nachobrodin@gmail.com)
33
 */
34
public class SliderTextContainer extends JPanel implements SliderText, ChangeListener, FocusListener, KeyListener, MouseListener {
35
	private static final long serialVersionUID = 1876415954410511634L;
36
	private ArrayList<SliderListener> actionCommandListeners = new ArrayList<SliderListener>();
37
	private JPanel     pText           = null;
38
	private JSlider    slider          = null;
39
	private JTextField text            = null;
40
	private int        min             = 0;
41
	private int        max             = 255;
42
	private double     interval        = 1.0;
43
	private int        defaultPos      = 0;
44
	private boolean    decimal         = false;
45
	private boolean    disconnectEvent = false;
46
	private boolean    dragged         = false;
47
	private boolean    showBorder      = false;
48

  
49
	/**
50
	 * Contructor
51
	 * @param min Valor m?nimo de la barra
52
	 * @param max Valor m?ximo de la barra
53
	 * @param defaultPos Posici?n por defecto
54
	 * @deprecated Es recomendable el uso del constructor con el par?metro border. Tiene la misma funcionalidad 
55
	 * si se pone ese par?metro a true. Se mantiene este constructor por compatibilidad con versiones 
56
	 * anteriores.
57
	 */
58
	public SliderTextContainer(int min, int max, int defaultPos) {
59
		this(min, max, defaultPos, false);
60
	}
61
	
62
	/**
63
	 * Contructor
64
	 * @param min Valor m?nimo de la barra
65
	 * @param max Valor m?ximo de la barra
66
	 * @param defaultPos Posici?n por defecto
67
	 * @param border Flag que obliga a mostrar u ocultar el borde
68
	 */
69
	public SliderTextContainer(int min, int max, int defaultPos, boolean border) {
70
		super();
71
		this.min = min;
72
		this.max = max;
73
		this.defaultPos = defaultPos;
74
		this.showBorder = border;
75
		initialize();
76
	}
77

  
78

  
79
	/**
80
	 * Constructor vacio
81
	 */
82
	public SliderTextContainer() {
83
		this(0, 100, 0);
84
	}
85

  
86
	/**
87
	 * Dispara el evento del cambio del control
88
	 */
89
	protected void callChangeValue(boolean forceEvent) {
90
		if (!getSlider().isEnabled() && !forceEvent)
91
			return;
92
		Iterator<SliderListener> acIterator = actionCommandListeners.iterator();
93
		while (acIterator.hasNext()) {
94
			SliderListener listener = (SliderListener) acIterator.next();
95
			listener.actionValueChanged(new SliderEvent(this));
96
		}
97
	}
98

  
99
	/**
100
	 * Dispara el evento del cambio del control
101
	 */
102
	protected void callDraggedValue() {
103
		Iterator<SliderListener> acIterator = actionCommandListeners.iterator();
104
		while (acIterator.hasNext()) {
105
			SliderListener listener = (SliderListener) acIterator.next();
106
			listener.actionValueDragged(new SliderEvent(this));
107
		}
108
	}
109

  
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
	/**
128
	 * Asigna un borde al componente con el texto pasado como
129
	 * par?metro
130
	 * @param name
131
	 */
132
	public void setBorder(String name){
133
		setBorder(BorderFactory.createTitledBorder(null, name, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
134
	}
135

  
136
	/**
137
	 * This method initializes this
138
	 *
139
	 */
140
	private void initialize() {
141
		this.setLayout(new BorderLayout());
142
		this.add(getSlider(), BorderLayout.CENTER);
143
		this.add(getPText(), BorderLayout.EAST);
144
		if(showBorder)
145
			this.setBorder(BorderFactory.createLineBorder(java.awt.Color.gray,1));
146
	}
147

  
148
	/**
149
	 * This method initializes jPanel1
150
	 *
151
	 * @return javax.swing.JPanel
152
	 */
153
	private JPanel getPText() {
154
		if (pText == null) {
155
			pText = new JPanel();
156
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
157
			gridBagConstraints1.insets = new java.awt.Insets(0, 10, 8, 0);
158
			pText.setLayout(new GridBagLayout());
159
			pText.add(getTextField(), gridBagConstraints1);
160
		}
161
		return pText;
162
	}
163

  
164
	/**
165
	 * This method initializes jSlider
166
	 *
167
	 * @return javax.swing.JSlider
168
	 */
169
	public JSlider getSlider() {
170
		if (slider == null) {
171
			slider = new JSlider();
172
			slider.setMinimum(0);
173
			slider.setMaximum((int) ((max - min) / interval));
174
			slider.setValue((int) ((defaultPos - min) / interval));
175
			updateTicks();
176
			slider.addChangeListener(this);
177
			slider.addMouseListener(this);
178
		}
179
		return slider;
180
	}
181

  
182
	/**
183
	 * This method initializes jTextField
184
	 *
185
	 * @return javax.swing.JTextField
186
	 */
187
	public JTextField getTextField() {
188
		if (text == null) {
189
			text = new JTextField();
190
			text.setText(defaultPos + "");
191
			text.setPreferredSize(new Dimension(40, 26));
192
			text.setMinimumSize(new Dimension(40, 26));
193
			text.addFocusListener(this);
194
			text.addKeyListener(this);
195
		}
196
		return text;
197
	}
198

  
199
	public void setComponentSize(int w, int h){
200
	}
201

  
202
	/**
203
	 * Obtiene el valor del control.
204
	 * @return Valor del control en formato double.
205
	 */
206
	public double getValue() {
207
		return new Double(getTextField().getText()).doubleValue();
208
	}
209

  
210
	/**
211
	 * Asigna el valor del control.
212
	 * @return Valor del control en formato double.
213
	 */
214
	public void setValue(double value){
215
		if(decimal)
216
			getTextField().setText(String.valueOf(value));
217
		else
218
			getTextField().setText(String.valueOf((int)value));
219
		getSlider().setValue((int) ((value - min) / interval));
220
	}
221

  
222
	/**
223
	 * Activa o desactiva el control del panel
224
	 * @param active
225
	 */
226
	public void setControlEnabled(boolean active){
227
		getSlider().setEnabled(active);
228
		getTextField().setEnabled(active);
229
		if (active == false) {
230
			getTextField().setBackground(pText.getBackground());
231
		} else {
232
			getTextField().setBackground(java.awt.Color.white);
233
		}
234
	}
235

  
236
	/**
237
	 * Asigna el flag que dice si el valor del campo de texto ser?
238
	 * decimal o entero
239
	 * @param dec true si se admiten valores decimales y false si no se admiten
240
	 */
241
	public void setDecimal (boolean dec){
242
		decimal = dec;
243
		String s = getTextField().getText();
244
		if(dec)
245
			getTextField().setText((s +".0"));
246
		else{
247
			int index = s.lastIndexOf(".");
248
			if(index == -1 || index == 0)
249
				index = s.length() - 1;
250
			getTextField().setText(s.substring(0, index + 1));
251
		}
252
	}
253

  
254
	/**
255
	 * Obtiene el flag que dice si el valor del campo de texto es
256
	 * decimal o entero
257
	 * @return true si se admiten valores decimales y false si no se admiten
258
	 */
259
	public boolean getDecimal (){
260
		return decimal;
261
	}
262

  
263
	/**
264
	 * Obtiene el valor m?ximo del slider
265
	 * @return Entero con el valor m?ximo
266
	 */
267
	public int getMax() {
268
		return max;
269
	}
270

  
271
	/**
272
	 * Asigna el valor m?ximo del slider
273
	 * @param Entero con el valor m?ximo
274
	 * @deprecated Usar setMaximum en su lugar
275
	 */
276
	public void setMax(int max) {
277
		this.setMaximum(max);
278
	}
279

  
280
	/**
281
	 * Asigna el valor m?ximo del slider
282
	 * @param Entero con el valor m?ximo
283
	 */
284
	public void setMaximum(int max) {
285
		this.max = max;
286
		updateInterval();
287
	}
288

  
289
	/**
290
	 * Obtiene el valor m?nimo del slider
291
	 * @return Entero con el valor m?nimo
292
	 */
293
	public int getMin() {
294
		return min;
295
	}
296

  
297
	/**
298
	 * Asigna el valor m?nimo del slider
299
	 * @param Entero con el valor m?nimo
300
	 * @deprecated Usar setMinimum
301
	 */
302
	public void setMin(int min) {
303
		this.setMinimum(min);
304
	}
305

  
306
	/**
307
	 * Asigna el valor m?nimo del slider
308
	 * @param Entero con el valor m?nimo
309
	 */
310
	public void setMinimum(int min) {
311
		this.min = min;
312
		updateInterval();
313
	}
314

  
315
	/**
316
	 * Actualizar la separacion entre los Ticks
317
	 */
318
	private void updateTicks() {
319
		int ticks = (int) ((max-min)/interval) / 40;
320
		getSlider().setMajorTickSpacing(ticks * 4);
321
		slider.setPaintTicks(true);
322
		getSlider().setMinorTickSpacing(ticks);
323
	}
324

  
325
	private void updateInterval() {
326
		double aux = this.getValue();
327
		getSlider().setMinimum(0);
328
		getSlider().setMaximum((int) ((max - min) / interval));
329
		setValue(aux);
330
		updateTicks();
331
	}
332
	/**
333
	 * Definir un intervalo para el slider
334
	 * @param value
335
	 */
336
	public void setInterval(double value) {
337
		interval = value;
338
		updateInterval();
339
	}
340

  
341
	/**
342
	 * Obtener el intervalo definido para el slider
343
	 * @return
344
	 */
345
	public double getInterval() {
346
		return interval;
347
	}
348

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

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

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

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

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

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

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

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

  
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.impl/src/main/java/org/gvsig/raster/swing/impl/DefaultRasterSwingManager.java
48 48
import org.gvsig.raster.swing.impl.preview.PreviewBasePanel;
49 49
import org.gvsig.raster.swing.impl.preview.SinglePreviewPanel;
50 50
import org.gvsig.raster.swing.impl.roi.DefaultROIPanel;
51
import org.gvsig.raster.swing.impl.slider.SliderTextContainer;
51 52
import org.gvsig.raster.swing.impl.tool.infobypoint.MainInfoByPointPanelImpl;
52 53
import org.gvsig.raster.swing.infobypoint.MainInfoByPointPanel;
53 54
import org.gvsig.raster.swing.newlayer.CreateNewLayerPanel;
......
60 61
import org.gvsig.raster.swing.preview.PreviewPanel;
61 62
import org.gvsig.raster.swing.preview.PreviewRenderProcess;
62 63
import org.gvsig.raster.swing.roi.ROIPanel;
64
import org.gvsig.raster.swing.slider.SliderText;
63 65
import org.gvsig.tools.ToolsLocator;
64 66
import org.gvsig.tools.i18n.I18nManager;
65 67
import org.slf4j.Logger;
......
188 190
	public IButtonsPanel createButtonsPanel(int buttons, JComponent parent) {
189 191
		return new ButtonsPanel(buttons, parent);
190 192
	}
193

  
194
	public SliderText getSliderText(int min, int max, int defaultValue, boolean border) {
195
		return new SliderTextContainer(min, max, defaultValue, border);
196
	}
191 197
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.api/src/main/java/org/gvsig/raster/swing/slider/SliderEvent.java
1
package org.gvsig.raster.swing.slider;
2

  
3
import java.util.EventObject;
4

  
5
public class SliderEvent extends EventObject {
6
	private static final long serialVersionUID = -128111523373280522L;
7

  
8
	/**
9
	 * Construye un SliderEvent
10
	 * @param source
11
	 */
12
	public SliderEvent(Object source) {
13
		super(source);
14
	}
15
}
0 16

  
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.api/src/main/java/org/gvsig/raster/swing/slider/SliderText.java
1
package org.gvsig.raster.swing.slider;
2

  
3
public interface SliderText {
4

  
5
}
0 6

  
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.api/src/main/java/org/gvsig/raster/swing/slider/SliderListener.java
1
package org.gvsig.raster.swing.slider;
2

  
3
import java.util.EventListener;
4

  
5
public interface SliderListener extends EventListener {
6
	/**
7
	 * Evento que se dispara cuando cambia el valor del componente. Nunca
8
	 * se dispara mientras se hace un dragged con el rat?n.
9
	 * @param e
10
	 */
11
	public void actionValueChanged(SliderEvent e);
12

  
13
	/**
14
	 * Evento que se dispara cuando cambia el valor del componente mientras se
15
	 * hace un dragged con el rat?n.
16
	 * @param e
17
	 */
18
	public void actionValueDragged(SliderEvent e);
19
}
0 20

  
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.api/src/main/java/org/gvsig/raster/swing/RasterSwingManager.java
45 45
import org.gvsig.raster.swing.preview.PreviewPanel;
46 46
import org.gvsig.raster.swing.preview.PreviewRenderProcess;
47 47
import org.gvsig.raster.swing.roi.ROIPanel;
48
import org.gvsig.raster.swing.slider.SliderText;
48 49

  
49 50

  
50 51
/**
......
200 201
     */
201 202
    public IButtonsPanel createButtonsPanel(int buttons, JComponent parent);
202 203
    
204
    /**
205
     * Creates a slider with a text box
206
     * @return
207
     */
208
    public SliderText getSliderText(int min, int max, int defaultValue, boolean border);
209
    
203 210
}

Also available in: Unified diff