Revision 209

View differences:

org.gvsig.busquedacatastral/trunk/org.gvsig.busquedacatastral/org.gvsig.busquedacatastral.swing/org.gvsig.busquedacatastral.swing.impl/src/main/java/org/gvsig/busquedacatastral/swing/impl/DefaultBusquedaCatastralConsultaCatastralPanelController.java
19 19

  
20 20
import javax.swing.ComboBoxModel;
21 21
import javax.swing.DefaultComboBoxModel;
22
import javax.swing.DefaultListCellRenderer;
23
import javax.swing.DefaultListModel;
22 24
import javax.swing.JComponent;
23 25
import javax.swing.JList;
24 26
import javax.swing.JOptionPane;
25 27
import javax.swing.ListCellRenderer;
26 28
import javax.swing.ListSelectionModel;
29
import javax.swing.Timer;
27 30
import javax.swing.event.ListSelectionEvent;
28 31
import javax.swing.event.ListSelectionListener;
29 32

  
......
51 54
import org.gvsig.tools.dynobject.DynObject;
52 55
import org.gvsig.tools.i18n.I18nManager;
53 56
import org.gvsig.tools.locator.LocatorException;
57
import org.gvsig.tools.observer.Observable;
58
import org.gvsig.tools.observer.Observer;
54 59
import org.gvsig.tools.swing.api.ActionListenerSupport;
55 60
import org.gvsig.tools.swing.api.ToolsSwingLocator;
56 61
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
62
import org.gvsig.tools.task.SimpleTaskStatus;
57 63
import org.slf4j.Logger;
58 64
import org.slf4j.LoggerFactory;
59 65

  
......
267 273
        cmbTipoVia.setEnabled(tipoVia);
268 274
        txtVia.setEnabled(false);
269 275
        btnVias.setEnabled(vias);
270
        txtNumero.setEnabled(false);
276
        txtNumero.setEnabled(numeros);
271 277
        btnNumeros.setEnabled(numeros);
272 278
        txtBloque.setEnabled(opcionales);
273 279
        txtEscalera.setEnabled(opcionales);
......
314 320
    }
315 321

  
316 322
    private void buscarReferenciasCatastrales(){
317
        BusquedaCatastralManager busquedaCatastralManager = BusquedaCatastralLocator.getManager();
318 323
        I18nManager i18nManager = ToolsLocator.getI18nManager();
319 324
        getDatosFormulario();
320 325
        if (isValidQuery(queryCatastral)){
321
            try {
322
                this.referenciasCatastrales = busquedaCatastralManager.getReferenciasCatastrales(queryCatastral);
323
                listReferenciasCatastrales.setModel(new ReferenciaCatastralListModel(referenciasCatastrales));
324
            } catch (BusquedaCatastralGettingParamsException e) {
325
                logger.error("Error obteniendo referencias catastrales", e);
326
                JOptionPane.showMessageDialog(
327
                    null,
328
                    new StringBuilder().append(i18nManager.getTranslation("_error_obtaining_data"))
329
                        .append(":").append(e.getLocalizedMessage()),
330
                    i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
331
                return;
332
            }
326
            final SimpleTaskStatus taskStatus =
327
                ToolsLocator.getTaskStatusManager().createDefaultSimpleTaskStatus(i18nManager.getTranslation("progress"));
328
            Thread task = new Thread(new Runnable() {
329
                @Override
330
                public void run() {
331
                    try {
332
                        BusquedaCatastralManager busquedaCatastralManager = BusquedaCatastralLocator.getManager();
333
                        referenciasCatastrales = busquedaCatastralManager.getReferenciasCatastrales(queryCatastral);
334
                        listReferenciasCatastrales.setCellRenderer(new ReferenciaCatastralCellRenderer());
335
                        listReferenciasCatastrales.setModel(new ReferenciaCatastralListModel((List<ReferenciaCatastral>)referenciasCatastrales));
336
                        taskStatus.terminate();
337

  
338
                    } catch (BusquedaCatastralGettingParamsException e) {
339
                        taskStatus.abort();
340
                        logger.error("Error referencias catastrales", e);
341
                        I18nManager i18nManager = ToolsLocator.getI18nManager();
342
                        JOptionPane.showMessageDialog(
343
                            null,
344
                            new StringBuilder().append(i18nManager.getTranslation("_error_obtaining_data"))
345
                                .append(":").append(e.getLocalizedMessage()),
346
                            i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
347
                    }
348
                }
349
            });
350
            task.start();
351

  
352
            final StringBuilder loadingDataStrBuilder=new StringBuilder();
353
            loadingDataStrBuilder.append(i18nManager.getTranslation("_loading_data"));
354
            listReferenciasCatastrales.setCellRenderer(new DefaultListCellRenderer());
355
            int delay = 1000; //milliseconds
356
            ActionListener taskPerformer = new ActionListener() {
357
                public void actionPerformed(ActionEvent evt) {
358
                    if(taskStatus.isRunning()){
359
                        loadingDataStrBuilder.append(".");
360
                        DefaultListModel<String> model=new DefaultListModel<String>();
361
                        model.addElement(loadingDataStrBuilder.toString());
362
                        listReferenciasCatastrales.setModel(model);
363
                    }
364
                }
365
            };
366
            new Timer(delay, taskPerformer).start();
367

  
333 368
        }
334 369

  
335 370
    }
......
346 381
            }
347 382
        }
