Revision 20826

View differences:

trunk/extensions/extRemoteSensing/src/org/gvsig/remotesensing/gridmath/gui/OutputOptionsPanel.java
97 97
	private JTextField  jTextRangoX2 = null;
98 98
	private JTextField jTextRangoY1 = null;
99 99
	private JTextField jTextRangoY2 = null;
100
	private JTextField jTextCellSize = null;
100
	private JTextField jTextCellSizeX = null;
101
	private JTextField jTextCellSizeY = null;
101 102
	private JTextField  jTextNumFiCol1 = null;
102 103
	private JTextField jTextNumFiCol2 = null;
103 104
	private FLayers layers = null;
......
300 301
				p.add(new JLabel((PluginServices.getText(this,"rangoy"))),"0,1");
301 302
				p.add(new JLabel((PluginServices.getText(this,"tamanio_celda"))),"0,2");
302 303
				p.add(new JLabel((PluginServices.getText(this,"num_filas_columnas"))),"0,3");
303
				p.add(getJTextCellSize(),"1,2");
304
				p.add(getJTextCellSizeX(),"1,2");
305
				p.add(getJTextCellSizeY(),"2,2");
304 306
				p.add(getJTextNumFiCol1(),"1,3");
305 307
				p.add(getJTextNumFiCol2(),"2,3");
306 308
				p.add(getJTextRangoX1(),"1,0");
......
356 358
	/**
357 359
	 * @return JTextField tama?o de celda 
358 360
	 */
