Revision 47524

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.lib/org.gvsig.exportto.lib.impl/src/main/java/org/gvsig/export/impl/service/DefaultExportGeometryHelper.java
22 22
        private final int targetGeometryIndex;
23 23
        private final int sourceGeometryIndex;
24 24
        private final ICoordTrans coord_trans;
25
        private boolean isExtraColumn;
26
        private String sourceGeometryName;
25 27
        
26 28
        private final ExportServiceManager serviceManager;
27 29
        private final ExportParametersGeometry parameters;
......
38 40
            FeatureAttributeDescriptor sourceGeomAtt = theSourceFeatureType.getDefaultGeometryAttribute();
39 41
            FeatureAttributeDescriptor targetGeomAtt;
40 42

  
43
            this.isExtraColumn = false;
41 44
            String sourceGeometryFieldName = this.parameters.getSourceGeometryFieldName();
42 45
            if( !StringUtils.isEmpty(sourceGeometryFieldName) ) {
43 46
                sourceGeomAtt = theSourceFeatureType.getAttributeDescriptor(sourceGeometryFieldName);
47
                if (sourceGeomAtt == null) {
48
                    sourceGeomAtt = theSourceFeatureType.getExtraColumns().get(sourceGeometryFieldName);
49
                    this.isExtraColumn = (sourceGeomAtt!=null);
50
                }
44 51
            }
45 52
            if (sourceGeomAtt == null) {
46 53
                // Si el origen no tiene geometria, no haremos nada con las
......
96 103
            } else {
97 104
                this.coord_trans = null;
98 105
            }
99
            this.sourceGeometryIndex = sourceGeomAtt.getIndex();
106
            if( this.isExtraColumn ) {
107
                this.sourceGeometryIndex = theSourceFeatureType.getExtraColumns().getIndexOf(sourceGeomAtt.getName());
108
            } else {
109
                this.sourceGeometryIndex = sourceGeomAtt.getIndex();
110
            }
100 111
            this.targetGeometryIndex = targetGeomAtt.getIndex();
112
            this.sourceGeometryName = sourceGeomAtt.getName();
101 113
        }
102 114

  
103 115
        private int getGeometryColumnCount(FeatureType featureType) {
......
123 135
            if( this.sourceGeometryIndex<0 || this.targetGeometryIndex<0 ) {
124 136
                return ExportServiceManager.FixGeometryStatus.STATE_OK;
125 137
            }
126
            Geometry geometry = sourceFeature.getGeometry(this.sourceGeometryIndex);
138
            Geometry geometry;
139
            if( this.isExtraColumn ) {
140
                geometry = sourceFeature.getGeometry(this.sourceGeometryName);            
141
            } else {
142
                geometry = sourceFeature.getGeometry(this.sourceGeometryIndex);            
143
            }
127 144
            ExportServiceManager.FixGeometryStatus check = serviceManager.fixGeometry(
128 145
                    this.parameters, 
129 146
                    this.coord_trans, 
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/export/swing/impl/panels/SelectAttributesPanel.java
160 160
                    return false;
161 161
                case COLUMN_FIELD_CALCULATED: {
162 162
                    ExportAttribute attr = this.attributes.get(rowIndex);
163
                    if (!attr.getDescriptor().isComputed()) {
164
                        return false;
165
                    }
163 166
                    DataType dataType = attr.getDescriptor().getDataType();
167
                    if( dataType.getType() == DataTypes.GEOMETRY ) {
168
                        return true;
169
                    }
164 170
                    if (dataType.isContainer()
165 171
                            || dataType.isObject()
166 172
                            || dataType.isDynObject()) {
167 173
                        return false;
168 174
                    }
169
                    if (attr.getDescriptor().isComputed()) {
170
                        return true;
171
                    }
172
                    return false;
175
                    return true;
173 176
                }
174 177
                default:
175 178
                    return true;
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/export/swing/impl/panels/SelectGeometryTypePanel.java
38 38
    private int[] geometrySubtypes;
39 39
    private final Map<Integer, String> geometryTypeNames;
40 40
    private final Map<Integer, String> geometrySubtypeNames;
41
    private boolean updateComponents;
41
//    private boolean updateComponents;
42 42
    private final JExportProcessPanel processPanel;
43 43

  
44 44
            
......
189 189
            model1.addElement(item);
190 190
        }
191 191
        this.cboSubtype.setModel(model1);
192
        this.updateComponents=true;
192
//        this.updateComponents=true;
193 193
        this.translate();
194 194
    }
