root / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / RasterToolsUtil.java @ 13569
History | View | Annotate | Download (6.79 KB)
1 | 11931 | nacho | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
|
||
4 | *
|
||
5 | * This program is free software; you can redistribute it and/or
|
||
6 | * modify it under the terms of the GNU General Public License
|
||
7 | * as published by the Free Software Foundation; either version 2
|
||
8 | * of the License, or (at your option) any later version.
|
||
9 | *
|
||
10 | * This program is distributed in the hope that it will be useful,
|
||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
13 | * GNU General Public License for more details.
|
||
14 | *
|
||
15 | * You should have received a copy of the GNU General Public License
|
||
16 | * along with this program; if not, write to the Free Software
|
||
17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
18 | */
|
||
19 | package org.gvsig.rastertools; |
||
20 | |||
21 | 11947 | nacho | import java.awt.Component; |
22 | import java.io.File; |
||
23 | 11931 | nacho | import java.util.ArrayList; |
24 | |||
25 | 11947 | nacho | import javax.swing.JOptionPane; |
26 | |||
27 | 11931 | nacho | import org.gvsig.gui.beans.propertiespanel.PropertiesComponent; |
28 | import org.gvsig.gui.beans.propertiespanel.PropertyStruct; |
||
29 | import org.gvsig.raster.dataset.Params; |
||
30 | import org.gvsig.raster.dataset.Params.Param; |
||
31 | |||
32 | 11947 | nacho | import com.iver.andami.PluginServices; |
33 | |||
34 | 11931 | nacho | /**
|
35 | * Herramientas de uso general y que son dependientes de gvSIG, FMap o de
|
||
36 | * libUIComponents.
|
||
37 | 12333 | bsanchez | * En caso de no serlo existe una clase independiente de cualquier proyecto dentro de
|
38 | 11931 | nacho | * libRaster para este tipo de funciones.
|
39 | 12333 | bsanchez | *
|
40 | 11931 | nacho | * @version 31/05/2007
|
41 | * @author Nacho Brodin (nachobrodin@gmail.com)
|
||
42 | *
|
||
43 | */
|
||
44 | public class RasterToolsUtil { |
||
45 | |||
46 | /**
|
||
47 | 12333 | bsanchez | * Selecciona los controles del panel de propiedades a partir de los par?mtros
|
48 | * obtenidos del driver. Este m?todo realiza una transformaci?n entre Params
|
||
49 | * obtenido del driver de escritura y los par?metros del panel de propiedades.
|
||
50 | *
|
||
51 | * @param panel Panel de propiedades
|
||
52 | * @param params Par?metros del driver
|
||
53 | */
|
||
54 | public static void loadPropertiesFromWriterParams(PropertiesComponent pComp, Params params) { |
||
55 | for (int i = 0; i < params.getNumParams(); i++) { |
||
56 | 11931 | nacho | Param p = params.getParam(i); |
57 | String name = p.id;
|
||
58 | String key = p.id;
|
||
59 | Object[] types = null; |
||
60 | int selectedValue = 0; |
||
61 | 12333 | bsanchez | |
62 | 11931 | nacho | switch(p.type) {
|
63 | case Params.CHECK:
|
||
64 | 12333 | bsanchez | pComp.addValue(name, key, new Boolean((String) p.defaultValue), types);break; |
65 | 11931 | nacho | case Params.CHOICE:
|
66 | ArrayList list = new ArrayList(); |
||
67 | for (int j = 0; j < p.list.length; j++) { |
||
68 | list.add(p.list[j]); |
||
69 | 12333 | bsanchez | if(((String) p.defaultValue).compareTo(p.list[j]) == 0) |
70 | 11931 | nacho | selectedValue = j; |
71 | } |
||
72 | types = new Object[]{new Integer(PropertiesComponent.TYPE_COMBO), list}; |
||
73 | pComp.addValue(name, key, new Integer(selectedValue), types); |
||
74 | break;
|
||
75 | case Params.SLIDER:
|
||
76 | types = new Object[]{new Integer(PropertiesComponent.TYPE_SLIDER), new Integer(p.list[0]), new Integer(p.list[1])}; |
||
77 | 12333 | bsanchez | pComp.addValue(name, key, new Integer((String) p.defaultValue), types); |
78 | 11931 | nacho | break;
|
79 | } |
||
80 | } |
||
81 | 12333 | bsanchez | } |
82 | |||
83 | /**
|
||
84 | 11931 | nacho | * Carga los par?metros del escritor WriterParams con los valores obtenidos de la
|
85 | * ventana de propiedades.
|
||
86 | */
|
||
87 | public static void loadWriterParamsFromPropertiesPanel(PropertiesComponent pComp, Params params) { |
||
88 | ArrayList values = pComp.getValues();
|
||
89 | for (int iParam = 0; iParam < params.getNumParams(); iParam++) { |
||
90 | Param p = (Param)params.getParam(iParam); |
||
91 | for (int iValue = 0; iValue < values.size(); iValue++) { |
||
92 | PropertyStruct prop = ((PropertyStruct)values.get(iValue)); |
||
93 | if(p.id.compareTo(prop.getKey()) == 0) { |
||
94 | switch(p.type) {
|
||
95 | case Params.CHECK:
|
||
96 | p.defaultValue = String.valueOf(((Boolean)prop.getNewValue()).booleanValue()); |
||
97 | break;
|
||
98 | case Params.CHOICE:
|
||
99 | p.defaultValue = p.list[((Integer)prop.getNewValue()).intValue()];
|
||
100 | break;
|
||
101 | 12333 | bsanchez | case Params.SLIDER:
|
102 | p.defaultValue = String.valueOf(((Integer)prop.getNewValue()).intValue()); |
||
103 | 11931 | nacho | } |
104 | break;
|
||
105 | } |
||
106 | } |
||
107 | } |
||
108 | } |
||
109 | 12333 | bsanchez | |
110 | 11947 | nacho | /**
|
111 | 12333 | bsanchez | * Funci?n que devuelve true si se tiene permiso de escritura en la ruta indicada en el
|
112 | 11947 | nacho | * par?metro path y false si no los tiene.
|
113 | * @param path Ruta a comprobar los permisosv
|
||
114 | * @param pluginObject si es distinto de null se obtiene un mensaje de advertencia y sirve como par?metro para
|
||
115 | * getText de la traducci?n. Si es null no se mostrar? ventana de advertencia
|
||
116 | 12333 | bsanchez | * @return true si se tiene permiso de escritura en la ruta indicada en el
|
117 | 11947 | nacho | * par?metro path y false si no los tiene.
|
118 | */
|
||
119 | public static boolean canWrite(String path, Object pluginObject) { |
||
120 | File f = new File(path); |
||
121 | 12333 | bsanchez | if(f.exists() && f.canWrite())
|
122 | 11947 | nacho | return true; |
123 | else {
|
||
124 | if(pluginObject != null) |
||
125 | JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), |
||
126 | PluginServices.getText(pluginObject, "error_escritura"));
|
||
127 | return false; |
||
128 | } |
||
129 | } |
||
130 | 12497 | nacho | |
131 | /**
|
||
132 | * Muestra un dialogo con un texto y un bot?n Si o No.
|
||
133 | * @param msg Mensaje a mostrar en el dialogo.
|
||
134 | * @param parentWindow Ventana desde la que se lanza el dialogo
|
||
135 | * @return El bot?n seleccionado por el usuario. true si ha seleccionado "si" y
|
||
136 | * false si ha seleccionado "no"
|
||
137 | */
|
||
138 | 12499 | nacho | public static boolean messageBoxYesOrNot(String msg, Object parentWindow){ |
139 | 12497 | nacho | String string1 = PluginServices.getText(parentWindow, "yes"); |
140 | String string2 = PluginServices.getText(parentWindow, "no"); |
||
141 | Object[] options = {string1, string2}; |
||
142 | int n = JOptionPane.showOptionDialog((Component)PluginServices.getMainFrame(), |
||
143 | PluginServices.getText(parentWindow, msg), |
||
144 | PluginServices.getText(parentWindow, "confirmacion"),
|
||
145 | JOptionPane.YES_NO_OPTION,
|
||
146 | JOptionPane.QUESTION_MESSAGE,
|
||
147 | null,
|
||
148 | options, |
||
149 | string1); |
||
150 | if (n == JOptionPane.YES_OPTION) |
||
151 | return true; |
||
152 | else
|
||
153 | return false; |
||
154 | } |
||
155 | |||
156 | /**
|
||
157 | * Muestra un dialogo de error con un texto y un bot?n de aceptar.
|
||
158 | * @param msg Mensaje a mostrar en el dialogo.
|
||
159 | * @param parentWindow Ventana desde la que se lanza el dialogo
|
||
160 | */
|
||
161 | 12499 | nacho | public static void messageBoxError(String msg, Object parentWindow){ |
162 | 12497 | nacho | String string = PluginServices.getText(parentWindow, "accept"); |
163 | Object[] options = {string}; |
||
164 | JOptionPane.showOptionDialog((Component)PluginServices.getMainFrame(), |
||
165 | PluginServices.getText(parentWindow, msg), |
||
166 | PluginServices.getText(parentWindow, "confirmacion"),
|
||
167 | JOptionPane.OK_OPTION,
|
||
168 | JOptionPane.ERROR_MESSAGE,
|
||
169 | null,
|
||
170 | options, |
||
171 | string); |
||
172 | } |
||
173 | |||
174 | /**
|
||
175 | * Muestra un dialogo de informaci?n con un texto y un bot?n de aceptar.
|
||
176 | * @param msg Mensaje a mostrar en el dialogo.
|
||
177 | * @param parentWindow Ventana desde la que se lanza el dialogo
|
||
178 | */
|
||
179 | 12499 | nacho | public static void messageBoxInfo(String msg, Object parentWindow){ |
180 | 12497 | nacho | String string = PluginServices.getText(parentWindow, "accept"); |
181 | Object[] options = {string}; |
||
182 | JOptionPane.showOptionDialog((Component)PluginServices.getMainFrame(), |
||
183 | PluginServices.getText(parentWindow, msg), |
||
184 | PluginServices.getText(parentWindow, "confirmacion"),
|
||
185 | JOptionPane.OK_OPTION,
|
||
186 | JOptionPane.INFORMATION_MESSAGE,
|
||
187 | null,
|
||
188 | options, |
||
189 | string); |
||
190 | } |
||
191 | 11931 | nacho | } |