359
	public JTextField getJTextCellSize() {
360
		if (jTextCellSize==null){
361
			jTextCellSize=new JTextField(15);;
362
			jTextCellSize.setEditable(false);
363
			jTextCellSize.addKeyListener(this);   
361
	public JTextField getJTextCellSizeX() {
362
		if (jTextCellSizeX==null){
363
			jTextCellSizeX=new JTextField(15);;
364
			jTextCellSizeX.setEditable(false);
365
			jTextCellSizeX.addKeyListener(this);   
364 366
		}
365
		return jTextCellSize;
367
		return jTextCellSizeX;
366 368
	}
369
	
370
	/**
371
	 * @return JTextField tama?o de celda 
372
	 */
373
	public JTextField getJTextCellSizeY() {
374
		if (jTextCellSizeY==null){
375
			jTextCellSizeY=new JTextField(15);;
376
			jTextCellSizeY.setEditable(false);
377
			jTextCellSizeY.addKeyListener(this);   
378
		}
379
		return jTextCellSizeY;
380
	}
367 381

  
368 382

  
369 383
	
......
521 535
		jTextRangoY2.setEditable(false);
522 536
		jTextRangoY2.setEnabled(false);
523 537
		jTextNumFiCol1.setEditable(false);
524
		jTextCellSize.setEditable(false);
525
		jTextCellSize.setEnabled(false);
538
		jTextCellSizeX.setEditable(false);
539
		jTextCellSizeX.setEnabled(false);
540
		jTextCellSizeY.setEditable(false);
541
		jTextCellSizeY.setEnabled(false);
526 542
		jTextNumFiCol1.setEnabled(false);
527 543
		jTextNumFiCol2.setEditable(false);
528 544
		jTextNumFiCol2.setEnabled(false);
......
538 554
		
539 555
		double dRangeX;
540 556
		double dRangeY;
541
		double dCellSize;
557
		double dCellSizeX;
558
		double dCellSizeY;
542 559
		int iRows;
543 560
		int iCols;
544 561
		// Se actualiza la X		
545 562
		try {
546 563
			dRangeX = Math.abs(Double.parseDouble(getJTextRangoX2().getText())
547 564
								- Double.parseDouble(getJTextRangoX1().getText()));
548
			dCellSize = Double.parseDouble(getJTextCellSize().getText());	
549
			iCols = (int) Math.floor(dRangeX / dCellSize);
565
			dCellSizeX = Double.parseDouble(getJTextCellSizeX().getText());	
566
			iCols = (int) Math.floor(dRangeX / dCellSizeX);
550 567
			getJTextNumFiCol2().setText(Integer.toString(iCols));
551 568
		
552 569
			// Se actualiza la Y	
553 570
			dRangeY = Math.abs(Double.parseDouble(getJTextRangoY2().getText())
554 571
					- Double.parseDouble(getJTextRangoY1().getText()));
555
			dCellSize = Double.parseDouble(getJTextCellSize().getText());			
556
			iRows = (int) Math.floor(dRangeY / dCellSize);
572
			dCellSizeY = Double.parseDouble(getJTextCellSizeY().getText());			
573
			iRows = (int) Math.floor(dRangeY / dCellSizeY);
557 574
			getJTextNumFiCol1().setText(Integer.toString(iRows));
558 575
			
559 576
			
......
635 652
			getJTextRangoY1().setEditable(true);
636 653
			getJTextRangoY2().setEditable(true);
637 654
			getJTextRangoY2().setEnabled(true);
638
			getJTextCellSize().setEditable(true);
639
			getJTextCellSize().setEnabled(true);
655
			getJTextCellSizeX().setEditable(true);
656
			getJTextCellSizeX().setEnabled(true);
657
			getJTextCellSizeY().setEditable(true);
658
			getJTextCellSizeY().setEnabled(true);
640 659
			updateParams();
641 660
		}
642 661
		
......
647 666
			DesabilitarTodo();
648 667
			rButtom4.setSelected(true);
649 668
			jComboCapas.setEnabled(true);
650
			jTextCellSize.setEditable(true);
651
			jTextCellSize.setEnabled(true);
669
			jTextCellSizeX.setEditable(true);
670
			jTextCellSizeX.setEnabled(true);
671
			jTextCellSizeY.setEditable(true);
672
			jTextCellSizeY.setEnabled(true);
652 673
			getJComboCapas().updateUI();
653 674
			updateParams();
654 675
		}
......
685 706
				dCoord = rasterLayer.getFullExtent().getMaxY();
686 707
				getJTextRangoY2().setText(new Double(dCoord).toString());
687 708
				if (rasterLayer instanceof FLyrRasterSE){
688
					getJTextCellSize().setText(new Double(
689
							((FLyrRasterSE) rasterLayer).getCellSize())
709
					getJTextCellSizeX().setText(new Double(
710
							Math.abs(((FLyrRasterSE) rasterLayer).getAffineTransform().getScaleX()))
690 711
							.toString());
712
					getJTextCellSizeY().setText(new Double(
713
							Math.abs(((FLyrRasterSE) rasterLayer).getAffineTransform().getScaleY()))
714
							.toString());
691 715
				}
692 716
				extentHasChanged();
693 717
			} catch (Exception ex) {}	
......
712 736
			double xMax =rasterLayer.getFullRasterExtent().maxX();
713 737
			double yMin =rasterLayer.getFullRasterExtent().minY();
714 738
			double yMax =rasterLayer.getFullRasterExtent().maxY();
715
			double cellSize=rasterLayer.getBufferFactory().getDataSource().getCellSize();
739
			double cellSizeX = Math.abs(rasterLayer.getAffineTransform().getScaleX());
740
			double cellSizeY = Math.abs(rasterLayer.getAffineTransform().getScaleY());
716 741
		
717 742
			for (int i=0;i<cp.getCalculatorPanel().getJTableVariables().getTableFormat().getRowCount();i++){
718 743
				layerName = cp.getCalculatorPanel().getJTableVariables().getTableFormat().getValueAt(i,1).toString();
......
723 748
				xMax = Math.max(rasterLayer.getFullRasterExtent().maxX(),xMax);
724 749
				yMin = Math.min(yMin,rasterLayer.getFullRasterExtent().minY());
725 750
				yMax = Math.max(yMax,rasterLayer.getFullRasterExtent().maxY());
726
				cellSize = Math.min(cellSize,rasterLayer.getCellSize());
751
				cellSizeX = Math.min(cellSizeX,Math.abs(rasterLayer.getAffineTransform().getScaleX()));
752
				cellSizeY = Math.min(cellSizeY,Math.abs(rasterLayer.getAffineTransform().getScaleY()));
727 753
			}
728 754
		
729 755
			cp.getOutputExtent().setXRange(xMin,xMax);
730 756
			cp.getOutputExtent().setYRange(yMin,yMax);
731
			cp.getOutputExtent().setCellSize(cellSize);
732 757
		
733 758
			getJTextRangoX1().setText(String.valueOf(cp.getOutputExtent().minX()));
734 759
			getJTextRangoX2().setText(String.valueOf(cp.getOutputExtent().maxX()));
735 760
			getJTextRangoY1().setText(String.valueOf(cp.getOutputExtent().minY()));
736 761
			getJTextRangoY2().setText(String.valueOf(cp.getOutputExtent().maxY()));
737
			getJTextCellSize().setText(String.valueOf(cellSize));
738
			cp.getOutputExtent().setCellSize(cellSize);
762
			getJTextCellSizeX().setText(String.valueOf(cellSizeX));
763
			getJTextCellSizeY().setText(String.valueOf(cellSizeY));
764
			cp.getOutputExtent().setCellSizeX(cellSizeX);
765
			cp.getOutputExtent().setCellSizeY(cellSizeY);
739 766
			extentHasChanged();
740 767
		} 	
