svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / fmap / dal / serverexplorer / filesystem / swing / FilesystemExplorerWizardTableModel.java @ 43152
History | View | Annotate | Download (7.64 KB)
1 | 43152 | fdiaz | package org.gvsig.fmap.dal.serverexplorer.filesystem.swing; |
---|---|---|---|
2 | |||
3 | import java.util.ArrayList; |
||
4 | import java.util.List; |
||
5 | |||
6 | import javax.swing.table.AbstractTableModel; |
||
7 | |||
8 | import org.gvsig.fmap.dal.DataStoreParameters; |
||
9 | import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
||
10 | import org.gvsig.tools.ToolsLocator; |
||
11 | import org.gvsig.tools.i18n.I18nManager; |
||
12 | |||
13 | |||
14 | /**
|
||
15 | * @author fdiaz
|
||
16 | *
|
||
17 | */
|
||
18 | public class FilesystemExplorerWizardTableModel extends AbstractTableModel { |
||
19 | |||
20 | /**
|
||
21 | *
|
||
22 | */
|
||
23 | private static final long serialVersionUID = -1289509561088757725L; |
||
24 | |||
25 | private static final int COLUMNS = 2; |
||
26 | |||
27 | private static final int COLUMN_STORE_PARAMETERS = 0; |
||
28 | private static final int COLUMN_TILED = 1; |
||
29 | |||
30 | public static final String COLUMN_STORE_PARAMETERS_NAME = "_file"; |
||
31 | public static final String COLUMN_TILED_NAME = "_tiled"; |
||
32 | |||
33 | private List<FilesystemStoreParametersToLoad> data = null; |
||
34 | |||
35 | /**
|
||
36 | *
|
||
37 | */
|
||
38 | public FilesystemExplorerWizardTableModel() {
|
||
39 | this.data = (List<FilesystemStoreParametersToLoad>) new ArrayList<FilesystemStoreParametersToLoad>(); |
||
40 | } |
||
41 | |||
42 | @Override
|
||
43 | public int getColumnCount() { |
||
44 | return COLUMNS;
|
||
45 | } |
||
46 | |||
47 | @Override
|
||
48 | public int getRowCount() { |
||
49 | return data.size();
|
||
50 | } |
||
51 | |||
52 | |||
53 | @Override
|
||
54 | public Class<?> getColumnClass(int columnIndex) { |
||
55 | switch (columnIndex) {
|
||
56 | case COLUMN_STORE_PARAMETERS:
|
||
57 | return FilesystemStoreParametersToLoad.class;
|
||
58 | case COLUMN_TILED:
|
||
59 | return Boolean.class; |
||
60 | } |
||
61 | return super.getColumnClass(columnIndex); |
||
62 | } |
||
63 | |||
64 | @Override
|
||
65 | public Object getValueAt(int i, int j) { |
||
66 | if (i < data.size()) {
|
||
67 | FilesystemStoreParametersToLoad filesystemStoreParametersToLoad = (FilesystemStoreParametersToLoad) data.get(i); |
||
68 | switch (j) {
|
||
69 | case COLUMN_STORE_PARAMETERS:
|
||
70 | return filesystemStoreParametersToLoad.getParameters();
|
||
71 | case COLUMN_TILED:
|
||
72 | return filesystemStoreParametersToLoad.isTiled();
|
||
73 | } |
||
74 | } |
||
75 | return null; |
||
76 | } |
||
77 | |||
78 | @Override
|
||
79 | public String getColumnName(int col) { |
||
80 | I18nManager i18nManager = ToolsLocator.getI18nManager(); |
||
81 | if(col < COLUMNS){
|
||
82 | switch (col) {
|
||
83 | case COLUMN_STORE_PARAMETERS:
|
||
84 | return i18nManager.getTranslation(COLUMN_STORE_PARAMETERS_NAME);
|
||
85 | case COLUMN_TILED:
|
||
86 | return i18nManager.getTranslation(COLUMN_TILED_NAME);
|
||
87 | default:
|
||
88 | break;
|
||
89 | } |
||
90 | } |
||
91 | throw new IndexOutOfBoundsException("Column '"+col+"' > "+COLUMNS); |
||
92 | } |
||
93 | |||
94 | public boolean isCellEditable(int row, int col) { |
||
95 | if (col == COLUMN_TILED) {
|
||
96 | return true; |
||
97 | } |
||
98 | return false; |
||
99 | } |
||
100 | |||
101 | public void setValueAt(Object value, int row, int col) { |
||
102 | if (row < data.size()) {
|
||
103 | if (col < COLUMNS) {
|
||
104 | FilesystemStoreParametersToLoad filesystemStoreParametersToLoad = data.get(row); |
||
105 | switch (col) {
|
||
106 | case COLUMN_STORE_PARAMETERS:
|
||
107 | if (value == null || !(value instanceof FilesystemStoreParameters)) { |
||
108 | throw new IllegalArgumentException("The object '" + value.toString() + "' must be a FilesystemStoreParameters."); |
||
109 | } |
||
110 | filesystemStoreParametersToLoad.setParameters((FilesystemStoreParameters) value); |
||
111 | break;
|
||
112 | case COLUMN_TILED:
|
||
113 | if (value == null) { |
||
114 | filesystemStoreParametersToLoad.setTiled(false);
|
||
115 | break;
|
||
116 | } |
||
117 | if (!(value instanceof Boolean)) { |
||
118 | throw new IllegalArgumentException("The object '" + value.toString() + "' must be a Boolean."); |
||
119 | } |
||
120 | filesystemStoreParametersToLoad.setTiled((Boolean) value);
|
||
121 | break;
|
||
122 | |||
123 | default:
|
||
124 | break;
|
||
125 | } |
||
126 | |||
127 | } |
||
128 | } |
||
129 | } |
||
130 | |||
131 | /**
|
||
132 | * @param fileParams
|
||
133 | * @param projection
|
||
134 | * @param tiled
|
||
135 | */
|
||
136 | public void add(FilesystemStoreParameters fileParams, Boolean tiled){ |
||
137 | FilesystemStoreParametersToLoad filesystemStoreParametersToLoad = new FilesystemStoreParametersToLoad(fileParams, tiled) ;
|
||
138 | data.add(filesystemStoreParametersToLoad); |
||
139 | } |
||
140 | |||
141 | /**
|
||
142 | * @param listFileParams
|
||
143 | * @param projection
|
||
144 | * @param tiled
|
||
145 | */
|
||
146 | public void add(List<FilesystemStoreParameters> listFileParams, Boolean tiled){ |
||
147 | for (FilesystemStoreParameters filesystemStoreParameters : listFileParams) {
|
||
148 | data.add(new FilesystemStoreParametersToLoad(filesystemStoreParameters, tiled));
|
||
149 | |||
150 | } |
||
151 | } |
||
152 | |||
153 | /**
|
||
154 | * @param row
|
||
155 | */
|
||
156 | public void remove(int row){ |
||
157 | this.data.remove(row);
|
||
158 | } |
||
159 | |||
160 | /**
|
||
161 | * @param row
|
||
162 | * @return FilesystemStoreParameters
|
||
163 | */
|
||
164 | public FilesystemStoreParameters getParams(int row){ |
||
165 | return this.data.get(row).getParameters(); |
||
166 | } |
||
167 | |||
168 | /**
|
||
169 | * @param row
|
||
170 | * @return boolean
|
||
171 | */
|
||
172 | public boolean isTiled(int row){ |
||
173 | return this.data.get(row).isTiled(); |
||
174 | } |
||
175 | |||
176 | /**
|
||
177 | * @param row
|
||
178 | */
|
||
179 | public void up(int row){ |
||
180 | if(row>0 && row<this.data.size()){ |
||
181 | FilesystemStoreParametersToLoad aux = this.data.get(row-1); |
||
182 | this.data.set(row-1, this.data.get(row)); |
||
183 | this.data.set(row, aux);
|
||
184 | } |
||
185 | } |
||
186 | |||
187 | /**
|
||
188 | * @param row
|
||
189 | */
|
||
190 | public void down(int row){ |
||
191 | if(row>=0 && row<(this.data.size()-1)){ |
||
192 | FilesystemStoreParametersToLoad aux = this.data.get(row);
|
||
193 | this.data.set(row, this.data.get(row+1)); |
||
194 | this.data.set(row+1, aux); |
||
195 | } |
||
196 | } |
||
197 | |||
198 | /**
|
||
199 | * @return DataStoreParameters[]
|
||
200 | */
|
||
201 | public DataStoreParameters[] getParameters() { |
||
202 | List<FilesystemStoreParameters> result = new ArrayList<FilesystemStoreParameters>(); |
||
203 | for (FilesystemStoreParametersToLoad rowData : this.data) { |
||
204 | result.add(rowData.getParameters()); |
||
205 | } |
||
206 | return result.toArray(new DataStoreParameters[0]); |
||
207 | } |
||
208 | |||
209 | /**
|
||
210 | * @param parameters
|
||
211 | * @return boolean
|
||
212 | */
|
||
213 | public boolean isTiled(DataStoreParameters parameters) { |
||
214 | for (FilesystemStoreParametersToLoad filesystemStoreParametersToLoad : data) {
|
||
215 | if(filesystemStoreParametersToLoad.getParameters()==parameters){
|
||
216 | return filesystemStoreParametersToLoad.isTiled();
|
||
217 | } |
||
218 | } |
||
219 | return false; |
||
220 | } |
||
221 | |||
222 | /**
|
||
223 | * @author fdiaz
|
||
224 | *
|
||
225 | */
|
||
226 | public static class FilesystemStoreParametersToLoad{ |
||
227 | private FilesystemStoreParameters params;
|
||
228 | private Boolean tiled; |
||
229 | |||
230 | /**
|
||
231 | * @param params
|
||
232 | */
|
||
233 | public FilesystemStoreParametersToLoad(FilesystemStoreParameters params) {
|
||
234 | this.setParameters(params);
|
||
235 | } |
||
236 | |||
237 | /**
|
||
238 | * @param params
|
||
239 | * @param projection
|
||
240 | * @param tiled
|
||
241 | */
|
||
242 | public FilesystemStoreParametersToLoad(FilesystemStoreParameters params, Boolean tiled) { |
||
243 | this.setParameters(params);
|
||
244 | this.setTiled(tiled);
|
||
245 | } |
||
246 | |||
247 | FilesystemStoreParameters getParameters(){ |
||
248 | return this.params; |
||
249 | } |
||
250 | |||
251 | /**
|
||
252 | * @param file the file to set
|
||
253 | */
|
||
254 | public void setParameters(FilesystemStoreParameters file) { |
||
255 | this.params = file;
|
||
256 | } |
||
257 | |||
258 | /**
|
||
259 | * @return the tiled
|
||
260 | */
|
||
261 | public boolean isTiled() { |
||
262 | return tiled;
|
||
263 | } |
||
264 | |||
265 | /**
|
||
266 | * @param tiled the tiled to set
|
||
267 | */
|
||
268 | public void setTiled(Boolean tiled) { |
||
269 | this.tiled = tiled;
|
||
270 | } |
||
271 | } |
||
272 | |||
273 | } |