195 195
    
......
235 235

  
236 236
    @Override
237 237
    public void enterPanel() {
238
        if( this.updateComponents ) {
238
//        if( this.updateComponents ) {
239 239
            ListElement.setSelected(cboType, this.parameters.getTargetGeometryTypeAsInt());
240 240
            ListElement.setSelected(cboSubtype, this.parameters.getTargetGeometrySubtype());
241
        }
242
        this.updateComponents=false;
241
//        }
242
//        this.updateComponents=false;
243 243
    }
244 244

  
245 245
    @Override
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/export/swing/impl/panels/SelectGeometryFieldPanel.java
7 7
import java.util.List;
8 8
import javax.swing.DefaultComboBoxModel;
9 9
import javax.swing.JComponent;
10
import org.gvsig.export.ExportAttributes;
10 11
import org.gvsig.export.ExportParameters;
11 12
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
12 13
import org.gvsig.tools.ToolsLocator;
......
18 19
import org.gvsig.export.swing.spi.ExportPanel;
19 20
import org.gvsig.export.swing.spi.ExportPanelValidationException;
20 21
import org.gvsig.export.swing.spi.ExportPanelsManager;
22
import org.gvsig.fmap.dal.feature.FeatureType;
23
import org.gvsig.fmap.geom.type.GeometryType;
21 24

  
22 25
/**
23 26
 *
......
63 66

  
64 67
    @Override
65 68
    public void nextPanel() {
66
        this.parameters.setSourceGeometryFieldName(this.getGeometryField());
69
        String geometryFieldName = this.getGeometryField();
70
        this.parameters.setSourceGeometryFieldName(geometryFieldName);
71
        FeatureType ft = this.parameters.getExportAttributes().getTargetFeatureType();
72
        FeatureAttributeDescriptor descriptor = ft.getAttributeDescriptor(geometryFieldName);
73
        if( descriptor!=null ) {
74
            GeometryType gt = descriptor.getGeomType();
75
            this.parameters.setTargetGeometryType(gt.getType());
76
            this.parameters.setTargetGeometrySubtype(gt.getSubType());
77
        }
67 78
    }
68 79

  
69 80
    @Override
......
75 86
            if (this.parameters.getSourceGeometryFieldName() == null ? defaultGeomName == null : this.parameters.getSourceGeometryFieldName().equals(defaultGeomName)) {
76 87
                this.rdoUseTheGeometryFieldByDefault.setSelected(true);
77 88
            } else {
78
                this.rdoUseTheGeometryFieldByDefault.setSelected(true);
89
                this.rdoSelectTheFieldToBeUsedAsGeometry.setSelected(true);
79 90
                String toCheck = this.parameters.getSourceGeometryFieldName();
80 91
                DefaultComboBoxModel model = (DefaultComboBoxModel) this.cboGeometryField.getModel();
81 92
                if (model.getIndexOf(toCheck) != -1) {
......
106 117
            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(false);
107 118
        }
108 119
        List<String> items = new ArrayList<>();
109
        for (FeatureAttributeDescriptor descr : this.parameters.getSourceFeatureType()) {
110
            items.add(descr.getName());
120
//        for (FeatureAttributeDescriptor descr : this.parameters.getSourceFeatureType()) {
121
//            items.add(descr.getName());
122
//        }
123
        for (ExportAttributes.ExportAttribute exportAttribute : this.parameters.getExportAttributes()) {
124
            items.add(exportAttribute.getName());
111 125
        }
112 126
        items.sort(new Comparator<String>() {
113 127
            @Override

Also available in: Unified diff