348 383

  
384
        queryCatastral.setNumero(txtNumero.getText());
349 385
        queryCatastral.setReferenciaCatastral(txtReferenciaCatastral.getText());
350 386
        queryCatastral.setBloque(txtBloque.getText());
351 387
        queryCatastral.setEscalera(txtEscalera.getText());
org.gvsig.busquedacatastral/trunk/org.gvsig.busquedacatastral/org.gvsig.busquedacatastral.swing/org.gvsig.busquedacatastral.swing.impl/src/main/java/org/gvsig/busquedacatastral/swing/impl/BusquedaMunicipiosPanelController.java
12 12
import java.util.List;
13 13
import java.util.Locale;
14 14

  
15
import javax.swing.DefaultListCellRenderer;
16
import javax.swing.DefaultListModel;
15 17
import javax.swing.JComponent;
16 18
import javax.swing.JList;
17 19
import javax.swing.JOptionPane;
18 20
import javax.swing.ListSelectionModel;
21
import javax.swing.Timer;
19 22
import javax.swing.event.ListSelectionEvent;
20 23
import javax.swing.event.ListSelectionListener;
21 24

  
......
29 32
import org.gvsig.tools.ToolsLocator;
30 33
import org.gvsig.tools.dynobject.DynObject;
31 34
import org.gvsig.tools.i18n.I18nManager;
35
import org.gvsig.tools.observer.Observable;
36
import org.gvsig.tools.observer.Observer;
32 37
import org.gvsig.tools.swing.api.ActionListenerSupport;
33 38
import org.gvsig.tools.swing.api.ToolsSwingLocator;
39
import org.gvsig.tools.task.SimpleTaskStatus;
34 40
import org.slf4j.Logger;
35 41
import org.slf4j.LoggerFactory;
36 42

  
......
114 120
        });
115 121

  
116 122
        //List Municipios
117
        BusquedaCatastralManager busquedaCatastralManager = BusquedaCatastralLocator.getManager();
118
        List<DynObject> municipios;
119
        try {
120
            municipios = busquedaCatastralManager.getMunicipios(query);
121
        } catch (BusquedaCatastralGettingParamsException e1) {
122
            throw new BusquedaCatastralCreatingPanelException(i18nManager.getTranslation("_error_creando_panel_municipios"),e1);
123
        }
124
        listMunicipios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
125
        listMunicipios.setModel(new DynObjectListModel(municipios));
126
        listMunicipios.setCellRenderer(new DynObjectCellRenderer(BusquedaCatastralManager.CAMPO_MUNICIPIO_ETIQUETA));
123
        buscarMunicipios();
