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