/** * Función para pruebas. Convierte los ficheros generados por la función cachear en ficheros tif * para comprobar que están bien generados. * * @param grf * @param pageBuffer * @param pageLines * @throws IOException */ private void convertBufferToTif(String fileName, AffineTransform at, IBuffer buffer) throws IOException, InterruptedException, RasterDriverException { IDataWriter dataWriter1 = new WriterBufferServer(buffer); GeoRasterWriter grw = null; try { Params params = GeoRasterWriter.getWriter(fileName).getParams(); params.changeParamValue("blocksize", "7"); // posición 7 del array -> 512 params.changeParamValue("tfw", "false"); params.changeParamValue("interleave", new Integer(1)); // posición 1 del array -> PIXEL grw = GeoRasterWriter.getWriter( dataWriter1, fileName, buffer.getBandCount(), at, buffer.getWidth(), buffer.getHeight(), buffer.getDataType(), params, null); } catch (NotSupportedExtensionException e) { throw new RasterDriverException(""); } grw.dataWrite(); grw.writeClose(); }
/** Asignamos los valores del PropertiesComponent al Params seleccionado */ public void RefreshDataProperties() { if (actualParam == -1) return; ArrayList listValues = getFilterPanel().getPropertiesComponent().getValues(); Params params = ((ParamStruct) paramsList.get(actualParam)).getFilterParam(); for (int j = 0; j < listValues.size(); j++) { PropertyStruct ps = (PropertyStruct) listValues.get(j); params.changeParamValue(ps.getKey(), ps.getNewValue()); } }
/** * Cambiar el panel de propiedades central por el nuevo panel, segun el filtro seleccionado que se * pasa por parámetro. * * @param filter */ public void changePanel(String filter) { int posParam = getParamSelected(filter); RefreshDataProperties(); actualParam = posParam; PropertiesComponent propertiesComponent = new PropertiesComponent(); if (posParam != -1) { Params params = ((ParamStruct) paramsList.get(actualParam)).getFilterParam(); if (params != null) { Param paramPanel = params.getParamById("Panel"); if (paramPanel != null && paramPanel.defaultValue instanceof RegistrableFilterListener) ((RegistrableFilterListener) paramPanel.defaultValue).addFilterUIListener(this); RasterToolsUtil.loadPropertiesFromWriterParams( propertiesComponent, params, new String[] {"FilterName"}); } } getFilterPanel().setNewPropertiesComponent(propertiesComponent, filter); }
/** * Aqui se seleccionan que filtros se van a aplicar y se devuelven en forma de ArrayList tanto * para el dibujado como cuando aceptan o aplican el panel. * * @param rendering * @return */ public ArrayList applyFilters(IRasterRendering rendering) { ArrayList listFilterUsed = new ArrayList(); RasterFilterList filterList = new RasterFilterList(); filterList.setEnv(rendering.getRenderFilterList().getEnv()); RasterFilterListManager stackManager = new RasterFilterListManager(filterList); // Conservamos filtros no visibles ya existentes ArrayList filtersInit = getFilterPanel().getLayerVisualStatus().getLast().getFilterStatus(); for (int i = 0; i < filtersInit.size(); i++) { // Si es visible no hacemos nada if (((RasterFilter) filtersInit.get(i)).isVisible()) continue; RasterFilter obj = null; for (int j = 0; j < stackManager.getRasterFilterList().size(); j++) { Class classFilter = (Class) stackManager.getRasterFilterList().get(j); try { obj = (RasterFilter) classFilter.newInstance(); if (obj.getName().equals(((RasterFilter) filtersInit.get(i)).getName())) break; } catch (InstantiationException e) { RasterToolsUtil.messageBoxError("error_creando_filtro", this, e); } catch (IllegalAccessException e) { RasterToolsUtil.messageBoxError("error_creando_filtro", this, e); } } // Si no encontramos el filtro apropiado, nos olvidamos de el if (obj == null) continue; // Si no es visible tenemos que conservar el filtro try { Params params = (Params) ((RasterFilter) filtersInit.get(i)) .getUIParams(((RasterFilter) filtersInit.get(i)).getName()) .clone(); // Añado el parametro RenderBands a los parametros del filtro String rgb = rendering.getRenderBands()[0] + " " + rendering.getRenderBands()[1] + " " + rendering.getRenderBands()[2]; params.setParam("RenderBands", rgb, 0, null); params.setParam("alphaBand", new Integer(rendering.getAlphaBandNumber()), 0, null); ParamStruct newParam = new ParamStruct(); newParam.setFilterClass(obj.getClass()); newParam.setFilterName(((RasterFilter) filtersInit.get(i)).getName()); newParam.setFilterParam(params); listFilterUsed.add(newParam); } catch (CloneNotSupportedException e) { } } // Metemos los filtros seleccionados en el panel ListModel list = getFilterPanel().getMainPanel().getTreeListContainer().getListModel(); for (int i = 0; i < list.getSize(); i++) { Hashtable hastTable = getFilterPanel().getMainPanel().getTreeListContainer().getMap(); for (int j = 0; j < paramsList.size(); j++) { boolean active = true; Param param = ((ParamStruct) paramsList.get(j)).getFilterParam().getParamById("enabled"); if ((param != null) && param.defaultValue instanceof Boolean && ((((Boolean) param.defaultValue).booleanValue()) == false)) active = false; if (active) { if (((ParamStruct) paramsList.get(j)) .getFilterName() .equals(hastTable.get(list.getElementAt(i)))) { try { Params params = (Params) ((ParamStruct) paramsList.get(j)).getFilterParam().clone(); // Añado el parametro RenderBands a los parametros // del filtro String rgb = rendering.getRenderBands()[0] + " " + rendering.getRenderBands()[1] + " " + rendering.getRenderBands()[2]; params.setParam("RenderBands", rgb, 0, null); params.setParam("alphaBand", new Integer(rendering.getAlphaBandNumber()), 0, null); ParamStruct newParam = new ParamStruct(); newParam.setFilterClass(((ParamStruct) paramsList.get(j)).getFilterClass()); newParam.setFilterName(((ParamStruct) paramsList.get(j)).getFilterName()); newParam.setFilterParam(params); listFilterUsed.add(newParam); } catch (CloneNotSupportedException e) { } } } } } return listFilterUsed; }