Revision 17617 trunk/extensions/extRemoteSensing/src/org/gvsig/remotesensing/scatterplot/listener/ManagerROIChartPanelListener.java

View differences:

ManagerROIChartPanelListener.java
1 1
package org.gvsig.remotesensing.scatterplot.listener;
2 2

  
3 3
import java.awt.Color;
4
import java.awt.Point;
5 4
import java.awt.event.ActionEvent;
6 5
import java.awt.event.ActionListener;
7
import java.awt.geom.AffineTransform;
8
import java.awt.geom.Point2D;
9
import java.awt.geom.Rectangle2D;
10 6
import java.util.ArrayList;
11 7
import java.util.Iterator;
12 8

  
......
35 31
import com.iver.cit.gvsig.fmap.core.SymbologyFactory;
36 32
import com.iver.cit.gvsig.fmap.core.symbols.IMarkerSymbol;
37 33
import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
38
import com.iver.cit.gvsig.fmap.core.symbols.SimpleMarkerSymbol;
39 34
import com.iver.cit.gvsig.fmap.layers.FLayer;
40 35
import com.iver.cit.gvsig.fmap.layers.GraphicLayer;
41 36
import com.iver.cit.gvsig.fmap.rendering.FGraphic;
42 37
import com.iver.cit.gvsig.project.documents.view.gui.View;
43 38

  
44 39

  
40
/**
41
 * Listener para el gestor de rois sobre el grafico
42
 * 
43
 * @author Alejandro Mu?oz Sanchez (alejandro.munoz@uclm.es)  
44
 * @version 11/12/2007
45
 */
45 46

  
46

  
47 47
public class ManagerROIChartPanelListener implements ButtonsPanelListener, ActionListener, ListSelectionListener, TableModelListener{
48 48
		
49 49
		private ManagerROIChartPanel tablePanel = null;
......
56 56
			activeRoi = tablePanel.getDiagram().getActiveRoiChart();
57 57
			layer= tablePanel.getFLayer();
58 58
		}
59
		
59 60

  
60
		public void actionButtonPressed(ButtonsPanelEvent e) {
61
		}
62

  
63 61
		public void actionPerformed(ActionEvent e) {
64 62
			
65 63
			if (e.getSource() == tablePanel.getExportButton()){
66 64
				
65
				
66
				// EXTRAER DE AQUI. PROVISIONAL
67
				
67 68
				// ACCIONES PARA EXPORTAR LA ROI ACTIVA DEL GRAFICO A LA VISTA
68 69
				ROIChart roiToExport=  tablePanel.getDiagram().getActiveRoiChart();
69
				ArrayList rangos=roiToExport.getRanges();
70
				//ArrayList rangos=roiToExport.getRanges();
70 71
				
71
				// Recorrido de la imagen
72
				Grid grid= tablePanel.getScatterPlotPanel().getGrid();
72
				RoiFromChartProcess toRoi= new RoiFromChartProcess(roiToExport,tablePanel.getScatterPlotPanel().getGrid());
73
				toRoi.createVectorialRoi();
74
			
75
		
73 76
				
74 77
				
75
				VectorialROI newRoi = new VectorialROI(grid);
76
				newRoi.setColor(roiToExport.getColor());
77
				int bandX= tablePanel.getScatterPlotPanel().getBandX();
78
				int bandY= tablePanel.getScatterPlotPanel().getBandY();
79
				double valorBandX= 0;
80
				double valorBandY=0;
81
				Range rango[] = null;
82
				int nX = grid.getNX();
83
				int nY = grid.getNY();
84
				IBuffer buffer = grid.getRasterBuf();
85
				View view = (View) PluginServices.getMDIManager().getActiveWindow();
86
				MapControl mapControl = view.getMapControl();
87
				// Recorrido del grid
88
				
89
				if(buffer.getDataType() == RasterBuffer.TYPE_BYTE)
90
				{
91
						for (int j=0; j<nY; j++){
92
							for(int i=0; i<nX; i++)
93
							
94
							{
95
								valorBandX= buffer.getElemByte(j,i,0);
96
								valorBandY=	buffer.getElemByte(j,i,1);
97
							 	
98
								Iterator iterator =rangos.iterator();
99
								while(iterator.hasNext()){
100
									rango=(Range[]) iterator.next();
101
									if(isInside(valorBandX,rango[0]) && isInside(valorBandY,rango[1])){					 
102
										double mapX = grid.getGridExtent().getMin().getX()+i*grid.getCellSize();
103
										double mapY = grid.getGridExtent().getMax().getY()-j*grid.getCellSize();
104
										IGeometry geometry = ShapeFactory.createPoint2D(mapX,mapY);
105
										newRoi.addGeometry(geometry); // Geometria						
106
									}
107
								}
108
							}
109
						}
110
				}
111
				
112
				if(buffer.getDataType() == RasterBuffer.TYPE_SHORT)
113
				{
114
						for (int j=0; j<nY; j++){
115
							for(int i=0; i<nX; i++)
116
							
117
							{
118
								valorBandX= buffer.getElemShort(j,i,0);
119
								valorBandY=	buffer.getElemShort(j,i,1);
120
							 	
121
								Iterator iterator =rangos.iterator();
122
								while(iterator.hasNext()){
123
									rango=(Range[]) iterator.next();
124
									if(isInside(valorBandX,rango[0]) && isInside(valorBandY,rango[1])){					 
125
										double mapX = grid.getGridExtent().getMin().getX()+i*grid.getCellSize();
126
										double mapY = grid.getGridExtent().getMax().getY()-j*grid.getCellSize();
127
										IGeometry geometry = ShapeFactory.createPoint2D(mapX,mapY);
128
										newRoi.addGeometry(geometry);
129
									}
130
								}
131
							}
132
						}
133
				}
134
				
135
				
136
				
137
				drawRoi(newRoi);
78

  
138 79
					
139 80
					
140 81
			}else if (e.getSource() == tablePanel.getDeleteButton()){
......
217 158
		
218 159
		// Metodo que pinta la roi en la vista
219 160
		
220
		
161
	/**
162
	 * Dibujado de la ro
163
	 * */	
221 164
	void drawRoi(VectorialROI roi){
222 165
		
223 166
		VectorialROI vectorialROI = (VectorialROI) roi;
......
256 199
			return false;
257 200
		
258 201
	}
202

  
203

  
204
	public void actionButtonPressed(ButtonsPanelEvent e) {
205
		// TODO Auto-generated method stub
259 206
		
207
	}
208
		
260 209
				
261 210
	
262 211
}

Also available in: Unified diff