Revision 24227
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/labeling/OnSelectionLabeled.java | ||
---|---|---|
59 | 59 |
*/ |
60 | 60 |
package org.gvsig.symbology.fmap.labeling; |
61 | 61 |
|
62 |
import java.util.BitSet; |
|
63 |
|
|
62 | 64 |
import org.gvsig.symbology.fmap.drivers.featureiterators.FeatureSelectionIterator; |
63 | 65 |
|
64 | 66 |
import com.hardcode.gdbms.driver.exceptions.ReadDriverException; |
65 | 67 |
import com.iver.cit.gvsig.fmap.ViewPort; |
68 |
import com.iver.cit.gvsig.fmap.core.IFeature; |
|
66 | 69 |
import com.iver.cit.gvsig.fmap.drivers.IFeatureIterator; |
67 | 70 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
68 | 71 |
import com.iver.cit.gvsig.fmap.rendering.styling.labeling.DefaultLabelingMethod; |
... | ... | |
81 | 84 |
public String getClassName() { |
82 | 85 |
return getClass().getName(); |
83 | 86 |
} |
84 |
|
|
87 |
|
|
88 |
public IFeatureIterator getFeatureIteratorByLabelClass(FLyrVect layer, LabelClass lc, ViewPort viewPort, String[] usedFields) |
|
89 |
throws ReadDriverException { |
|
90 |
|
|
91 |
String sqlFields = ""; |
|
92 |
for (int i = 0; i < usedFields.length; i++) { |
|
93 |
sqlFields += usedFields[i]; |
|
94 |
if (i < usedFields.length -1) sqlFields += ", "; |
|
95 |
} |
|
96 |
String fieldNames[] = layer.getSource().getRecordset().getFieldNames(); |
|
97 |
StringBuilder sql = new StringBuilder(); |
|
98 |
sql.append("select "); |
|
99 |
for (int i=0; i<fieldNames.length-1; i++) { |
|
100 |
sql.append(fieldNames[i]); |
|
101 |
sql.append(","); |
|
102 |
} |
|
103 |
sql.append(fieldNames[fieldNames.length-1]); |
|
104 |
sql.append(" from "); |
|
105 |
sql.append(layer.getRecordset().getName()); |
|
106 |
if(lc.isUseSqlQuery()){ |
|
107 |
sql.append(" where "); |
|
108 |
sql.append(lc.getSQLQuery()); |
|
109 |
} |
|
110 |
sql.append(";"); |
|
111 |
|
|
112 |
return layer.getSource().getFeatureIterator(sql.toString(), layer.getProjection(),true); |
|
113 |
|
|
114 |
|
|
115 |
} |
|
116 |
|
|
117 |
|
|
85 | 118 |
} |
Also available in: Unified diff