Revision 26 org.gvsig.lrs/trunk/org.gvsig.lrs/org.gvsig.lrs.swing/org.gvsig.lrs.swing.impl/src/main/java/org/gvsig/lrs/swing/impl/JLrsGenerateDynamicSegmentationParamsController.java

View differences:

JLrsGenerateDynamicSegmentationParamsController.java
14 14
import java.util.List;
15 15
import java.util.Locale;
16 16

  
17
import javax.swing.JButton;
18 17
import javax.swing.JComponent;
19 18
import javax.swing.JOptionPane;
20 19
import javax.swing.ListCellRenderer;
21 20

  
22 21
import org.apache.commons.io.FileUtils;
23 22
import org.apache.commons.lang3.StringUtils;
24
import org.apache.commons.lang3.mutable.MutableBoolean;
25 23
import org.cresques.cts.IProjection;
26
import org.gvsig.fmap.dal.DALLocator;
27
import org.gvsig.fmap.dal.DataManager;
28
import org.gvsig.fmap.dal.DataStoreParameters;
24
import org.slf4j.Logger;
25
import org.slf4j.LoggerFactory;
26

  
29 27
import org.gvsig.fmap.dal.exception.DataException;
30 28
import org.gvsig.fmap.dal.exception.ReadException;
31 29
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
......
34 32
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
35 33
import org.gvsig.fmap.dal.store.shp.SHPNewStoreParameters;
36 34
import org.gvsig.fmap.geom.DataTypes;
37
import org.gvsig.fmap.geom.Geometry;
38 35
import org.gvsig.fmap.mapcontext.layers.FLayer;
39 36
import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection;
40 37
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
......
46 43
import org.gvsig.lrs.lib.api.exceptions.LrsNeededParameterException;
47 44
import org.gvsig.lrs.swing.api.JLrsAlgorithmParams;
48 45
import org.gvsig.tools.ToolsLocator;
49
import org.gvsig.tools.exception.BaseException;
50 46
import org.gvsig.tools.i18n.I18nManager;
51 47
import org.gvsig.tools.swing.api.ActionListenerSupport;
52 48
import org.gvsig.tools.swing.api.ToolsSwingLocator;
53 49
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
54
import org.gvsig.tools.visitor.VisitCanceledException;
55
import org.gvsig.tools.visitor.Visitor;
56
import org.slf4j.Logger;
57
import org.slf4j.LoggerFactory;
58 50

  
59 51
public class JLrsGenerateDynamicSegmentationParamsController extends
60 52
    JLrsGenerateDynamicSegmentationParamsView implements JLrsAlgorithmParams {
61 53

  
54
    /**
55
     *
56
     */
57
    private static final long serialVersionUID = -5764089056918981236L;
58

  
62 59
    private static final Logger logger = LoggerFactory
63 60
        .getLogger(JLrsGenerateDynamicSegmentationParamsController.class);
64 61

  
......
230 227
        cmbInputLayer.setModel(inputLayerModel);
231 228
        cmbTable.setModel(tableLayerModel);
232 229

  
233
        // listener del combo de capas para que actualice el resto de
234
        // componentes
230
        // listener del combo de capas para que actualice el resto de componentes
235 231
        cmbInputLayer.addItemListener(new ItemListener() {
236 232

  
237 233
            public void itemStateChanged(ItemEvent e) {
......
249 245
                if (item instanceof FeatureStore) {
250 246
                    FeatureStore featureStore = (FeatureStore) item;
251 247
                    updateTable(featureStore);
248
                    clearTableFields();
252 249
                }
253 250
            }
254 251
        });
......
352 349
            logger.error("Error getting selected item from cmbInputLayer");
353 350
            throw new LrsGettingParametersException("error_getting_selected_item_from_cmbInputLayer", null);
354 351
        }
355
        FLyrVect fLyrVect = (FLyrVect) this.cmbIdRouteField.getSelectedItem();
352
        FLyrVect fLyrVect = (FLyrVect) this.cmbInputLayer.getSelectedItem();
356 353
        IProjection projection= fLyrVect.getProjection();
