Statistics
| Revision:

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
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
}