127 124
        listMunicipios.addListSelectionListener(new ListSelectionListener() {
128 125
            @Override
129 126
            public void valueChanged(ListSelectionEvent e) {
......
192 189

  
193 190

  
194 191
    private void buscarMunicipios(){
195
        BusquedaCatastralManager busquedaCatastralManager = BusquedaCatastralLocator.getManager();
196
        List<DynObject> municipios;
197
        String filtroMunicipio=txtMunicipio.getText();
198
        try {
199
            municipios = busquedaCatastralManager.getMunicipios(query,filtroMunicipio);
200
            listMunicipios.setModel(new DynObjectListModel(municipios));
201
        } catch (BusquedaCatastralGettingParamsException e) {
202
            logger.error("Error getting municipios", e);
203
            I18nManager i18nManager = ToolsLocator.getI18nManager();
204
            JOptionPane.showMessageDialog(
205
                null,
206
                new StringBuilder().append(i18nManager.getTranslation("_error_getting_municipios"))
207
                    .append(":").append(e.getLocalizedMessage()),
208
                i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
209
        }
192
        I18nManager i18nManager = ToolsLocator.getI18nManager();
193
        final BusquedaCatastralManager busquedaCatastralManager = BusquedaCatastralLocator.getManager();
194
        final String filtroMunicipio=txtMunicipio.getText();
195
        txtMunicipio.setEnabled(false);
196
        listMunicipios.setEnabled(false);
210 197

  
198
        btnAceptar.setEnabled(false);
199
        final SimpleTaskStatus taskStatus =
200
            ToolsLocator.getTaskStatusManager().createDefaultSimpleTaskStatus(i18nManager.getTranslation("progress"));
201
        Thread task = new Thread(new Runnable() {
202
            @Override
203
            public void run() {
204
                try {
205
                    List<DynObject> municipios = busquedaCatastralManager.getMunicipios(query,filtroMunicipio);
206
                    listMunicipios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
207
                    String[] fieldsToRender={BusquedaCatastralManager.CAMPO_MUNICIPIO_NOMBRE};
208
                    String separator=" ";
209
                    listMunicipios.setCellRenderer(new DynObjectCellRenderer(fieldsToRender, separator));
210
                    listMunicipios.setModel(new DynObjectListModel(municipios));
211
                    taskStatus.terminate();
212

  
213
                } catch (BusquedaCatastralGettingParamsException e) {
214
                    taskStatus.abort();
215
                    logger.error("Error getting municipios", e);
216
                    I18nManager i18nManager = ToolsLocator.getI18nManager();
217
                    JOptionPane.showMessageDialog(
218
                        null,
219
                        new StringBuilder().append(i18nManager.getTranslation("_error_getting_municipios"))
220
                            .append(":").append(e.getLocalizedMessage()),
221
                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
222
                }
223
            }
224
        });
225
        task.start();
226

  
227
        final StringBuilder loadingDataStrBuilder=new StringBuilder();
228
        loadingDataStrBuilder.append(i18nManager.getTranslation("_loading_data"));
229
        listMunicipios.setCellRenderer(new DefaultListCellRenderer());
230
        int delay = 1000; //milliseconds
231
        ActionListener taskPerformer = new ActionListener() {
232
            public void actionPerformed(ActionEvent evt) {
233
                if(taskStatus.isRunning()){
234
                    loadingDataStrBuilder.append(".");
235
                    DefaultListModel<String> model=new DefaultListModel<String>();
236
                    model.addElement(loadingDataStrBuilder.toString());
237
                    listMunicipios.setModel(model);
238
                }
239
            }
240
        };
241
        new Timer(delay, taskPerformer).start();
242

  
243
        taskStatus.addObserver(new Observer() {
244
            @Override
245
            public void update(Observable observable, Object notification) {
246
                if (observable instanceof SimpleTaskStatus){
247
                    SimpleTaskStatus taskStatus=(SimpleTaskStatus)observable;
248
                     if (!taskStatus.isRunning()){
249
                         txtMunicipio.setEnabled(true);
250
                         txtMunicipio.requestFocus();
251
                         listMunicipios.setEnabled(true);
252
                         btnAceptar.setEnabled(true);
253
                     }
254
                }
255
            }
256
        });
211 257
    }
212 258

  
213 259
    @Override

Also available in: Unified diff