357 354
        if (!(fLyrVect.getFeatureStore() instanceof FeatureStore)){
358 355
            logger.error("Error getting selected item from cmbInputLayer");
......
406 403
        params.setLandmarkField(landmarkField);
407 404

  
408 405
        //cmbFinalLandmarkField
409
        if (!(this.cmbFinalLandmarkField.getSelectedItem() instanceof FeatureAttributeDescriptor)){
406
        if (this.cmbFinalLandmarkField.getSelectedItem()!=null && !(this.cmbFinalLandmarkField.getSelectedItem() instanceof FeatureAttributeDescriptor)){
410 407
            logger.error("Error getting selected item from cmbFinalLandmarkField");
411 408
            throw new LrsGettingParametersException("error_getting_selected_item_from_cmbFinalLandmarkField", null);
412 409
        }
......
479 476
        if (inputLayerSelected != null) {
480 477
            this.updateLayerSource((FLyrVect) inputLayerSelected);
481 478
        }
479
        if (this.cmbIdRouteField.getItemCount() > 0) {
480
            this.cmbIdRouteField.setSelectedIndex(0);
481
        }
482 482
        this.cmbTable.setSelectedIndex(0);
483 483
        Object tableSelected = this.cmbTable.getSelectedItem();
484 484
        if (tableSelected != null) {
485 485
            this.updateTable((FeatureStore) tableSelected);
486 486
        }
487
        this.cmbIdRouteField.setSelectedIndex(0);
488
        this.cmbTableIdRouteField.setSelectedIndex(0);
489
        this.cmbLandmarkField.setSelectedIndex(0);
490
        this.cmbFinalLandmarkField.setSelectedIndex(0);
491
        this.cmbValueField.setSelectedIndex(0);
487
        clearTableFields();
492 488
    }
493 489

  
490
    /**
491
     *
492
     */
493
    private void clearTableFields() {
494
        logger.info(String.valueOf(this.cmbTableIdRouteField.getItemCount()));
495
        if (this.cmbTableIdRouteField.getItemCount() > 0) {
496
            this.cmbTableIdRouteField.setSelectedIndex(0);
497
        }
498
        logger.info(String.valueOf(this.cmbLandmarkField.getItemCount()));
499
        if (this.cmbLandmarkField.getItemCount() > 0) {
500
            this.cmbLandmarkField.setSelectedIndex(0);
501
        }
502
        logger.info(String.valueOf(this.cmbFinalLandmarkField.getItemCount()));
503
        this.cmbFinalLandmarkField.setSelectedIndex(-1);
504

  
505
        logger.info(String.valueOf(this.cmbValueField.getItemCount()));
506
        if (this.cmbValueField.getItemCount() > 0) {
507
            this.cmbValueField.setSelectedIndex(0);
508
        }
509
        this.cmbTableIdRouteField.repaint();
510
        this.cmbLandmarkField.repaint();
511
        this.cmbFinalLandmarkField.repaint();
512
        this.cmbValueField.repaint();
513

  
514
    }
515

  
494 516
    private void updateLayerSource(FLyrVect layer) {
495 517
        logger.info(new StringBuilder().append("Setting layer ")
496 518
            .append(layer.getName()).toString());
......
547 569
            this.cmbFinalLandmarkField.setModel(finalLandmarkComboBoxModel);
548 570
            this.cmbValueField.setModel(valueComboBoxModel);
549 571

  
550
            FeatureAttributeDescriptor[] attributeDescriptors =
551
                type.getAttributeDescriptors();
552
            for (int i = 0; i < attributeDescriptors.length; i++) {
572
            // Renderer para los combos de attributeDescriptors
573
            ListCellRenderer featureAttributeDescriptorCellRenderer =
574
                new FLayersAttributeDescriptorCellRenderer();
575
            // asignaci?n de renderers
576
            cmbTableIdRouteField
577
                .setRenderer(featureAttributeDescriptorCellRenderer);
578
            cmbLandmarkField.setRenderer(featureAttributeDescriptorCellRenderer);
579
            cmbFinalLandmarkField
580
                .setRenderer(featureAttributeDescriptorCellRenderer);
581
            cmbValueField.setRenderer(featureAttributeDescriptorCellRenderer);
582

  
583
            this.cmbFinalLandmarkField.insertItemAt(null,0);
584

  
585
            FeatureAttributeDescriptor[] attributeDescriptors = type.getAttributeDescriptors();
586
            for (int i = 0; i<attributeDescriptors.length; i++) {
553 587
                FeatureAttributeDescriptor featureAttributeDescriptor =
554 588
                    attributeDescriptors[i];
555
                if (featureAttributeDescriptor.getDataType()
556
                    .getType() != DataTypes.GEOMETRY) {
557
                    logger.info(new StringBuilder().append("Adding field ")
589
                if (featureAttributeDescriptor.getDataType().getType() != DataTypes.GEOMETRY) {
590
                    logger.info(new StringBuilder().append("0 - Adding field ")
558 591
                        .append(featureAttributeDescriptor.getName())
559 592
                        .toString());
560 593

  
561
                    JLrsGenerateDynamicSegmentationParamsController.this.cmbTableIdRouteField
562
                        .addItem(featureAttributeDescriptor);
563
                    JLrsGenerateDynamicSegmentationParamsController.this.cmbValueField
564
                    .addItem(featureAttributeDescriptor);
594
                    JLrsGenerateDynamicSegmentationParamsController.this.cmbTableIdRouteField.addItem(featureAttributeDescriptor);
595
                    JLrsGenerateDynamicSegmentationParamsController.this.cmbValueField.addItem(featureAttributeDescriptor);
565 596
                    if (featureAttributeDescriptor.getDataType().isNumeric()) {
566
                        JLrsGenerateDynamicSegmentationParamsController.this.cmbLandmarkField
567
                            .addItem(featureAttributeDescriptor);
568
                        JLrsGenerateDynamicSegmentationParamsController.this.cmbFinalLandmarkField
569
                        .addItem(featureAttributeDescriptor);
597
                        JLrsGenerateDynamicSegmentationParamsController.this.cmbLandmarkField.addItem(featureAttributeDescriptor);
598
                        JLrsGenerateDynamicSegmentationParamsController.this.cmbFinalLandmarkField.addItem(featureAttributeDescriptor);
570 599
                    }
600
                    logger.info(new StringBuilder().append("1 - Adding field ")
601
                        .append(featureAttributeDescriptor.getName())
602
                        .toString());
571 603
                }
572 604
            }
573
            this.cmbTableIdRouteField.invalidate();
574
            this.cmbLandmarkField.invalidate();
575
            this.cmbFinalLandmarkField.invalidate();
576
            this.cmbValueField.invalidate();
577

  
578 605
        } catch (DataException e1) {
579 606
            logger
580 607
                .warn(new StringBuilder()

Also available in: Unified diff