Revision 19378

View differences:

trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/canvas/GCanvas.java
101 101
	}
102 102
	
103 103
	/**
104
	 * Asigna un elemento dibujable a la lista
104
	 * A?ade un elemento dibujable a la lista
105 105
	 * @param element
106 106
	 */
107
	public void setDrawableElement(DrawableElement element) {
107
	public void addDrawableElement(DrawableElement element) {
108 108
		element.setCanvas(this);
109 109
		drawableElements.add(element);
110 110
	}
......
116 116
	public ArrayList getDrawableElements() {
117 117
		return drawableElements;
118 118
	}
119
	
120
	/**
121
	 * Asigna una lista de elementos dibujables
122
	 * @return
123
	 */
124
	public void setDrawableElements(ArrayList list) {
125
		drawableElements.clear();
126
		for (int i = 0; i < list.size(); i++)
127
			if (list.get(i) instanceof DrawableElement)
128
				drawableElements.add(list.get(i));
129
		repaint();
130
	}
119 131
		
120 132
	/**
121 133
	 * Inicializa el fondo y dibuja el gr?fico sobre el canvas.
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/graphics/HistogramGraphicBase.java
18 18
 */
19 19
package org.gvsig.rastertools.enhanced.graphics;
20 20

  
21
import java.awt.BorderLayout;
21 22
import java.awt.Color;
22 23
import java.awt.Dimension;
23 24
import java.awt.event.ComponentEvent;
......
25 26
import java.util.ArrayList;
26 27

  
27 28
import javax.swing.JFormattedTextField;
29
import javax.swing.JLabel;
28 30
import javax.swing.JPanel;
29 31
import javax.swing.JSlider;
30 32

  
......
32 34
import org.gvsig.raster.beans.canvas.layers.Border;
33 35
import org.gvsig.raster.beans.canvas.layers.GraphicHistogram;
34 36
import org.gvsig.raster.datastruct.Histogram;
35

  
36 37
/**
37 38
 * Clase base para los gr?ficos de histogramas de entrada y salida.
38 39
 * 
......
75 76
	
76 77
	private double[]                           minList         = null;
77 78
	private double[]                           maxList         = null;
79

  
80
	private JLabel labelStatus = null;
78 81
	
79 82
	public HistogramGraphicBase(Histogram hist, int[] renderBands, double[] minList, double[] maxList) {
80 83
		this.hist = hist;
81 84
		this.renderBands = renderBands;
82 85
		this.minList = minList;
83 86
		this.maxList = maxList;
87
		initialize();
84 88
	}
85 89
	
90
	private void initialize() {
91
		init();
92
		this.setLayout(new BorderLayout());
93
		this.add(getCanvas(), BorderLayout.CENTER);
94
		this.add(getLabelStatus(), BorderLayout.SOUTH);
95
	}
96
	
86 97
	/**
87 98
	 * Obtiene el campo de texto con el valor m?ximo
88 99
	 * @return DataInputField
89 100
	 */
90 101
	public JFormattedTextField getMaxValue() {
91
		if(maxValue == null) {
102
		if (maxValue == null) {
92 103
			maxValue = new JFormattedTextField(String.valueOf(maxList[0]));
93 104
			maxValue.setPreferredSize(new Dimension(54, 20));
94 105
		}
......
100 111
	 * @return DataInputField
101 112
	 */
102 113
	public JFormattedTextField getMinValue() {
103
		if(minValue == null) {
114
		if (minValue == null) {
104 115
			minValue = new JFormattedTextField(String.valueOf(minList[0]));
105 116
			minValue.setPreferredSize(new Dimension(54, 20));
106 117
		}
......
112 123
	 * @return JSlider
113 124
	 */
114 125
	public JSlider getSlider() {
115
		if(slider == null) {
126
		if (slider == null) {
116 127
			slider = new JSlider();
117 128
		}
118 129
		return slider;
......
125 136
	 */
126 137
	public void setHistogram(double[] hist, int colorInterp) {
127 138
		switch (colorInterp) {
128
		case RED: histogramRed = hist; break;
129
		case GREEN: histogramGreen = hist; break;
130
		case BLUE: histogramBlue = hist; break;
131
		case GRAY: histogramGray = hist; break;
139
			case RED:
140
				histogramRed = hist;
141
				break;
142
			case GREEN:
143
				histogramGreen = hist;
144
				break;
145
			case BLUE:
146
				histogramBlue = hist;
147
				break;
148
			case GRAY:
149
				histogramGray = hist;
150
				break;
132 151
		}
133
		if(histogramDrawed == null)
152
		if (histogramDrawed == null)
134 153
			histogramDrawed = hist;
135 154
	}
136 155
	
......
171 190
	 * @param type Tipo de histograma. El valor est? definido en las constantes de esta clase
172 191
	 */
173 192
	public void setHistogramType(int type) {
174
		//TODO: FUNCIONALIDAD: Sin implementar el tipo de histograma
193
		// TODO: FUNCIONALIDAD: Sin implementar el tipo de histograma
175 194
		switch (type) {
176
		case STANDARD:  break;
177
		case CUMULATIVE: break;
195
			case STANDARD:
196
				break;
197
			case CUMULATIVE:
198
				break;
178 199
		}
179 200
	}
180 201
	
......
184 205
	 */
185 206
	public Border getGraphicBorder() {
186 207
		for (int i = 0; i < canvas.getDrawableElements().size(); i++) {
187
			if(canvas.getDrawableElements().get(i) instanceof Border)
188
				return (Border)canvas.getDrawableElements().get(i);
208
			if (canvas.getDrawableElements().get(i) instanceof Border)
209
				return (Border) canvas.getDrawableElements().get(i);
189 210
		}
190 211
		return null;
191 212
	}
......
209 230
	 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
210 231
	 */
211 232
	public void componentResized(ComponentEvent e) {
212
		if(canvas != null) {
233
		if (canvas != null) {
213 234
			getGraphicBorder().assignVisibleSize();
214 235
			canvas.execFirstDrawActions();
215 236
			canvas.repaint();
......
274 295
	}
275 296
	
276 297
	/**
277
	 * Obtiene el panel con las entradas de texto para los valores
278
	 * m?ximo y m?nimo
298
	 * Obtiene el panel del sur, que contendr? inicialmente un label informativo
279 299
	 * @return JPanel
280 300
	 */
281
	public abstract JPanel getSouthPanel();
301
	public JLabel getLabelStatus() {
302
		if (labelStatus == null) {
303
			labelStatus = new JLabel();
304
		}
305
		return labelStatus;
306
	}
282 307
	
283 308
	/**
284 309
	 * Obtiene el lienzo donde se dibujan las gr?ficas
285 310
	 * @return GCanvas
286 311
	 */
287 312
	public abstract GCanvas getCanvas();
288
	
289
}
313
}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/graphics/InputHistogram.java
18 18
 */
19 19
package org.gvsig.rastertools.enhanced.graphics;
20 20

  
21
import java.awt.BorderLayout;
22 21
import java.awt.Color;
23
import java.awt.GridBagConstraints;
24
import java.awt.GridBagLayout;
25 22

  
26
import javax.swing.JPanel;
27

  
28 23
import org.gvsig.raster.beans.canvas.DrawableElement;
29 24
import org.gvsig.raster.beans.canvas.GCanvas;
30 25
import org.gvsig.raster.beans.canvas.layers.Border;
......
41 36
 */
42 37
public class InputHistogram extends HistogramGraphicBase {
43 38
	private static final long serialVersionUID = 681848373747974757L;
44
	private MinMaxLines                      minMaxLines        = null; 
45
	private Color                            minmaxColor        = Color.WHITE;
46
	private DrawableElement                  dElement           = null;
39
	private MinMaxLines     minMaxLines = null;
40
	private Color           minmaxColor = Color.WHITE;
41
	private DrawableElement dElement    = null;
47 42
	
48 43
	/**
49 44
	 * Crea una nueva instancia de InputHistogram.
50 45
	 */
51 46
	public InputHistogram(Histogram hist, int[] renderBands, double[] minList, double[] maxList) {
52 47
		super(hist, renderBands, minList, maxList);
53
		init();
54 48
	}
55 49
	
56
	/**
57
	 * Inicializaci?n de componentes gr?ficos
58
	 */
59
	protected void init() {
60
		super.init();
61
			
62
		dElement = new StraightLine(Color.YELLOW);
63
		this.setLayout(new BorderLayout());
64
		this.add(getCanvas(), BorderLayout.CENTER);
65
		this.add(getSouthPanel(), BorderLayout.SOUTH);
66
	}
67
	
68 50
	/*
69 51
	 * (non-Javadoc)
70
	 * @see org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase#getSouthPanel()
71
	 */
72
	public JPanel getSouthPanel() {
73
		if(south == null) {
74
			south = new JPanel();
75
			south.setLayout(new GridBagLayout());
76
			GridBagConstraints gb = new GridBagConstraints();
77
			gb.weightx = 1;
78
			
79
			gb.anchor = GridBagConstraints.WEST;
80
			south.add(getMinValue(), gb);
81
			
82
			gb.anchor = GridBagConstraints.EAST;
83
			south.add(getMaxValue(), gb);
84
		}
85
		return south;
86
	}
87
	
88
	/*
89
	 * (non-Javadoc)
90 52
	 * @see org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase#getCanvas()
91 53
	 */
92 54
	public GCanvas getCanvas() {
......
94 56
			gHist = new GraphicHistogram(histogramDrawed, histogramColor);
95 57
			gHist.setType(GraphicHistogram.TYPE_LINE);
96 58
			minMaxLines = new MinMaxLines(minmaxColor);
59
			dElement = new StraightLine(Color.YELLOW);
97 60
			//minMaxLines.setActionManager(this);
98 61
			
99 62
			canvas = new GCanvas(Color.BLACK);
100
			canvas.setDrawableElement(new Border(borderColor));
101
			canvas.setDrawableElement(gHist);
102
			canvas.setDrawableElement(dElement);
103
			canvas.setDrawableElement(minMaxLines);
63
			canvas.addDrawableElement(new Border(borderColor));
64
			canvas.addDrawableElement(gHist);
65
			canvas.addDrawableElement(dElement);
66
			canvas.addDrawableElement(minMaxLines);
104 67
		}
105 68
		return canvas;
106 69
	}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/graphics/OutputHistogram.java
18 18
 */
19 19
package org.gvsig.rastertools.enhanced.graphics;
20 20

  
21
import java.awt.BorderLayout;
22 21
import java.awt.Color;
23
import java.awt.GridBagConstraints;
24
import java.awt.GridBagLayout;
25 22

  
26
import javax.swing.JPanel;
27

  
28 23
import org.gvsig.raster.beans.canvas.GCanvas;
29 24
import org.gvsig.raster.beans.canvas.layers.Border;
30 25
import org.gvsig.raster.beans.canvas.layers.GraphicHistogram;
......
36 31
 * @author Nacho Brodin nachobrodin@gmail.com
37 32
 */
38 33
public class OutputHistogram extends HistogramGraphicBase {
39
	private static final long serialVersionUID = 1L;
34
	private static final long serialVersionUID = -3827308936130572914L;
40 35

  
41 36
	/**
42 37
	 * Crea una nueva instancia de OutputHistogram.
43 38
	 */
44 39
	public OutputHistogram(Histogram hist, int[] renderBands, double[] minList, double[] maxList) {
45 40
		super(hist, renderBands, minList, maxList);
46
		init();
47 41
	}
48
	
49
	/**
50
	 * Inicializaci?n de componentes gr?ficos
51
	 */
52
	protected void init() {
53
		super.init();
54
		histogramColor = Color.GREEN;
55
		this.setLayout(new BorderLayout());
56
		this.add(getCanvas(), BorderLayout.CENTER);
57
		this.add(getSouthPanel(), BorderLayout.SOUTH);
58
	}
59
	
60
	/*
61
	 * (non-Javadoc)
62
	 * @see org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase#createDrawableElements()
63
	 */
64
	protected void createDrawableElements() {
65
	}
66 42

  
67 43
	/*
68 44
	 * (non-Javadoc)
......
70 46
	 */
71 47
	public GCanvas getCanvas() {
72 48
		if (canvas == null) {
73
			GraphicHistogram gHist = new GraphicHistogram(histogramDrawed, histogramColor);
49
			GraphicHistogram gHist = new GraphicHistogram(histogramDrawed, Color.GREEN);
74 50
			gHist.setType(GraphicHistogram.TYPE_LINE);
75 51

  
76 52
			canvas = new GCanvas(Color.BLACK);
77
			canvas.setDrawableElement(new Border(borderColor));
78
			canvas.setDrawableElement(gHist);
53
			canvas.addDrawableElement(new Border(borderColor));
54
			canvas.addDrawableElement(gHist);
79 55
		}
80 56
		return canvas;
81 57
	}
82

  
83
	/*
84
	 * (non-Javadoc)
85
	 * @see org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase#getSouthPanel()
86
	 */
87
	public JPanel getSouthPanel() {
88
		if(south == null) {
89
			south = new JPanel();
90
			south.setLayout(new GridBagLayout());
91
			GridBagConstraints gb = new GridBagConstraints();
92
			gb.weightx = 1;
93
			
94
			gb.anchor = GridBagConstraints.WEST;
95
			south.add(getMinValue(), gb);
96
			
97
			gb.anchor = GridBagConstraints.EAST;
98
			south.add(getMaxValue(), gb);
99
		}
100
		return south;
101
	}
102 58
}
trunk/extensions/extRasterTools-SE/src-test-ui/org/gvsig/raster/beans/canvas/GCanvasTest.java
57 57
		minMaxLines = new MinMaxLines(Color.white);
58 58
		
59 59
		component = new GCanvas(Color.BLACK);
60
		component.setDrawableElement(border);
61
		component.setDrawableElement(gHistR);
62
		component.setDrawableElement(minMaxLines);
63
		component.setDrawableElement(line);
60
		component.addDrawableElement(border);
61
		component.addDrawableElement(gHistR);
62
		component.addDrawableElement(minMaxLines);
63
		component.addDrawableElement(line);
64 64
	
65 65
		jFrame.setSize(new Dimension(200, 223));
66 66
		jFrame.setContentPane(component);
trunk/extensions/extRasterTools-SE/src-test-ui/org/gvsig/rastertools/enhanced/graphics/panels/EnhancedGraphic.java
186 186
			gHistR.setType(GraphicHistogram.TYPE_LINE);
187 187
			
188 188
			canvas = new GCanvas(Color.BLACK);
189
			canvas.setDrawableElement(new Border(Color.WHITE));
190
			canvas.setDrawableElement(gHistR);
191
			canvas.setDrawableElement(dElement); 
189
			canvas.addDrawableElement(new Border(Color.WHITE));
190
			canvas.addDrawableElement(gHistR);
191
			canvas.addDrawableElement(dElement); 
192 192
		}
193 193
		return canvas;
194 194
	}
trunk/extensions/extRasterTools-SE/src-test-ui/org/gvsig/rastertools/enhanced/graphics/panels/EcualizationHistogram.java
191 191
			minMaxLines = new MinMaxLines(minmaxColor);
192 192
			
193 193
			canvas = new GCanvas(Color.BLACK);
194
			canvas.setDrawableElement(new Border(borderColor));
195
			canvas.setDrawableElement(gHistR);
196
			canvas.setDrawableElement(minMaxLines);
197
			canvas.setDrawableElement(dElement); 
194
			canvas.addDrawableElement(new Border(borderColor));
195
			canvas.addDrawableElement(gHistR);
196
			canvas.addDrawableElement(minMaxLines);
197
			canvas.addDrawableElement(dElement); 
198 198
		}
199 199
		return canvas;
200 200
	}

Also available in: Unified diff