Revision 43534 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/FilesystemExplorerWizardPanelController.java

View differences:

FilesystemExplorerWizardPanelController.java
29 29
import org.gvsig.app.ApplicationManager;
30 30
import org.gvsig.app.prepareAction.PrepareContext;
31 31
import org.gvsig.filedialogchooser.FileDialogChooser;
32
import org.gvsig.fmap.dal.DataStore;
32 33
import org.gvsig.fmap.dal.DataStoreParameters;
33 34
import org.gvsig.fmap.dal.exception.DataException;
34 35
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
......
70 71
    protected MapContext mapContext;
71 72
    protected int selectedIndex;
72 73
    private static MyFileFilter lastFilter = null;
74
    private boolean tabularOnly;
73 75

  
74 76
    /**
75 77
     * @param mapContext
......
100 102
        btnUp.setToolTipText(i18nManager.getTranslation(btnUp.getToolTipText()));
101 103
        btnDown.setToolTipText(i18nManager.getTranslation(btnDown.getToolTipText()));
102 104
        
105
        btnChangeViewProjection.setText(i18nManager.getTranslation(btnChangeViewProjection.getText()));
106
        btnChangeViewProjection.setToolTipText(i18nManager.getTranslation(btnChangeViewProjection.getToolTipText()));
103 107
    }
104 108

  
105 109
    /**
......
117 121
    private void initComponents() {
118 122

  
119 123
        this.btnAdd.addActionListener(new ActionListener() {
124
            @Override
120 125
            public void actionPerformed(ActionEvent e) {
121 126
                doAdd();
122 127
            }
123 128
        });
124 129

  
125 130
        this.btnProperties.addActionListener(new ActionListener() {
131
            @Override
126 132
            public void actionPerformed(ActionEvent e) {
127 133
                doOpenProperties();
128 134
            }
129 135
        });
130 136

  
131 137
        this.btnRemove.addActionListener(new ActionListener() {
138
            @Override
132 139
            public void actionPerformed(ActionEvent e) {
133 140
                doRemove();
134 141
            }
135 142
        });
136 143

  
137 144
        this.btnUp.addActionListener(new ActionListener() {
145
            @Override
138 146
            public void actionPerformed(ActionEvent e) {
139 147
                doUp();
140 148
            }
141 149
        });
142 150

  
143 151
        this.btnDown.addActionListener(new ActionListener() {
152
            @Override
144 153
            public void actionPerformed(ActionEvent e) {
145 154
                doDown();
146 155
            }
147 156
        });
148 157

  
158
        this.btnChangeViewProjection.addActionListener(new ActionListener() {
159
            @Override
160
            public void actionPerformed(ActionEvent e) {
161
                doChangeViewProjection();
162
            }
163
        });
164
        
149 165
        I18nManager i18nManager = ToolsLocator.getI18nManager();
150 166

  
151 167
        this.tableFiles.setModel(new FilesystemExplorerWizardTableModel());
......
159 175
        this.tableFiles.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
160 176
        this.tableFiles.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
161 177

  
178
            @Override
162 179
            public void valueChanged(ListSelectionEvent e) {
163 180
                handleSelectionEvent(e);
164 181
            }
165 182
        });
183
        this.btnChangeViewProjection.setEnabled(false);
166 184
    }
167 185

  
168 186

  
......
174 192
    }
175 193

  
176 194
    protected void handleSelectionEvent(ListSelectionEvent e){
177
        if (e.getValueIsAdjusting())
195
        if (e.getValueIsAdjusting()) {
178 196
            return;
179

  
197
        }
180 198
        final DefaultListSelectionModel target = (DefaultListSelectionModel)e.getSource();
181 199
        selectedIndex = target.getAnchorSelectionIndex();
182 200

  
......
194 212
            int index = model.getRowCount()-1;
195 213
            this.tableFiles.getSelectionModel().setSelectionInterval(index, index);
196 214
        }
215
        updateChangeViewProjection();
197 216
    }
198 217

  
199 218
    protected void doRemove() {
......
206 225
                index = model.getRowCount()-1;
207 226
            };
208 227
            this.tableFiles.getSelectionModel().setSelectionInterval(index, index);
228
            updateChangeViewProjection();
209 229
        }
210 230
    }
211 231

  
......
217 237
            showPropertiesDialog((DynObject) parameters);
218 238
            updateTable();
219 239
            this.tableFiles.getSelectionModel().setSelectionInterval(index, index);
240
            updateChangeViewProjection();
220 241
        }
221 242
    }
222 243

  
......
226 247
            int index = selectedIndex;
227 248
            model.up(index);
228 249
            updateTable();
229

  
230 250
            this.tableFiles.getSelectionModel().setSelectionInterval(index-1, index-1);
251
            updateChangeViewProjection();
231 252
        }
232 253
    }
233 254

  
......
238 259
            model.down(index);
239 260
            updateTable();
240 261
            this.tableFiles.getSelectionModel().setSelectionInterval(index+1, index+1);
262
            updateChangeViewProjection();
241 263
        }
242 264
    }
243 265

  
......
251 273
    private void updateTable(){
252 274
        ((FilesystemExplorerWizardTableModel)this.tableFiles.getModel()).fireTableDataChanged();
253 275
        updateRowHeights();
276
        this.tableFiles.getSelectionModel().setSelectionInterval(selectedIndex, selectedIndex);
254 277
    }
255 278

  
256 279
    private void updateRowHeights() {
......
299 322

  
300 323
        int result = fileChooser.showOpenDialog(this);
301 324

  
302
        List<FilesystemStoreParameters> toAdd =
303
            new ArrayList<FilesystemStoreParameters>();
325
        List<FilesystemStoreParameters> toAdd = new ArrayList<>();
304 326

  
305 327
        if (result == JFileChooser.APPROVE_OPTION) {
306 328
            lastFilter = (MyFileFilter) fileChooser.getFileFilter();
......
325 347

  
326 348
        PrepareContext context = this.getPrepareDataStoreContext();
327 349

  
328
        List<DataStoreParameters> params = new ArrayList<DataStoreParameters>();
350
        List<DataStoreParameters> params = new ArrayList<>();
329 351
        List<DataStoreParameters> preparedParams = null;
330
        List<FilesystemStoreParameters> returnParams = new ArrayList<FilesystemStoreParameters>();
352
        List<FilesystemStoreParameters> returnParams = new ArrayList<>();
331 353

  
332 354
        for ( File aFile : files ) {
333 355
            String currentProvider = providerName;
......
418 440
        }
419 441
        FilesystemExplorerWizardTableModel model = (FilesystemExplorerWizardTableModel)this.tableFiles.getModel();
420 442
        model.add(filesParams);
443
        updateChangeViewProjection();
421 444
    }
422 445

  
423 446
    /**
......
457 480
        }
458 481
    }
459 482

  
483
    private void updateChangeViewProjection() {
484
        FilesystemExplorerWizardTableModel model = (FilesystemExplorerWizardTableModel) this.tableFiles.getModel();
485
        if (selectedIndex < 0 && selectedIndex >= model.getRowCount()) {
486
            this.btnChangeViewProjection.setEnabled(false);
487
        }
488
        IProjection projection;
489
        DynObject parameters = (DynObject) model.getParams(0);
490
        if( parameters.getDynClass().getDynField(DataStore.METADATA_CRS) != null ) {
491
            projection = (IProjection) parameters.getDynValue(DataStore.METADATA_CRS);
492
            if( mapContext == null || mapContext.getLayers().isEmpty() ) {
493
                if( projection == null ) {
494
                    this.btnChangeViewProjection.setEnabled(false);
495
                } else if( projection.equals(mapContext.getProjection()) ) {
496
                    this.btnChangeViewProjection.setEnabled(false);
497
                } else {
498
                    for( DataStoreParameters p : model.getParameters()) {
499
                        projection = (IProjection) p.getDynValue(DataStore.METADATA_CRS);
500
                        if( projection != null ) {
501
                            String s = projection.getFullCode();
502
                            if( s.contains("@") ) {
503
                                this.btnChangeViewProjection.setEnabled(false);
504
                                return;
505
                            }
506
                        }
507
                    }
508
                    this.btnChangeViewProjection.setEnabled(true);
509
                }
510
            }
511
        }
512
    }
513
    
514
    private void doChangeViewProjection() {
515
        FilesystemExplorerWizardTableModel model = (FilesystemExplorerWizardTableModel) this.tableFiles.getModel();
516
        if( model.getRowCount() <= 0 || 
517
            (selectedIndex < 0 && selectedIndex >= model.getRowCount()) ) {
518
            this.btnChangeViewProjection.setEnabled(false);
519
            return;
520
        }
521
        IProjection projection;
522
        DynObject parameters = (DynObject) model.getParams(selectedIndex);
523
        if( parameters.getDynClass().getDynField(DataStore.METADATA_CRS) != null ) {
524
            projection = (IProjection) parameters.getDynValue(DataStore.METADATA_CRS);
525
            if( mapContext == null || mapContext.getLayers().isEmpty() ) {
526
                mapContext.setProjection(projection);
527
                updateTable();
528
            }
529
        }            
530
    }
460 531

  
532
    void setTabularOnly(boolean tabularOnly) {
533
        this.tabularOnly = tabularOnly;
534
        this.btnChangeViewProjection.setVisible(!tabularOnly);
535
    }
461 536
}

Also available in: Unified diff