741 768
	}
......
761 788
			validateKeyTyping(e);
762 789
		}
763 790
		
764
		if (e.getSource()==getJTextCellSize()){
791
		if (e.getSource()==getJTextCellSizeX()){
765 792
			
766 793
			validateKeyTyping(e);
767 794
		}
795
		
796
		if (e.getSource()==getJTextCellSizeY()){
797
			
798
			validateKeyTyping(e);
799
		}
768 800
	}
769 801
	
770 802
	/**
trunk/extensions/extRemoteSensing/src/org/gvsig/remotesensing/gridmath/gui/listener/GridMathPanelListener.java
187 187
			try{
188 188
			gridMathPanel.getOutputExtent().setXRange(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextRangoX1().getText()),Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextRangoX2().getText()));
189 189
			gridMathPanel.getOutputExtent().setYRange(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextRangoY1().getText()), Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextRangoY2().getText()));
190
			gridMathPanel.getOutputExtent().setCellSize(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextCellSize().getText()));
190
			gridMathPanel.getOutputExtent().setCellSize(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextCellSizeX().getText()));
191 191
			}catch (NumberFormatException  e) {
192 192
				RasterToolsUtil.messageBoxError(PluginServices.getText(this, "invalid_number"), this);
193 193
				return;
......
201 201
						layer.getFullExtent().getMaxX());
202 202
				gridMathPanel.getOutputExtent().setYRange(layer.getFullExtent().getMinY(),
203 203
						layer.getFullExtent().getMaxY());
204
				gridMathPanel.getOutputExtent().setCellSize(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextCellSize().getText()));		
204
				gridMathPanel.getOutputExtent().setCellSize(Double.parseDouble(gridMathPanel.getOptionsPanel().getJTextCellSizeX().getText()));		
205 205
				gridMathPanel.getOptionsPanel().extentHasChanged();
206 206
			} catch (Exception ex) {
207 207
				ex.printStackTrace();
trunk/extensions/extRemoteSensing/src/org/gvsig/remotesensing/gridmath/GridMathProcess.java
153 153
	private void writeToFile(){
154 154
		try {
155 155
			writerBufferServer = new WriterBufferServer(rasterResult);
156
			aTransform = new AffineTransform(resultExtent.getCellSize(), 0.0, 0.0, -resultExtent.getCellSize(), resultExtent.getMin().getX(), resultExtent.getMax().getY());
156
			aTransform = new AffineTransform(resultExtent.getCellSizeX(), 0.0, 0.0, -resultExtent.getCellSizeY(), resultExtent.getMin().getX(), resultExtent.getMax().getY());
157 157
			GeoRasterWriter grw = GeoRasterWriter.getWriter(writerBufferServer, filePath, rasterResult.getBandCount(), aTransform, resultExtent.getNX(), resultExtent.getNY(), rasterResult.getDataType(), GeoRasterWriter.getWriter(filePath).getParams(), mapContext.getProjection());
158 158
			grw.dataWrite();
159 159
			grw.writeClose();

Also available in: Unified diff