Revision 723
org.gvsig.raster.wcs/trunk/org.gvsig.raster.wcs/org.gvsig.raster.wcs.app/org.gvsig.raster.wcs.app.wcsclient/src/main/java/org/gvsig/raster/wcs/app/wcsclient/layer/FLyrWCS.java | ||
---|---|---|
71 | 71 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
72 | 72 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
73 | 73 |
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException; |
74 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
75 | 74 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
76 | 75 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
77 | 76 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
78 | 77 |
import org.gvsig.fmap.dal.coverage.store.parameter.TileDataParameters; |
78 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
79 | 79 |
import org.gvsig.fmap.dal.exception.DataException; |
80 | 80 |
import org.gvsig.fmap.dal.exception.InitializeException; |
81 | 81 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
... | ... | |
477 | 477 |
return layer; |
478 | 478 |
} |
479 | 479 |
|
480 |
/* |
|
481 |
* (non-Javadoc) |
|
482 |
* @see org.gvsig.fmap.raster.IRasterRendering#getRenderTransparency() |
|
483 |
*/ |
|
484 |
public GridTransparency getRenderTransparency() { |
|
480 |
public Transparency getRenderTransparency() { |
|
485 | 481 |
return getRender().getLastTransparency(); |
486 |
// return (transparency != null) ? transparency : getRender().getLastTransparency(); |
|
487 | 482 |
} |
488 | 483 |
|
489 | 484 |
/* |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.multifile/src/main/java/org/gvsig/raster/tools/app/multifile/panel/BandSelectorPanel.java | ||
---|---|---|
39 | 39 |
import javax.swing.table.DefaultTableModel; |
40 | 40 |
|
41 | 41 |
import org.gvsig.andami.PluginServices; |
42 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
43 | 42 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
44 | 43 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
44 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
45 | 45 |
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel; |
46 | 46 |
import org.gvsig.gui.beans.table.TableContainer; |
47 | 47 |
import org.gvsig.gui.beans.table.exceptions.NotInitializeException; |
48 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
|
49 |
import org.gvsig.raster.fmap.layers.IRasterLayerActions; |
|
48 | 50 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
49 | 51 |
import org.gvsig.raster.tools.app.basic.tool.properties.RasterPropertiesTocMenuEntry; |
50 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
|
51 |
import org.gvsig.raster.fmap.layers.IRasterLayerActions; |
|
52 | 52 |
|
53 | 53 |
/** |
54 | 54 |
* Selecciona las bandas visibles en un raster. Contiene una tabla con una fila |
... | ... | |
527 | 527 |
public void readDrawedBands() { |
528 | 528 |
if (fLayer.getRender() != null) { |
529 | 529 |
int[] renderBands = fLayer.getRender().getRenderBands(); |
530 |
GridTransparency transp = fLayer.getRender().getLastTransparency();
|
|
530 |
Transparency transp = fLayer.getRender().getLastTransparency(); |
|
531 | 531 |
if(transp != null && transp.isTransparencyActive() && transp.getAlphaBandNumber() != -1) |
532 | 532 |
this.assignBand(transp.getAlphaBandNumber(), RasterDataStore.ALPHA_BAND); |
533 | 533 |
for (int i = 0; i < renderBands.length; i++) { |
... | ... | |
609 | 609 |
fLayer.getRender().setRenderBands(renderBands); |
610 | 610 |
if(alphaBand != null) { |
611 | 611 |
// Ultima transparencia aplicada en el renderizador |
612 |
GridTransparency gt = fLayer.getRender().getLastTransparency();
|
|
612 |
Transparency gt = fLayer.getRender().getLastTransparency(); |
|
613 | 613 |
if(gt != null) |
614 | 614 |
gt.setTransparencyBand(alphaBand.intValue()); |
615 | 615 |
} |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.multifile/src/main/java/org/gvsig/raster/tools/app/multifile/panel/BandSelectorListener.java | ||
---|---|---|
42 | 42 |
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException; |
43 | 43 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
44 | 44 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
45 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
46 | 45 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
47 | 46 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
48 | 47 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
... | ... | |
447 | 446 |
bandSetupPanel.getAssignedBand(RasterDataStore.BLUE_BAND)}); |
448 | 447 |
int alphaBand = bandSetupPanel.getAssignedBand(RasterDataStore.ALPHA_BAND); |
449 | 448 |
// Ultima transparencia aplicada en el renderizador |
450 |
GridTransparency gt = fLayer.getRender().getLastTransparency();
|
|
449 |
Transparency gt = fLayer.getRender().getLastTransparency(); |
|
451 | 450 |
if(gt != null) |
452 | 451 |
gt.setTransparencyBand(alphaBand); |
453 | 452 |
|
454 | 453 |
// Transparencia del dataset |
455 | 454 |
if(fLayer.getDataStore() != null) { |
456 |
Transparency t = fLayer.getDataStore().getTransparencyFilesStatus();
|
|
455 |
Transparency t = fLayer.getDataStore().getTransparency(); |
|
457 | 456 |
if(t != null) |
458 | 457 |
t.setTransparencyBand(alphaBand); |
459 | 458 |
} |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/RasterExtension.java | ||
---|---|---|
527 | 527 |
ArrayList<FLayer> list = RasterToolsUtil.getRasterLayerList(lyrs, null); |
528 | 528 |
for (int j = 0; j < list.size(); j++) |
529 | 529 |
if(list.get(j) instanceof FLyrRaster) |
530 |
((RasterDataStore)((FLyrRaster)list.get(j)).getDataStore()).getTransparencyFilesStatus().activeNoData(noDataTransparent);
|
|
530 |
((RasterDataStore)((FLyrRaster)list.get(j)).getDataStore()).getTransparency().activeNoData(noDataTransparent); |
|
531 | 531 |
} |
532 | 532 |
|
533 | 533 |
return; |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/colortable/ui/ColorTablePanel.java | ||
---|---|---|
34 | 34 |
import org.gvsig.fmap.dal.coverage.RasterManager; |
35 | 35 |
import org.gvsig.fmap.dal.coverage.exception.ColorTableException; |
36 | 36 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
37 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
38 | 37 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
39 | 38 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
40 | 39 |
import org.gvsig.fmap.dal.coverage.grid.render.Render; |
41 | 40 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
42 | 41 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
42 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
43 | 43 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
44 | 44 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent; |
45 | 45 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener; |
... | ... | |
255 | 255 |
|
256 | 256 |
// Quitamos la banda de transparencia por si el filtro de color la ha activado |
257 | 257 |
try { |
258 |
GridTransparency transparency = getLayer().getRender().getLastTransparency();
|
|
258 |
Transparency transparency = getLayer().getRender().getLastTransparency(); |
|
259 | 259 |
transparency.setTransparencyBand(-1); |
260 |
transparency.activeTransparency(); |
|
260 |
//transparency.activeTransparency();
|
|
261 | 261 |
transparency.setAlphaBand(null); |
262 | 262 |
} catch (NullPointerException ex) { |
263 | 263 |
//No quitamos la banda de transparencia |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/properties/panel/GeneralPanel.java | ||
---|---|---|
45 | 45 |
|
46 | 46 |
import org.gvsig.andami.PluginServices; |
47 | 47 |
import org.gvsig.fmap.dal.coverage.RasterLibrary; |
48 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
49 | 48 |
import org.gvsig.fmap.dal.coverage.store.props.Statistics; |
49 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
50 | 50 |
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel; |
51 | 51 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
52 | 52 |
import org.gvsig.raster.fmap.layers.IRasterLayerActions; |
... | ... | |
83 | 83 |
private JPanel scalePanel = null; |
84 | 84 |
private JPanel recalcStatsPanel = null; |
85 | 85 |
private NoDataPanel pNoDataPanel = null; |
86 |
private GridTransparency transparency = null;
|
|
86 |
private Transparency transparency = null;
|
|
87 | 87 |
|
88 | 88 |
private JScrollPane jScrollPane = null; |
89 | 89 |
private JEditorPane jEditorPane = null; |
... | ... | |
486 | 486 |
|
487 | 487 |
refreshHTMLStatistics(); |
488 | 488 |
saveStatus(); |
489 |
setValuesFromPanelToGridTransparency();
|
|
489 |
setValuesFromPanelToTransparency(); |
|
490 | 490 |
} |
491 | 491 |
|
492 | 492 |
/** |
... | ... | |
563 | 563 |
/** |
564 | 564 |
* Asigna los valores del panel a la transparencia de la capa. |
565 | 565 |
*/ |
566 |
private void setValuesFromPanelToGridTransparency() {
|
|
566 |
private void setValuesFromPanelToTransparency() { |
|
567 | 567 |
if (transparency == null) |
568 | 568 |
return; |
569 | 569 |
|
... | ... | |
591 | 591 |
*/ |
592 | 592 |
public void onlyApply() { |
593 | 593 |
if (RasterPropertiesTocMenuEntry.enableEvents) |
594 |
setValuesFromPanelToGridTransparency();
|
|
594 |
setValuesFromPanelToTransparency(); |
|
595 | 595 |
|
596 | 596 |
if (fLayer == null) |
597 | 597 |
return; |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/properties/control/TransparencyListener.java | ||
---|---|---|
25 | 25 |
import java.util.EventObject; |
26 | 26 |
|
27 | 27 |
import org.gvsig.fmap.dal.coverage.datastruct.TransparencyRange; |
28 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency;
|
|
28 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency;
|
|
29 | 29 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
30 | 30 |
import org.gvsig.raster.tools.app.basic.RasterExtension; |
31 | 31 |
import org.gvsig.raster.tools.app.basic.tool.properties.RasterPropertiesTocMenuEntry; |
... | ... | |
37 | 37 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
38 | 38 |
*/ |
39 | 39 |
public class TransparencyListener implements TranspByPixelEventListener { |
40 |
private GridTransparency transparency = null;
|
|
40 |
private Transparency transparency = null;
|
|
41 | 41 |
private TransparencyPanel tPanel = null; |
42 | 42 |
|
43 | 43 |
/** |
... | ... | |
52 | 52 |
/** |
53 | 53 |
* Carga los valores del panel desde el objeto con la transparencia |
54 | 54 |
*/ |
55 |
private void setValuesFromGridTransparencyToPanel() {
|
|
55 |
private void setValuesFromTransparencyToPanel() { |
|
56 | 56 |
//Asignamos la opacidad al panel |
57 | 57 |
if (transparency.getOpacity() != 255) { |
58 | 58 |
tPanel.getOpacityPanel().setControlEnabled(true); |
... | ... | |
81 | 81 |
/** |
82 | 82 |
* Carga los valores del objeto transparencia desde el panel |
83 | 83 |
*/ |
84 |
private void setValuesFromPanelToGridTransparency() {
|
|
84 |
private void setValuesFromPanelToTransparency() { |
|
85 | 85 |
if (transparency == null) |
86 | 86 |
return; |
87 | 87 |
// Asignamos la opacidad al objeto |
... | ... | |
119 | 119 |
*/ |
120 | 120 |
public void onlyApply() { |
121 | 121 |
if (RasterPropertiesTocMenuEntry.enableEvents) |
122 |
setValuesFromPanelToGridTransparency();
|
|
122 |
setValuesFromPanelToTransparency(); |
|
123 | 123 |
} |
124 | 124 |
|
125 | 125 |
/** |
... | ... | |
187 | 187 |
public void setLayer(FLyrRaster layer) { |
188 | 188 |
transparency = layer.getRender().getLastTransparency(); |
189 | 189 |
saveStatus(); |
190 |
setValuesFromGridTransparencyToPanel();
|
|
190 |
setValuesFromTransparencyToPanel(); |
|
191 | 191 |
} |
192 | 192 |
} |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/FilterProcess.java | ||
---|---|---|
196 | 196 |
//Si la imagen original ten?a una banda de transparencia se asignar? esta. Si los filtros generados |
197 | 197 |
//crean una banda se mezclar? con la original. |
198 | 198 |
int nbands = buffer.getBandCount(); |
199 |
if( rasterDataSource.getTransparencyFilesStatus() != null &&
|
|
200 |
rasterDataSource.getTransparencyFilesStatus().getAlphaBandNumber() >= 0) {
|
|
201 |
query.setDrawableBands(new int[]{rasterDataSource.getTransparencyFilesStatus().getAlphaBandNumber()});
|
|
199 |
if( rasterDataSource.getTransparency() != null && |
|
200 |
rasterDataSource.getTransparency().getAlphaBandNumber() >= 0) { |
|
201 |
query.setDrawableBands(new int[]{rasterDataSource.getTransparency().getAlphaBandNumber()}); |
|
202 | 202 |
query.setAreaOfInterest(); |
203 | 203 |
Buffer alpha = dstoreCopy.query(query); |
204 | 204 |
if(grid.getFilterList().getAlphaBand() != null) |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/util/LayerVisualStatusList.java | ||
---|---|---|
26 | 26 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
27 | 27 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
28 | 28 |
import org.gvsig.fmap.dal.coverage.grid.render.Render; |
29 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
29 | 30 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
30 | 31 |
import org.gvsig.raster.fmap.layers.IRasterLayerActions; |
31 | 32 |
|
... | ... | |
46 | 47 |
*/ |
47 | 48 |
public class LayerVisualStatus { |
48 | 49 |
private ArrayList<RasterFilter> filterStatus = null; |
49 |
private GridTransparency transparency = null;
|
|
50 |
private Transparency transparency = null;
|
|
50 | 51 |
|
51 | 52 |
/** |
52 | 53 |
* Obtiene el estado de la lista de filtros |
... | ... | |
66 | 67 |
|
67 | 68 |
/** |
68 | 69 |
* Obtiene el estado de la transparencia |
69 |
* @return GridTransparency
|
|
70 |
* @return Transparency |
|
70 | 71 |
*/ |
71 |
public GridTransparency getTransparency() {
|
|
72 |
public Transparency getTransparency() { |
|
72 | 73 |
return transparency; |
73 | 74 |
} |
74 | 75 |
|
75 | 76 |
/** |
76 | 77 |
* Asigna el estado de la transparencia |
77 |
* @param GridTransparency
|
|
78 |
* @param Transparency |
|
78 | 79 |
*/ |
79 |
public void setTransparency(GridTransparency transparency) {
|
|
80 |
public void setTransparency(Transparency transparency) { |
|
80 | 81 |
this.transparency = transparency; |
81 | 82 |
} |
82 | 83 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/fmap/layers/StatusLayerRaster.java | ||
---|---|---|
36 | 36 |
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException; |
37 | 37 |
import org.gvsig.fmap.dal.coverage.exception.OperationNotSupportedException; |
38 | 38 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
39 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
40 | 39 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
41 | 40 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager; |
42 | 41 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
43 | 42 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
43 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
44 | 44 |
import org.gvsig.tools.ToolsLocator; |
45 | 45 |
import org.gvsig.tools.dynobject.DynStruct; |
46 | 46 |
import org.gvsig.tools.persistence.PersistenceManager; |
... | ... | |
246 | 246 |
layer.getRender().setRenderBands(renderBands); |
247 | 247 |
|
248 | 248 |
//Asigna la transparencia |
249 |
GridTransparency transp = layer.getRender().getLastTransparency();
|
|
249 |
Transparency transp = layer.getRender().getLastTransparency(); |
|
250 | 250 |
if(transp != null && transparency != 255) { |
251 | 251 |
transp.setOpacity(transparency); |
252 | 252 |
transp.activeTransparency(); |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/fmap/layers/DefaultFLyrRaster.java | ||
---|---|---|
66 | 66 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
67 | 67 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
68 | 68 |
import org.gvsig.fmap.dal.coverage.grid.Grid; |
69 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
70 | 69 |
import org.gvsig.fmap.dal.coverage.grid.ROI; |
71 | 70 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
72 | 71 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
... | ... | |
410 | 409 |
if (noDataEnabled.booleanValue() && dataStore.isNoDataEnabled()) { |
411 | 410 |
noDataType = RasterLibrary.NODATATYPE_LAYER; |
412 | 411 |
Double noDataValue = Double.valueOf(getNoDataValue()); |
413 |
dataStore.getTransparencyFilesStatus().setNoData(noDataValue.doubleValue());
|
|
412 |
dataStore.getTransparency().setNoData(noDataValue.doubleValue()); |
|
414 | 413 |
} else { |
415 |
dataStore.getTransparencyFilesStatus().activeNoData(false);
|
|
414 |
dataStore.getTransparency().activeNoData(false); |
|
416 | 415 |
noDataType = RasterLibrary.NODATATYPE_DISABLED; |
417 | 416 |
} |
418 | 417 |
} |
... | ... | |
433 | 432 |
|
434 | 433 |
dataStore.resetNoDataValue(); |
435 | 434 |
applyNoData(); |
436 |
GridTransparency gridTransparency = dataStore.getTransparencyFilesStatus().getGridTransparency(); |
|
437 | 435 |
|
438 | 436 |
filterList.setInitDataType(getDataType()[0]); |
439 | 437 |
|
... | ... | |
464 | 462 |
|
465 | 463 |
getRender().setFilterList(filterList); |
466 | 464 |
// Inicializo la transparencia para el render |
467 |
getRender().setLastTransparency(gridTransparency);
|
|
465 |
getRender().setLastTransparency(dataStore.getTransparency().cloneTransparency());
|
|
468 | 466 |
} catch (FilterTypeException e) { |
469 | 467 |
//Ha habido un error en la asignaci?n de filtros por los que no se a?ade ninguno. |
470 | 468 |
logger.error("Error a?adiendo filtros en la inicializaci?n de capa " + this.getName() + " Datatype=" + this.getDataType(), null, e); |
... | ... | |
1890 | 1888 |
super.setTransparency(trans); |
1891 | 1889 |
try { |
1892 | 1890 |
getRender().getLastTransparency().setOpacity(trans); |
1893 |
getRender().getLastTransparency().activeTransparency(); |
|
1894 | 1891 |
} catch (NullPointerException e) { |
1895 | 1892 |
//Solo asigna la transparencia a la clase padre y no a la renderizaci?n |
1896 | 1893 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/fmap/layers/IStatusRaster.java | ||
---|---|---|
88 | 88 |
public RasterFilterList getFilterList() throws FilterTypeException; |
89 | 89 |
|
90 | 90 |
/** |
91 |
* Obtiene el objeto de transparencia cargado desde el proyecto despu?s de hacer un |
|
92 |
* setXMLEntity |
|
93 |
* @return la lista de filtros |
|
94 |
*/ |
|
95 |
//public GridTransparency getTransparency(); |
|
96 |
|
|
97 |
/** |
|
98 | 91 |
* Obtiene la lista de filtros cargada desde el proyecto despu?s de hacer un |
99 | 92 |
* setXMLEntity. No construye los filtros sino que devuelve una lista de par?metros |
100 | 93 |
* @return RasterFilterList |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/grid/GridTransparency.java | ||
---|---|---|
59 | 59 |
public interface GridTransparency extends Transparency { |
60 | 60 |
|
61 | 61 |
/** |
62 |
* Comprueba si hay criterios para la aplicaci?n de transparencia y la activa si es |
|
63 |
* as? sino se desactiva. Los criterios son: |
|
64 |
* <P> |
|
65 |
* Que haya una mascara de transparencia. |
|
66 |
* </P><P> |
|
67 |
* Que exista un buffer de datos para la aplicaci?n de nodata |
|
68 |
* </P><P> |
|
69 |
* Que hayan reglas sobre la aplicaci?n de transparencia. |
|
70 |
* </P><P> |
|
71 |
* Que la opacidad sea distita de 255 (completamente opaco). |
|
72 |
* </P> |
|
73 |
*/ |
|
74 |
public void activeTransparency(); |
|
75 |
|
|
76 |
/** |
|
77 | 62 |
* Aplica las reglas de transparencia a un pixel RGB y devuelve el valor de ese |
78 | 63 |
* mismo pixel con la transparencia aplicada. Primero procesar? los rangos. Si |
79 | 64 |
* el pixel est? en alguno directamente lo pone transparente y lo devuelve, sino |
... | ... | |
84 | 69 |
* @return |
85 | 70 |
*/ |
86 | 71 |
public int processRGB(int r, int g, int b, int line, int col); |
87 |
|
|
88 |
/** |
|
89 |
* Obtiene el flag de transparencia activa o desactivada. |
|
90 |
* @return true la transparencia est? activa y false desactiva |
|
91 |
*/ |
|
92 |
public boolean isTransparencyActive(); |
|
93 |
|
|
94 |
/** |
|
95 |
* Asigna el flag de transparencia activa o desactivada. |
|
96 |
* @param transparencyActive true activa la transparencia false la desactiva |
|
97 |
*/ |
|
98 |
public void setTransparencyActive(boolean transparencyActive); |
|
99 | 72 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/grid/render/Render.java | ||
---|---|---|
29 | 29 |
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException; |
30 | 30 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
31 | 31 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
32 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
33 | 32 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
34 | 33 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
35 | 34 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
35 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
36 | 36 |
|
37 | 37 |
|
38 | 38 |
|
... | ... | |
58 | 58 |
* Asigna el ?ltimo estado de transparencia de la renderizaci?n. |
59 | 59 |
* @param lastTransparency |
60 | 60 |
*/ |
61 |
public void setLastTransparency(GridTransparency lastTransparency);
|
|
61 |
public void setLastTransparency(Transparency lastTransparency); |
|
62 | 62 |
|
63 | 63 |
/** |
64 | 64 |
* Obtiene el ?ltimo objeto transparencia aplicado en la renderizaci?n |
65 | 65 |
* @return GridTransparency |
66 | 66 |
*/ |
67 |
public GridTransparency getLastTransparency();
|
|
67 |
public Transparency getLastTransparency(); |
|
68 | 68 |
|
69 | 69 |
/** |
70 | 70 |
* Gets the last alpha band number |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/store/parameter/RasterDataParameters.java | ||
---|---|---|
37 | 37 |
*/ |
38 | 38 |
public interface RasterDataParameters extends DataStoreParameters { |
39 | 39 |
|
40 |
/** |
|
41 |
* Flag to know if this provider is visible or it isn't |
|
42 |
* @return |
|
43 |
*/ |
|
44 |
public boolean isVisible(); |
|
45 |
|
|
46 |
/** |
|
47 |
* Assigns the flag to know if this provider is visible or it isn't |
|
48 |
* @return |
|
49 |
*/ |
|
50 |
public void setVisible(boolean visible); |
|
51 |
|
|
40 | 52 |
public boolean isValid(); |
41 | 53 |
|
42 | 54 |
/** |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/store/props/Transparency.java | ||
---|---|---|
177 | 177 |
* siempre ocupada. |
178 | 178 |
*/ |
179 | 179 |
public void free() ; |
180 |
|
|
181 |
/** |
|
182 |
* Comprueba si hay criterios para la aplicaci?n de transparencia y la activa si es |
|
183 |
* as? sino se desactiva. Los criterios son: |
|
184 |
* <P> |
|
185 |
* Que haya una mascara de transparencia. |
|
186 |
* </P><P> |
|
187 |
* Que exista un buffer de datos para la aplicaci?n de nodata |
|
188 |
* </P><P> |
|
189 |
* Que hayan reglas sobre la aplicaci?n de transparencia. |
|
190 |
* </P><P> |
|
191 |
* Que la opacidad sea distita de 255 (completamente opaco). |
|
192 |
* </P> |
|
193 |
*/ |
|
194 |
public void activeTransparency(); |
|
195 |
|
|
196 |
|
|
197 |
/** |
|
198 |
* Obtiene el flag de transparencia activa o desactivada. |
|
199 |
* @return true la transparencia est? activa y false desactiva |
|
200 |
*/ |
|
201 |
public boolean isTransparencyActive(); |
|
202 |
|
|
203 |
/** |
|
204 |
* Asigna el flag de transparencia activa o desactivada. |
|
205 |
* @param transparencyActive true activa la transparencia false la desactiva |
|
206 |
*/ |
|
207 |
public void setTransparencyActive(boolean transparencyActive); |
|
208 |
|
|
209 |
/** |
|
210 |
* Clones this object |
|
211 |
* @return |
|
212 |
*/ |
|
213 |
public Transparency cloneTransparency(); |
|
180 | 214 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/store/RasterStoreProperties.java | ||
---|---|---|
180 | 180 |
*/ |
181 | 181 |
public HistogramComputer getHistogramComputer() throws HistogramException, InterruptedException; |
182 | 182 |
|
183 |
/** |
|
184 |
* Gets the transparency status |
|
185 |
* @return |
|
186 |
*/ |
|
187 |
public Transparency getTransparencyFilesStatus(); |
|
188 | 183 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/datastruct/DataStructFactory.java | ||
---|---|---|
24 | 24 |
import java.awt.geom.Point2D; |
25 | 25 |
import java.awt.geom.Rectangle2D; |
26 | 26 |
|
27 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
|
28 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
29 |
import org.gvsig.fmap.dal.coverage.store.props.Statistics; |
|
27 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
28 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
30 | 29 |
|
31 | 30 |
/** |
32 | 31 |
* Factory for data structures |
... | ... | |
94 | 93 |
public NoData createNoData(double noData, int type, int dataType); |
95 | 94 |
|
96 | 95 |
/** |
96 |
* Creates a GridTransparency from a Transparency object |
|
97 |
* @param t |
|
98 |
* @return |
|
99 |
*/ |
|
100 |
public GridTransparency createGridTransparency(Transparency t); |
|
101 |
|
|
102 |
/** |
|
97 | 103 |
* Carga el objeto DatasetListStatistics desde los datos del RMF. |
98 | 104 |
* @param datasource |
99 | 105 |
* @return |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/render/DefaultRender.java | ||
---|---|---|
53 | 53 |
import org.gvsig.fmap.dal.coverage.store.RasterQuery; |
54 | 54 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
55 | 55 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
56 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
56 | 57 |
import org.gvsig.fmap.dal.coverage.util.PropertyEvent; |
57 | 58 |
import org.gvsig.fmap.dal.coverage.util.PropertyListener; |
58 | 59 |
import org.gvsig.fmap.dal.coverage.util.RasterUtils; |
... | ... | |
116 | 117 |
* Ultima transparencia aplicada en la visualizaci?n que es obtenida desde el |
117 | 118 |
* grid |
118 | 119 |
*/ |
119 |
private GridTransparency lastTransparency = null;
|
|
120 |
private Transparency lastTransparency = null;
|
|
120 | 121 |
private int lastAlphaBand = -1; |
121 | 122 |
|
122 | 123 |
/** |
... | ... | |
361 | 362 |
|
362 | 363 |
if (dataStore == null) |
363 | 364 |
return; |
365 |
|
|
366 |
//If the transparency hasn't been defined yet then we'll take that from the store |
|
364 | 367 |
if (lastTransparency == null) { |
365 |
lastTransparency = new GridTransparencyImpl(dataStore.getTransparency());
|
|
368 |
lastTransparency = dataStore.getTransparency().cloneTransparency();
|
|
366 | 369 |
lastTransparency.addPropertyListener(this); |
367 | 370 |
} |
368 | 371 |
// Asignamos la banda de transparencia si existe esta |
... | ... | |
402 | 405 |
private synchronized void drawBufferOnImage(Graphics2D g, ViewPortData vp, Buffer buf, double[] step, AffineTransform transf, Extent adjustedRotedRequest) |
403 | 406 |
throws RasterDriverException, InvalidSetViewException, ProcessInterruptedException { |
404 | 407 |
|
405 |
grid = bufferPreprocessing(buf, lastTransparency); |
|
408 |
lastTransparency = new GridTransparencyImpl(lastTransparency); |
|
409 |
grid = bufferPreprocessing(buf, (GridTransparency)lastTransparency); |
|
406 | 410 |
|
407 | 411 |
//Buffer filtrado para renderizar |
408 | 412 |
lastRenderBuffer = grid.getRasterBuf(); |
... | ... | |
489 | 493 |
replaceColorTable(colorTable); |
490 | 494 |
Grid grid = null; |
491 | 495 |
try { |
492 |
grid = bufferPreprocessing(buf, lastTransparency);
|
|
496 |
grid = bufferPreprocessing(buf, new GridTransparencyImpl(lastTransparency));
|
|
493 | 497 |
} catch (ProcessInterruptedException e3) { |
494 | 498 |
return; |
495 | 499 |
} |
... | ... | |
778 | 782 |
* (non-Javadoc) |
779 | 783 |
* @see org.gvsig.fmap.dal.coverage.grid.Render#getLastTransparency() |
780 | 784 |
*/ |
781 |
public GridTransparency getLastTransparency() {
|
|
785 |
public Transparency getLastTransparency() { |
|
782 | 786 |
return lastTransparency; |
783 | 787 |
} |
784 | 788 |
|
... | ... | |
792 | 796 |
|
793 | 797 |
/* |
794 | 798 |
* (non-Javadoc) |
795 |
* @see org.gvsig.fmap.dal.coverage.grid.Render#setLastTransparency(org.gvsig.fmap.dal.coverage.grid.GridTransparency)
|
|
799 |
* @see org.gvsig.fmap.dal.coverage.grid.render.Render#setLastTransparency(org.gvsig.fmap.dal.coverage.store.props.Transparency)
|
|
796 | 800 |
*/ |
797 |
public void setLastTransparency(GridTransparency lastTransparency) {
|
|
798 |
if(lastTransparency instanceof GridTransparencyImpl) {
|
|
799 |
this.lastTransparency = (GridTransparencyImpl)lastTransparency;
|
|
801 |
public void setLastTransparency(Transparency lastTransparency) { |
|
802 |
this.lastTransparency = lastTransparency;
|
|
803 |
if(this.lastTransparency != null)
|
|
800 | 804 |
this.lastTransparency.addPropertyListener(this); |
801 |
if (getFilterList() != null) |
|
802 |
getFilterList().addEnvParam("Transparency", lastTransparency); |
|
803 |
} |
|
804 |
if(lastTransparency == null) |
|
805 |
this.lastTransparency = null; |
|
806 | 805 |
} |
807 | 806 |
|
808 | 807 |
/* |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/render/ImageDrawer.java | ||
---|---|---|
24 | 24 |
import java.awt.Image; |
25 | 25 |
import java.awt.image.BufferedImage; |
26 | 26 |
|
27 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
28 |
import org.gvsig.fmap.dal.coverage.RasterManager; |
|
27 | 29 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
28 | 30 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
29 | 31 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
32 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
30 | 33 |
import org.gvsig.raster.impl.DefaultRasterManager; |
31 | 34 |
import org.gvsig.raster.impl.process.RasterTask; |
32 | 35 |
import org.gvsig.raster.impl.process.RasterTaskQueue; |
... | ... | |
53 | 56 |
private int width = 0; |
54 | 57 |
private int height = 0; |
55 | 58 |
private DefaultRender rendering = null; |
59 |
private RasterManager rManager = RasterLocator.getManager(); |
|
56 | 60 |
|
57 | 61 |
public ImageDrawer(DefaultRender rendering) { |
58 | 62 |
this.rendering = rendering; |
... | ... | |
92 | 96 |
|
93 | 97 |
byte[] data = new byte[rasterBuf.getBandCount()]; |
94 | 98 |
|
95 |
GridTransparency transparency = rendering.getLastTransparency();
|
|
99 |
Transparency transparency = rendering.getLastTransparency(); |
|
96 | 100 |
if (transparency != null && transparency.isTransparencyActive()) { |
97 | 101 |
if (transparency.existAlphaBand() |
98 | 102 |
&& transparency.getAlphaBand() != null |
... | ... | |
187 | 191 |
private void drawWithTransparency(BufferedImage image, byte[] data, boolean supersampling) throws ProcessInterruptedException { |
188 | 192 |
RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString()); |
189 | 193 |
int value = 0; |
190 |
GridTransparency transparency = rendering.getLastTransparency(); |
|
194 |
Transparency t = rendering.getLastTransparency(); |
|
195 |
GridTransparency transparency = rManager.getDataStructFactory().createGridTransparency(t); |
|
191 | 196 |
// try { |
192 | 197 |
if (supersampling) { |
193 | 198 |
int[] r = new int[height]; |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/GridTransparencyImpl.java | ||
---|---|---|
68 | 68 |
*/ |
69 | 69 |
public class GridTransparencyImpl extends DataStoreTransparency implements GridTransparency { |
70 | 70 |
/** |
71 |
* Flag de activaci?n de la transparencia cuando se visualiza o exporta. |
|
72 |
*/ |
|
73 |
private boolean transparencyActive = false; |
|
74 |
|
|
75 |
/** |
|
76 | 71 |
* Constructor. Crea un objeto con las propiedades de la transparencia de un grid. |
77 | 72 |
* Las variables conservan sus valores por defecto |
78 | 73 |
*/ |
... | ... | |
91 | 86 |
activeTransparency(); |
92 | 87 |
} |
93 | 88 |
|
94 |
/** |
|
95 |
* Comprueba si hay criterios para la aplicaci?n de transparencia y la activa si es |
|
96 |
* as? sino se desactiva. Los criterios son: |
|
97 |
* <P> |
|
98 |
* Que haya una mascara de transparencia. |
|
99 |
* </P><P> |
|
100 |
* Que exista un buffer de datos para la aplicaci?n de nodata |
|
101 |
* </P><P> |
|
102 |
* Que hayan reglas sobre la aplicaci?n de transparencia. |
|
103 |
* </P><P> |
|
104 |
* Que la opacidad sea distita de 255 (completamente opaco). |
|
105 |
* </P> |
|
106 |
*/ |
|
107 |
public void activeTransparency() { |
|
108 |
if( existAlphaBand() || isNoDataActive() || |
|
109 |
(transparencyRanges.size() > 0) || |
|
110 |
(opacity != 0xff)) |
|
111 |
transparencyActive = true; |
|
112 |
else |
|
113 |
transparencyActive = false; |
|
114 |
} |
|
115 |
|
|
116 | 89 |
/* |
117 | 90 |
* (non-Javadoc) |
118 | 91 |
* @see org.gvsig.fmap.dal.coverage.grid.GridTransparency#processRGB(int, int, int, int, int) |
... | ... | |
196 | 169 |
return 255; |
197 | 170 |
} |
198 | 171 |
|
199 |
/* |
|
200 |
* (non-Javadoc) |
|
201 |
* @see org.gvsig.fmap.dal.coverage.grid.GridTransparency#isTransparencyActive() |
|
202 |
*/ |
|
203 |
public boolean isTransparencyActive() { |
|
204 |
return transparencyActive; |
|
205 |
} |
|
206 |
|
|
207 |
/** |
|
208 |
* Asigna el flag de transparencia activa o desactivada. |
|
209 |
* @param transparencyActive true activa la transparencia false la desactiva |
|
210 |
*/ |
|
211 |
public void setTransparencyActive(boolean transparencyActive) { |
|
212 |
this.transparencyActive = transparencyActive; |
|
213 |
} |
|
214 |
|
|
215 | 172 |
public static void registerPersistent() { |
216 | 173 |
PersistenceManager manager = ToolsLocator.getPersistenceManager(); |
217 | 174 |
DynStruct definition = manager.addDefinition( |
... | ... | |
225 | 182 |
(DynClass)ToolsLocator.getPersistenceManager() |
226 | 183 |
.getDefinition(Transparency.class) |
227 | 184 |
); |
228 |
definition.addDynFieldBoolean("transparencyActive"); |
|
229 | 185 |
} |
230 | 186 |
|
231 | 187 |
@Override |
232 | 188 |
public void loadFromState(PersistentState state) |
233 | 189 |
throws PersistenceException { |
234 | 190 |
super.loadFromState(state); |
235 |
this.transparencyActive = state.getBoolean("transparencyActive"); |
|
236 | 191 |
} |
237 | 192 |
|
238 | 193 |
@Override |
239 | 194 |
public void saveToState(PersistentState state) throws PersistenceException { |
240 | 195 |
super.saveToState(state); |
241 |
state.set("transparencyActive",transparencyActive); |
|
242 | 196 |
} |
243 | 197 |
|
244 | 198 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/RasterProvider.java | ||
---|---|---|
26 | 26 |
|
27 | 27 |
import org.cresques.cts.IProjection; |
28 | 28 |
import org.gvsig.compat.net.ICancellable; |
29 |
import org.gvsig.fmap.dal.DataParameters; |
|
30 | 29 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
31 | 30 |
import org.gvsig.fmap.dal.coverage.exception.BandAccessException; |
32 | 31 |
import org.gvsig.fmap.dal.coverage.exception.CloneException; |
... | ... | |
37 | 36 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
38 | 37 |
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException; |
39 | 38 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
39 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
|
40 | 40 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
41 | 41 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
42 | 42 |
import org.gvsig.fmap.dal.coverage.store.props.Histogramable; |
... | ... | |
457 | 457 |
* Returs the DataParameters |
458 | 458 |
* @return |
459 | 459 |
*/ |
460 |
public DataParameters getDataParameters(); |
|
460 |
public RasterDataParameters getDataParameters();
|
|
461 | 461 |
|
462 | 462 |
/** |
463 | 463 |
* Lee un bloque completo de datos del raster y devuelve un array tridimensional del tipo correcto. Esta funci?n es util |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/DefaultRasterProvider.java | ||
---|---|---|
32 | 32 |
import org.cresques.cts.IProjection; |
33 | 33 |
import org.gvsig.compat.net.ICancellable; |
34 | 34 |
import org.gvsig.fmap.dal.DALLocator; |
35 |
import org.gvsig.fmap.dal.DataParameters; |
|
36 | 35 |
import org.gvsig.fmap.dal.DataServerExplorer; |
37 | 36 |
import org.gvsig.fmap.dal.DataStoreParameters; |
38 | 37 |
import org.gvsig.fmap.dal.coverage.RasterLibrary; |
... | ... | |
1056 | 1055 |
* Returs the DataParameters |
1057 | 1056 |
* @return |
1058 | 1057 |
*/ |
1059 |
public DataParameters getDataParameters() { |
|
1060 |
return getDataStoreParameters(); |
|
1058 |
public RasterDataParameters getDataParameters() { |
|
1059 |
if(getDataStoreParameters() instanceof RasterDataParameters) |
|
1060 |
return (RasterDataParameters)getDataStoreParameters(); |
|
1061 |
return null; |
|
1061 | 1062 |
} |
1062 | 1063 |
|
1063 | 1064 |
/* |
... | ... | |
1085 | 1086 |
if( this.getDataParameters() instanceof RasterFileStoreParameters) |
1086 | 1087 |
return ((RasterFileStoreParameters)this.getDataParameters()).getFile(); |
1087 | 1088 |
else |
1088 |
return ((RasterDataParameters)this.getDataParameters()).getURI();
|
|
1089 |
return this.getDataParameters().getURI();
|
|
1089 | 1090 |
} |
1090 | 1091 |
|
1091 | 1092 |
/* |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/properties/DataStoreTransparency.java | ||
---|---|---|
52 | 52 |
* un merge de todos ellos. |
53 | 53 |
* </p> |
54 | 54 |
* <p> |
55 |
* Finalmente y antes de renderizar se necesita un objeto GridTransparency. Este
|
|
55 |
* Finalmente y antes de renderizar se necesita un objeto Transparency. Este |
|
56 | 56 |
* estar? compuesto con toda la informaci?n de transparencia aplicar, es decir, |
57 |
* todos los objetos Transparency mezclados. GridTransparency con tiene el
|
|
57 |
* todos los objetos Transparency mezclados.Transparency con tiene el |
|
58 | 58 |
* m?todo de procesado de un pixel. Se le proporciona un pixel y devuelve este |
59 | 59 |
* mismo pixel con la transparencia aplicada. |
60 | 60 |
* </p> |
... | ... | |
78 | 78 |
public class DataStoreTransparency implements Transparency, Persistent { |
79 | 79 |
public static final String PERSISTENCE_NAME = "Transparency_Persistent"; |
80 | 80 |
|
81 |
public static int MAX_OPACITY = 255; |
|
82 |
protected int alphaBandNumber = -1; |
|
81 |
public static int MAX_OPACITY = 255;
|
|
82 |
protected int alphaBandNumber = -1;
|
|
83 | 83 |
/** |
84 | 84 |
* Buffer con la banda alpha correspondiente a la zona a renderizar |
85 | 85 |
*/ |
86 |
private Buffer mask = null; |
|
86 |
private Buffer mask = null;
|
|
87 | 87 |
/** |
88 | 88 |
* Buffer con los datos originales (sin filtrar) correspondiente a la zona a renderizar. |
89 | 89 |
* Esto es util para aplicar el valor NoData ya que hay que consultar el valor original del |
90 | 90 |
* dato. Despu?s de hacer un process es recomendable hacer free para poner a null los buffers. |
91 | 91 |
*/ |
92 |
protected Buffer originalData = null; |
|
92 |
protected Buffer originalData = null;
|
|
93 | 93 |
/** |
94 | 94 |
* Valor de dato transparente. Todos los p?xeles de originalData que correspondan con este |
95 | 95 |
* valor se pondr?n 100% transparentes. |
96 | 96 |
*/ |
97 |
protected double noData = RasterLibrary.defaultNoDataValue; |
|
97 |
protected double noData = RasterLibrary.defaultNoDataValue;
|
|
98 | 98 |
/** |
99 | 99 |
* Flag que indica que el uso de noData para transparencia est? activo |
100 | 100 |
*/ |
101 |
protected boolean noDataActive = false; |
|
101 |
protected boolean noDataActive = false;
|
|
102 | 102 |
/** |
103 | 103 |
* Rangos de transparencia aplicados. Lista de TransparencyRange |
104 | 104 |
*/ |
105 | 105 |
protected ArrayList<TransparencyRange> |
106 |
transparencyRanges = new ArrayList<TransparencyRange>(); |
|
106 |
transparencyRanges = new ArrayList<TransparencyRange>();
|
|
107 | 107 |
/** |
108 | 108 |
* Grado de opacidad de todo el raster |
109 | 109 |
*/ |
110 |
protected int opacity = 0xff; |
|
110 |
protected int opacity = 0xff;
|
|
111 | 111 |
|
112 | 112 |
/** |
113 | 113 |
* Array de listeners que ser?n informados cuando cambia la propiedad de transparencia |
114 | 114 |
*/ |
115 | 115 |
private ArrayList<PropertyListener> |
116 | 116 |
transparencyPropertyListener = new ArrayList<PropertyListener>(); |
117 |
/** |
|
118 |
* Flag de activaci?n de la transparencia cuando se visualiza o exporta. |
|
119 |
*/ |
|
120 |
private boolean transparencyActive = false; |
|
117 | 121 |
|
118 | 122 |
/** |
119 | 123 |
* Constructor |
... | ... | |
140 | 144 |
this.noData = t.getNoData(); |
141 | 145 |
this.noDataActive = t.isNoDataActive(); |
142 | 146 |
this.originalData = t.originalData; |
147 |
this.transparencyActive = t.transparencyActive; |
|
143 | 148 |
} |
144 | 149 |
|
145 | 150 |
/* |
... | ... | |
452 | 457 |
if (state.hasValue("bandnumber")){ |
453 | 458 |
alphaBandNumber = state.getInt("bandnumber"); |
454 | 459 |
} |
460 |
|
|
461 |
this.transparencyActive = state.getBoolean("transparencyActive"); |
|
455 | 462 |
} |
456 | 463 |
|
457 | 464 |
/* |
... | ... | |
469 | 476 |
if(getAlphaBandNumber() != -1) { |
470 | 477 |
state.set("bandnumber", getAlphaBandNumber()); |
471 | 478 |
} |
479 |
|
|
480 |
state.set("transparencyActive",transparencyActive); |
|
472 | 481 |
} |
473 | 482 |
|
474 | 483 |
/* |
475 | 484 |
* (non-Javadoc) |
485 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#getGridTransparency() |
|
486 |
*/ |
|
487 |
public GridTransparency getGridTransparency() { |
|
488 |
return new GridTransparencyImpl(this); |
|
489 |
} |
|
490 |
|
|
491 |
/* |
|
492 |
* (non-Javadoc) |
|
476 | 493 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#activeTransparency() |
477 | 494 |
*/ |
478 | 495 |
public void activeTransparency() { |
479 |
|
|
496 |
if( existAlphaBand() || isNoDataActive() || |
|
497 |
(transparencyRanges.size() > 0) || |
|
498 |
(opacity != 0xff)) |
|
499 |
transparencyActive = true; |
|
500 |
else |
|
501 |
transparencyActive = false; |
|
480 | 502 |
} |
481 | 503 |
|
482 | 504 |
/* |
483 | 505 |
* (non-Javadoc) |
484 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#getGridTransparency()
|
|
506 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#isTransparencyActive()
|
|
485 | 507 |
*/ |
486 |
public GridTransparency getGridTransparency() { |
|
487 |
return new GridTransparencyImpl(this); |
|
488 |
} |
|
508 |
public boolean isTransparencyActive() { |
|
509 |
return transparencyActive; |
|
510 |
} |
|
511 |
|
|
512 |
/** |
|
513 |
* Asigna el flag de transparencia activa o desactivada. |
|
514 |
* @param transparencyActive true activa la transparencia false la desactiva |
|
515 |
*/ |
|
516 |
public void setTransparencyActive(boolean transparencyActive) { |
|
517 |
this.transparencyActive = transparencyActive; |
|
518 |
} |
|
519 |
|
|
520 |
/* |
|
521 |
* (non-Javadoc) |
|
522 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#cloneTransparency() |
|
523 |
*/ |
|
524 |
@SuppressWarnings("unchecked") |
|
525 |
public Transparency cloneTransparency() { |
|
526 |
DataStoreTransparency t = new DataStoreTransparency(); |
|
527 |
|
|
528 |
//TODO: FUNCIONALIDAD: Falta asignar lo necesario para la transparencia por selecci?n |
|
529 |
t.transparencyRanges = (ArrayList<TransparencyRange>) getTransparencyRange().clone(); |
|
530 |
t.mask = getAlphaBand(); |
|
531 |
t.opacity = getOpacity(); |
|
532 |
t.alphaBandNumber = alphaBandNumber; |
|
533 |
t.noData = getNoData(); |
|
534 |
t.noDataActive = isNoDataActive(); |
|
535 |
t.originalData = originalData; |
|
536 |
t.transparencyActive = t.transparencyActive; |
|
537 |
return t; |
|
538 |
} |
|
489 | 539 |
|
490 | 540 |
public static void registerPersistent() { |
491 | 541 |
PersistenceManager manager = ToolsLocator.getPersistenceManager(); |
... | ... | |
500 | 550 |
definition.addDynFieldInt("bandnumber"); |
501 | 551 |
definition.addDynFieldList("transparencyRange") |
502 | 552 |
.setClassOfItems(TransparencyRange.class); |
553 |
definition.addDynFieldBoolean("transparencyActive"); |
|
503 | 554 |
} |
504 | 555 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/DefaultRemoteRasterStore.java | ||
---|---|---|
39 | 39 |
import org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters; |
40 | 40 |
import org.gvsig.fmap.dal.coverage.store.props.ColorTable; |
41 | 41 |
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer; |
42 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
43 | 42 |
import org.gvsig.fmap.dal.exception.InitializeException; |
44 | 43 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
45 | 44 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
... | ... | |
390 | 389 |
return provider.getExtent().getMax().getY(); |
391 | 390 |
} |
392 | 391 |
|
393 |
/* |
|
394 |
* (non-Javadoc) |
|
395 |
* @see org.gvsig.fmap.dal.coverage.store.RasterDataStore#getTransparencyFilesStatus() |
|
396 |
*/ |
|
397 |
@Override |
|
398 |
public Transparency getTransparencyFilesStatus() { |
|
399 |
return provider.getTransparency(); |
|
400 |
} |
|
401 |
|
|
402 | 392 |
/** |
403 | 393 |
* Obtiene la paleta correspondiente a uno de los ficheros que forman el GeoMultiRasterFile |
404 | 394 |
* @param i Posici?n del raster |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/AbstractRasterDataParameters.java | ||
---|---|---|
29 | 29 |
|
30 | 30 |
import org.cresques.cts.IProjection; |
31 | 31 |
import org.gvsig.fmap.crs.CRSFactory; |
32 |
import org.gvsig.fmap.dal.DataTypes; |
|
33 | 32 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
34 | 33 |
import org.gvsig.fmap.dal.spi.AbstractDataParameters; |
35 | 34 |
import org.gvsig.tools.ToolsLocator; |
... | ... | |
50 | 49 |
private static final String FIELD_SRS = "srs"; |
51 | 50 |
private static final String FIELD_FRAME = "frame"; |
52 | 51 |
private static final String FIELD_ALPHABAND = "alphaband"; |
52 |
private static final String FIELD_VISIBLE = "visible"; |
|
53 | 53 |
|
54 | 54 |
|
55 |
@SuppressWarnings("deprecation") |
|
56 | 55 |
public static DynClass registerDynClass(String dynClassName) { |
57 | 56 |
DynObjectManager dynman = ToolsLocator.getDynObjectManager(); |
58 | 57 |
DynField field; |
... | ... | |
62 | 61 |
|
63 | 62 |
DynClass dynClass = dynman.add(dynClassName); |
64 | 63 |
|
65 |
field = dynClass.addDynField(FIELD_URI); |
|
66 |
field.setTheTypeOfAvailableValues(DynField.ANY); |
|
64 |
field = dynClass.addDynFieldString(FIELD_URI); |
|
67 | 65 |
field.setDescription("Uniform Resource Identifier (File name or URL)"); |
68 |
field.setType(DataTypes.STRING);
|
|
66 |
field.setClassOfValue(String.class);
|
|
69 | 67 |
field.setMandatory(false); |
70 | 68 |
|
71 | 69 |
field = dynClass.addDynField(FIELD_SRS); |
72 |
field.setTheTypeOfAvailableValues(DynField.ANY); |
|
73 | 70 |
field.setDescription("SRS"); |
74 |
field.setType(DataTypes.CRS);
|
|
71 |
field.setClassOfValue(Object.class);
|
|
75 | 72 |
field.setMandatory(false); |
76 | 73 |
|
77 |
field = dynClass.addDynField(FIELD_FRAME); |
|
78 |
field.setTheTypeOfAvailableValues(DynField.ANY); |
|
74 |
field = dynClass.addDynFieldInt(FIELD_FRAME); |
|
79 | 75 |
field.setDescription("frame"); |
80 |
field.setType(DataTypes.INT);
|
|
76 |
field.setClassOfValue(Integer.class);
|
|
81 | 77 |
field.setMandatory(false); |
82 | 78 |
|
83 |
field = dynClass.addDynField(FIELD_ALPHABAND); |
|
84 |
field.setTheTypeOfAvailableValues(DynField.ANY); |
|
79 |
field = dynClass.addDynFieldInt(FIELD_ALPHABAND); |
|
85 | 80 |
field.setDescription("alphaband"); |
86 |
field.setType(DataTypes.INT);
|
|
81 |
field.setClassOfValue(Integer.class);
|
|
87 | 82 |
field.setMandatory(false); |
88 | 83 |
|
84 |
field = dynClass.addDynFieldObject(FIELD_VISIBLE); |
|
85 |
field.setDescription("If the boolean in i position is true, that means that the i provider is visible"); |
|
86 |
field.setMandatory(false); |
|
87 |
field.setClassOfValue(Object.class); |
|
88 |
|
|
89 | 89 |
return dynClass; |
90 | 90 |
} |
91 | 91 |
|
... | ... | |
177 | 177 |
return ((Integer)b).intValue(); |
178 | 178 |
return 0; |
179 | 179 |
} |
180 |
|
|
181 |
/* |
|
182 |
* (non-Javadoc) |
|
183 |
* @see org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters#isVisible() |
|
184 |
*/ |
|
185 |
public boolean isVisible() { |
|
186 |
Boolean b = (Boolean)getDynValue(FIELD_VISIBLE); |
|
187 |
if(b != null) |
|
188 |
return ((Boolean)b).booleanValue(); |
|
189 |
return true; |
|
190 |
} |
|
191 |
|
|
192 |
/* |
|
193 |
* (non-Javadoc) |
|
194 |
* @see org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters#setVisible(boolean) |
|
195 |
*/ |
|
196 |
public void setVisible(boolean visible) { |
|
197 |
this.setDynValue(FIELD_VISIBLE, new Boolean(visible)); |
|
198 |
} |
|
180 | 199 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/DefaultRasterStore.java | ||
---|---|---|
737 | 737 |
|
738 | 738 |
/* |
739 | 739 |
* (non-Javadoc) |
740 |
* @see org.gvsig.fmap.dal.coverage.store.RasterDataStore#getTransparencyFilesStatus() |
|
741 |
*/ |
|
742 |
public Transparency getTransparencyFilesStatus() { |
|
743 |
return provider.getTransparency(); |
|
744 |
} |
|
745 |
|
|
746 |
/* |
|
747 |
* (non-Javadoc) |
|
748 | 740 |
* @see org.gvsig.raster.impl.store.QueryableRaster#getColorTable(int) |
749 | 741 |
*/ |
750 | 742 |
public ColorTable getColorTable(int i){ |
... | ... | |
1341 | 1333 |
public RasterDataParameters getInternalParameters() { |
1342 | 1334 |
if(provider instanceof TiledRasterProvider) { |
1343 | 1335 |
DefaultRasterProvider prov = (DefaultRasterProvider)((TiledRasterProvider)provider).getInternalProvider(); |
1344 |
return (RasterDataParameters)prov.getDataParameters();
|
|
1336 |
return prov.getDataParameters(); |
|
1345 | 1337 |
} |
1346 | 1338 |
return (RasterDataParameters)getParameters(); |
1347 | 1339 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/datastruct/DefaultDataStructFactory.java | ||
---|---|---|
29 | 29 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
30 | 30 |
import org.gvsig.fmap.dal.coverage.datastruct.NoData; |
31 | 31 |
import org.gvsig.fmap.dal.coverage.datastruct.TransparencyRange; |
32 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
|
33 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
34 |
import org.gvsig.fmap.dal.coverage.store.props.Statistics; |
|
32 |
import org.gvsig.fmap.dal.coverage.grid.GridTransparency; |
|
33 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
35 | 34 |
import org.gvsig.raster.impl.datastruct.persistence.DefaultColorTableLibrary; |
36 |
import org.gvsig.raster.impl.provider.RasterProvider; |
|
37 |
import org.gvsig.raster.impl.store.properties.SimpleProviderStatistics; |
|
38 |
import org.gvsig.raster.impl.store.properties.MultiProviderStatistics; |
|
35 |
import org.gvsig.raster.impl.grid.GridTransparencyImpl; |
|
39 | 36 |
|
40 | 37 |
/** |
41 | 38 |
* Factory for data structures |
... | ... | |
51 | 48 |
public TransparencyRange createTransparencyRange() { |
52 | 49 |
return new TransparencyRangeImpl(); |
53 | 50 |
} |
51 |
|
|
52 |
/* |
|
53 |
* (non-Javadoc) |
|
54 |
* @see org.gvsig.fmap.dal.coverage.datastruct.DataStructFactory#createGridTransparency(org.gvsig.fmap.dal.coverage.store.props.Transparency) |
|
55 |
*/ |
|
56 |
public GridTransparency createGridTransparency(Transparency t) { |
|
57 |
return new GridTransparencyImpl(t); |
|
58 |
} |
|
54 | 59 |
|
55 | 60 |
/* |
56 | 61 |
* (non-Javadoc) |
org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/GdalProvider.java | ||
---|---|---|
57 | 57 |
import org.gvsig.raster.impl.provider.tile.FileTileServer; |
58 | 58 |
import org.gvsig.raster.impl.store.AbstractRasterDataParameters; |
59 | 59 |
import org.gvsig.raster.impl.store.DefaultStoreFactory; |
60 |
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation; |
|
61 | 60 |
import org.gvsig.raster.impl.store.properties.DataStoreMetadata; |
62 | 61 |
import org.gvsig.tools.ToolsLocator; |
63 | 62 |
import org.gvsig.tools.extensionpoint.ExtensionPoint; |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.io/src/main/java/org/gvsig/raster/mosaic/io/MosaicProvider.java | ||
---|---|---|
55 | 55 |
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException; |
56 | 56 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
57 | 57 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
58 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
|
58 | 59 |
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer; |
59 | 60 |
import org.gvsig.fmap.dal.coverage.store.props.Statistics; |
60 | 61 |
import org.gvsig.fmap.dal.coverage.store.props.TimeSeries; |
... | ... | |
240 | 241 |
noData = getParameters().getNoData(); |
241 | 242 |
noDataEnabled = true; |
242 | 243 |
setColorInterpretation(providerList.get(0).getColorInterpretation().cloneColorInterpretation()); |
243 |
transparency = providerList.get(0).getTransparency(); |
|
244 |
|
|
244 | 245 |
//Se le pone banda de transparencia siempre |
245 |
if(providerList.get(0).getDataType()[0] == Buffer.TYPE_BYTE && !providerList.get(0).getTransparency().existAlphaBand()) {
|
|
246 |
if(providerList.get(0).getDataType()[0] == Buffer.TYPE_BYTE) { |
|
246 | 247 |
transparency = new DataStoreTransparency(); |
247 | 248 |
transparency.setTransparencyBand(getBandCount()); |
248 |
} |
|
249 |
} else |
|
250 |
transparency = providerList.get(0).getTransparency(); |
|
249 | 251 |
|
250 | 252 |
extent = null; |
251 | 253 |
for (int i = 0; i < providerList.size(); i++) { |
... | ... | |
329 | 331 |
File file = new File(multiFileFormat.getPathToFile(i)); |
330 | 332 |
if(file.exists()) { |
331 | 333 |
RasterProvider prov = loadProvider(multiFileFormat.getPathToFile(i), storeServices); |
334 |
if(i == 0) |
|
335 |
getParameters().setPixelSize(prov.getCellSize()); |
|
332 | 336 |
getParameters().addProvider(prov); |
333 | 337 |
} |
334 | 338 |
} catch (ProviderNotRegisteredException e) { |
... | ... | |
624 | 628 |
if(getParameters().hasParamsChanged()) |
625 | 629 |
calcMetadataFromParams(); |
626 | 630 |
setView(extent); |
627 |
String layerName = getLayerNameFromTimeSelection(getParameters().getTimeSelection());
|
|
631 |
String layerName = getLayerNameFromSelection(getParameters().getTimeSelection()); |
|
628 | 632 |
ArrayList<Tile> tileList = getTileList(extent, bandList, rasterBuf.getWidth(), rasterBuf.getHeight(), layerName); |
629 | 633 |
try { |
630 | 634 |
for (int i = 0; i < tileList.size(); i++) { |
... | ... | |
675 | 679 |
if(getParameters().hasParamsChanged()) |
676 | 680 |
calcMetadataFromParams(); |
677 | 681 |
setView(extent); |
678 |
String layerName = getLayerNameFromTimeSelection(getParameters().getTimeSelection());
|
|
682 |
String layerName = getLayerNameFromSelection(getParameters().getTimeSelection()); |
|
679 | 683 |
ArrayList<Tile> tileList = getTileList(extent, bandList, bufWidth, bufHeight, layerName); |
680 | 684 |
try { |
681 | 685 |
for (int i = 0; i < tileList.size(); i++) { |
... | ... | |
805 | 809 |
} |
806 | 810 |
|
807 | 811 |
/** |
808 |
* Gets the layer name using the time selection |
|
812 |
* Gets the layer name using the time selection and visibility
|
|
809 | 813 |
* @param t |
810 | 814 |
* @return |
811 | 815 |
*/ |
812 |
private String getLayerNameFromTimeSelection(Time t) {
|
|
816 |
private String getLayerNameFromSelection(Time t) { |
|
813 | 817 |
String name = ""; |
814 | 818 |
|
815 | 819 |
MessageDigest md = null; |
... | ... | |
822 | 826 |
if(t == null || selectedProviders.size() != providerList.size()) { |
823 | 827 |
selectedProviders.clear(); |
824 | 828 |
for (int i = 0; i < providerList.size(); i++) { |
825 |
selectedProviders.add(providerList.get(i)); |
|
826 |
name += providerList.get(i).getName(); |
|
829 |
RasterProvider prov = providerList.get(i); |
|
830 |
selectedProviders.add(prov); |
|
831 |
if(!((RasterDataParameters)prov.getDataParameters()).isVisible()) |
|
832 |
name += prov.getURI().substring(prov.getURI().lastIndexOf(File.separator) + 1, prov.getURI().length()); |
|
827 | 833 |
} |
828 | 834 |
} else { |
829 | 835 |
selectedProviders.clear(); |
... | ... | |
845 | 851 |
if( instant != null && |
846 | 852 |
t.intersects(instant) && |
847 | 853 |
!selectedProviders.contains(providerList.get(i))) { |
848 |
selectedProviders.add(providerList.get(i)); |
|
849 |
name += providerList.get(i).getName(); |
|
854 |
RasterProvider prov = providerList.get(i); |
|
855 |
selectedProviders.add(prov); |
|
856 |
if(!((RasterDataParameters)prov.getDataParameters()).isVisible()) |
|
857 |
name += prov.getURI().substring(prov.getURI().lastIndexOf(File.separator) + 1, prov.getURI().length()); |
|
850 | 858 |
} |
851 | 859 |
} |
852 | 860 |
} catch (RmfSerializerException e) { |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.io/src/main/java/org/gvsig/raster/mosaic/io/MosaicDataParameters.java | ||
---|---|---|
45 | 45 |
public static final String FIELD_OVERLAP = "Overlap"; |
46 | 46 |
public static final String FIELD_COLORCORRECTION = "ColorCorrection"; |
47 | 47 |
public static final String FIELD_TIMESELECTION = "TimeSelection"; |
48 |
public static final String FIELD_PROVIDER_VISIBLE = "ProviderVisible"; |
|
48 | 49 |
|
49 | 50 |
//Overlap methods |
50 | 51 |
public static final int FIRST = 0; |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.io/src/main/java/org/gvsig/raster/mosaic/io/MosaicDataParametersImpl.java | ||
---|---|---|
42 | 42 |
public static final String PARAMETERS_DEFINITION_NAME = "MultifileRasterDataParameters"; |
43 | 43 |
private static DynClass DYNCLASS = null; |
44 | 44 |
private boolean paramsHasChanged = false; |
45 |
//private ArrayList<Boolean> visible = new ArrayList<Boolean>(); |
|
45 | 46 |
|
46 | 47 |
public MosaicDataParametersImpl() { |
47 | 48 |
super(); |
... | ... | |
95 | 96 |
field.setDescription("Time selection"); |
96 | 97 |
field.setMandatory(false); |
97 | 98 |
field.setClassOfValue(Time.class); |
99 |
|
|
100 |
/*field = dynClass.addDynFieldObject(FIELD_PROVIDER_VISIBLE); |
|
101 |
field.setDescription("If the boolean in i position is true, that means that the i provider is visible"); |
|
102 |
field.setMandatory(false); |
|
103 |
field.setClassOfValue(Object.class);*/ |
|
98 | 104 |
|
99 | 105 |
DYNCLASS = dynClass; |
100 | 106 |
} |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.io/src/main/java/org/gvsig/raster/mosaic/io/downloader/TileDownloaderForMosaics.java | ||
---|---|---|
33 | 33 |
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException; |
34 | 34 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
35 | 35 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
36 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
|
36 | 37 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
37 | 38 |
import org.gvsig.fmap.dal.coverage.util.RasterUtils; |
38 | 39 |
import org.gvsig.raster.cache.tile.Tile; |
... | ... | |
91 | 92 |
//Iterates the list of providers clipping the selected extent |
92 | 93 |
for (int i = 0; i < provList.size(); i++) { |
93 | 94 |
RasterProvider p = provList.get(i); |
95 |
if(!p.getDataParameters().isVisible()) |
|
96 |
continue; |
|
94 | 97 |
ci = p.getColorInterpretation(); |
95 | 98 |
Buffer bufPartialResult = clipTileFromProvider((DefaultRasterProvider)p, tile); |
96 | 99 |
if(bufPartialResult != null) { |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.io/src/main/java/org/gvsig/raster/mosaic/io/MosaicRasterFormatSerializer.java | ||
---|---|---|
199 | 199 |
b.append("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n"); |
200 | 200 |
b.append("<" + MAIN_TAG + ">\n"); |
201 | 201 |
putProperty(b, NAME, mosaicFormat.getName(), 2); |
202 |
putProperty(b, DESCRIPTION, mosaicFormat.getDescription(), 2); |
|
202 | 203 |
|
203 | 204 |
b.append("\t\t<" + URIS + ">\n"); |
204 | 205 |
for (int i = 0; i < mosaicFormat.getNumberOfFiles(); i++) { |
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.app/src/main/java/org/gvsig/raster/mosaic/app/gui/MosaicPropertiesListener.java | ||
---|---|---|
57 | 57 |
|
58 | 58 |
|
59 | 59 |
/** |
60 |
* |
|
60 |
* Class for listen to events in mosaic GUI
|
|
61 | 61 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
62 | 62 |
*/ |
63 | 63 |
public class MosaicPropertiesListener implements TableModelListener, ActionListener, ButtonsPanelListener { |
... | ... | |
71 | 71 |
panel.getCreateButton().addActionListener(this); |
72 | 72 |
panel.getSeeListCheck().addActionListener(this); |
73 | 73 |
panel.getDeleteButton().addActionListener(this); |
74 |
panel.getModel().addTableModelListener(this); |
|
74 | 75 |
} |
75 | 76 |
|
77 |
/** |
|
78 |
* Events in the table |
|
79 |
*/ |
|
76 | 80 |
public void tableChanged(TableModelEvent e) { |
77 |
|
|
81 |
if(e.getColumn() == 0) { |
|
82 |
MosaicDataParameters params = (MosaicDataParameters)panel.getfLayer().getDataStore().getParameters(); |
|
83 |
Object[][] data = panel.getModel().getDataWithoutPath(); |
|
84 |
for (int i = 0; i < data.length; i++) { |
|
85 |
boolean b = ((Boolean)data[i][0]).booleanValue(); |
|
86 |
params.getProviders().get(i).getDataParameters().setVisible(b); |
|
87 |
} |
|
88 |
} |
|
78 | 89 |
} |
79 |
|
|
90 |
|
|
80 | 91 |
public void accept() { |
81 | 92 |
apply(); |
82 | 93 |
|
83 | 94 |
} |
84 | 95 |
|
96 |
@SuppressWarnings("deprecation") |
|
85 | 97 |
public void apply() { |
86 | 98 |
try { |
87 | 99 |
RasterDataStore dataStore = panel.getfLayer().getDataStore(); |
... | ... | |
136 | 148 |
if(create) { |
137 | 149 |
MosaicProvider provMosaic = (MosaicProvider)dataManager.createProvider((DataStoreProviderServices)dataStore, newParamsMosaic); |
138 | 150 |
((DefaultFLyrRaster)panel.getfLayer()).setName(layerName); |
139 |
((DefaultFLyrRaster)panel.getfLayer()).getRender().setLastTransparency(null); |
|
140 | 151 |
//Assigns the MultifileProvider to the store |
141 | 152 |
dataStore.setProvider(provMosaic); |
142 | 153 |
} |
143 | 154 |
|
155 |
//((DefaultFLyrRaster)panel.getfLayer()).getRender().setLastTransparency(null); |
|
144 | 156 |
saveMosaicFileLayer(layerName, paramFirstFile.getURI(), uriList); |
145 | 157 |
panel.setCreateStatus(); |
146 | 158 |
} catch (Exception exc) { |
... | ... | |
224 | 236 |
File[] fileList = chooser.getSelectedFiles(); |
225 | 237 |
ArrayList<File> fileArray = new ArrayList<File>(); |
226 | 238 |
for (int i = 0; i < fileList.length; i++) { |
227 |
fileArray.add(fileList[i]); |
|
239 |
if(!existsFile(fileList[i])) |
|
240 |
fileArray.add(fileList[i]); |
|
228 | 241 |
} |
229 | 242 |
addData(fileArray); |
230 | 243 |
} |
231 | 244 |
} |
232 | 245 |
|
233 | 246 |
/** |
247 |
* Returns true if exists the file in the table |
|
248 |
* @param file |
|
249 |
* @return |
|
250 |
*/ |
|
251 |
private boolean existsFile(File file) { |
|
252 |
for (int i = 0; i < panel.getModel().getRowCount(); i++) { |
|
253 |
String path = (String)panel.getModel().getDataWithPath()[i][1]; |
|
254 |
if(path.compareTo(file.getAbsolutePath()) == 0) |
|
255 |
return true; |
|
256 |
} |
|
257 |
return false; |
|
258 |
} |
|
259 |
|
|
260 |
/** |
|
234 | 261 |
* Selects the files of a directory |
235 | 262 |
*/ |
236 | 263 |
private void selectDirectory() { |
... | ... | |
246 | 273 |
String[] files = dir.list(); |
247 | 274 |
ArrayList<File> fileArray = new ArrayList<File>(); |
248 | 275 |
for (int j = 0; j < files.length; j++) { |
249 |
fileArray.add(new File(dir + File.separator + files[j])); |
|
276 |
File f = new File(dir + File.separator + files[j]); |
|
277 |
if(!existsFile(f)) { |
|
278 |
fileArray.add(f); |
|
279 |
} |
|
250 | 280 |
} |
251 | 281 |
addData(fileArray); |
252 | 282 |
} |
... | ... | |
259 | 289 |
* @param data |
260 | 290 |
* @return |
Also available in: Unified diff