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