Revision 47557
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVSetProvider.java | ||
---|---|---|
180 | 180 |
} |
181 | 181 |
|
182 | 182 |
public CSVSetProvider(CSVStoreProvider store, FeatureQuery query, |
183 |
FeatureType featureType) |
|
183 |
FeatureType providerFeatureType, FeatureType featureType)
|
|
184 | 184 |
throws DataException { |
185 |
super(store, query, featureType); |
|
185 |
super(store, query, providerFeatureType, featureType);
|
|
186 | 186 |
} |
187 | 187 |
|
188 | 188 |
@Override |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVStoreProvider.java | ||
---|---|---|
857 | 857 |
} |
858 | 858 |
|
859 | 859 |
@Override |
860 |
public FeatureSetProvider createSet(FeatureQuery query, FeatureType providerFeatureType, FeatureType featureType) |
|
861 |
throws DataException { |
|
862 |
this.open(); |
|
863 |
if (this.virtualrows == null) { |
|
864 |
return super.createSet(query, providerFeatureType, featureType); |
|
865 |
} |
|
866 |
return new CSVSetProvider(this, query, providerFeatureType, featureType); |
|
867 |
} |
|
868 |
|
|
869 |
@Override |
|
860 | 870 |
public FeatureSetProvider createSet(FeatureQuery query, FeatureType featureType) |
861 | 871 |
throws DataException { |
862 | 872 |
this.open(); |
863 | 873 |
if (this.virtualrows == null) { |
864 | 874 |
return super.createSet(query, featureType); |
865 | 875 |
} |
866 |
return new CSVSetProvider(this, query, featureType); |
|
876 |
return new CSVSetProvider(this, query, featureType, featureType);
|
|
867 | 877 |
} |
868 | 878 |
|
869 | 879 |
public List<String> getRowByIndex(long index) { |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/java/org/gvsig/app/extension/ShowTable.java | ||
---|---|---|
22 | 22 |
*/ |
23 | 23 |
package org.gvsig.app.extension; |
24 | 24 |
|
25 |
import javax.swing.JComponent; |
|
26 | 25 |
import javax.swing.JOptionPane; |
27 | 26 |
import org.gvsig.andami.IconThemeHelper; |
28 | 27 |
import org.gvsig.andami.plugins.Extension; |
... | ... | |
38 | 37 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
39 | 38 |
import org.gvsig.fmap.dal.feature.FeatureType; |
40 | 39 |
import org.gvsig.fmap.mapcontext.MapContext; |
41 |
import org.gvsig.fmap.mapcontext.layers.CancelationException; |
|
42 | 40 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
43 | 41 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
42 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionAdapter; |
|
44 | 43 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent; |
45 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionListener; |
|
46 |
import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent; |
|
47 | 44 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
48 | 45 |
import org.gvsig.tools.ToolsLocator; |
49 | 46 |
import org.gvsig.tools.i18n.I18nManager; |
... | ... | |
57 | 54 |
* Extensi?n que abre las tablas asociadas a las vistas. |
58 | 55 |
* |
59 | 56 |
*/ |
60 |
public class ShowTable extends Extension implements LayerCollectionListener {
|
|
57 |
public class ShowTable extends Extension { |
|
61 | 58 |
|
62 | 59 |
@Override |
63 | 60 |
public boolean isEnabled() { |
... | ... | |
107 | 104 |
FLyrVect layerVect = (FLyrVect) layer; |
108 | 105 |
TableDocument tableDoc = tableManager.getTableDocument(layerVect); |
109 | 106 |
if (tableDoc == null) { |
110 |
tableDoc = (TableDocument) tableManager.createDocument(); |
|
111 |
tableDoc.setName(layerVect.getName()); |
|
112 |
tableDoc.setStore(layerVect.getFeatureStore()); |
|
107 |
tableDoc = tableManager.getTableDocument(layerVect.getFeatureStore()); |
|
108 |
if (tableDoc == null) { |
|
109 |
tableDoc = (TableDocument) tableManager.createDocument(); |
|
110 |
tableDoc.setName(layerVect.getName()); |
|
111 |
tableDoc.setStore(layerVect.getFeatureStore()); |
|
112 |
layerVect.getParentLayer().addLayerCollectionListener(new LayerCollectionAdapter() { |
|
113 |
@Override |
|
114 |
public void layerRemoved(LayerCollectionEvent e) { |
|
115 |
FLayer layer = e.getAffectedLayer(); |
|
116 |
// Remove the related table document, if any |
|
117 |
if (layer == layerVect) { |
|
118 |
getTableManager().removeTableDocument((FLyrVect) layer); |
|
119 |
// If the parent layers has not other child layers, for sure there |
|
120 |
// are not related tables opened, don't need to listen |
|
121 |
// LayerCollectionEvents anymore. |
|
122 |
// TODO: remove us also when there are not any child layers with |
|
123 |
// related table documents |
|
124 |
FLayers layers = layer.getParentLayer(); |
|
125 |
if (layers != null && layers.getLayersCount() == 0) { |
|
126 |
layers.removeLayerCollectionListener(this); |
|
127 |
} |
|
128 |
} |
|
129 |
} |
|
130 |
}); |
|
131 |
project.addDocument(tableDoc); |
|
132 |
} |
|
113 | 133 |
tableDoc.setAssociatedLayer(layerVect); |
114 |
layerVect.getParentLayer().addLayerCollectionListener(this); |
|
115 |
project.addDocument(tableDoc); |
|
116 | 134 |
} |
117 | 135 |
try { |
118 | 136 |
FeatureStore store = tableDoc.getDataStore(); |
... | ... | |
159 | 177 |
public void initialize() { |
160 | 178 |
IconThemeHelper.registerIcon("action", "layer-show-attributes-table", this); |
161 | 179 |
} |
162 |
|
|
163 |
@Override |
|
164 |
public void layerAdded(LayerCollectionEvent e) { |
|
165 |
// Nothing to do |
|
166 |
} |
|
167 |
|
|
168 |
@Override |
|
169 |
public void layerMoved(LayerPositionEvent e) { |
|
170 |
// Nothing to do |
|
171 |
} |
|
172 |
|
|
173 |
@Override |
|
174 |
public void layerRemoved(LayerCollectionEvent e) { |
|
175 |
FLayer layer = e.getAffectedLayer(); |
|
176 |
// Just in case we where listening to a group of layers being removed |
|
177 |
// remove us from there |
|
178 |
if (layer instanceof FLayers) { |
|
179 |
((FLayers) layer).removeLayerCollectionListener(this); |
|
180 |
} |
|
181 |
// Remove the related table document, if any |
|
182 |
if (layer instanceof FLyrVect) { |
|
183 |
getTableManager().removeTableDocument((FLyrVect) layer); |
|
184 |
// If the parent layers has not other child layers, for sure there |
|
185 |
// are not related tables opened, don't need to listen |
|
186 |
// LayerCollectionEvents anymore. |
|
187 |
// TODO: remove us also when there are not any child layers with |
|
188 |
// related table documents |
|
189 |
FLayers layers = layer.getParentLayer(); |
|
190 |
if (layers != null && layers.getLayersCount() == 0) { |
|
191 |
layers.removeLayerCollectionListener(this); |
|
192 |
} |
|
193 |
} |
|
194 |
} |
|
195 |
|
|
196 |
@Override |
|
197 |
public void layerAdding(LayerCollectionEvent e) throws CancelationException { |
|
198 |
// Nothing to do |
|
199 |
} |
|
200 |
|
|
201 |
@Override |
|
202 |
public void layerMoving(LayerPositionEvent e) throws CancelationException { |
|
203 |
// Nothing to do |
|
204 |
} |
|
205 |
|
|
206 |
@Override |
|
207 |
public void layerRemoving(LayerCollectionEvent e) |
|
208 |
throws CancelationException { |
|
209 |
// Nothing to do |
|
210 |
} |
|
211 |
|
|
212 |
@Override |
|
213 |
public void visibilityChanged(LayerCollectionEvent e) |
|
214 |
throws CancelationException { |
|
215 |
// Nothing to do |
|
216 |
} |
|
217 | 180 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/java/org/gvsig/app/project/documents/table/TableManager.java | ||
---|---|---|
531 | 531 |
return null; |
532 | 532 |
} |
533 | 533 |
|
534 |
public TableDocument getTableDocument(FeatureStore store) { |
|
535 |
if (store == null) { |
|
536 |
return null; |
|
537 |
} |
|
538 |
List<Document> tableDocs = |
|
539 |
getProject().getDocuments(TableManager.TYPENAME); |
|
540 |
for (Document document : tableDocs) { |
|
541 |
if (store == ((TableDocument) document).getFeatureStore()) { |
|
542 |
return (TableDocument) document; |
|
543 |
} |
|
544 |
} |
|
545 |
return null; |
|
546 |
} |
|
547 |
|
|
534 | 548 |
public void removeTableDocument(VectorLayer layer) { |
535 | 549 |
TableDocument doc = getTableDocument(layer); |
536 | 550 |
// Only remove it if it exists |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.daltransform.app/org.gvsig.daltransform.app.join/src/main/java/org/gvsig/app/join/RemoveTableUnion.java | ||
---|---|---|
30 | 30 |
import org.gvsig.app.join.dal.feature.JoinTransform; |
31 | 31 |
import org.gvsig.app.project.documents.table.TableDocument; |
32 | 32 |
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel; |
33 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
33 | 34 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
34 | 35 |
import org.gvsig.fmap.dal.feature.FeatureStoreTransform; |
35 | 36 |
import org.gvsig.fmap.dal.feature.FeatureStoreTransforms; |
37 |
import org.gvsig.fmap.mapcontext.layers.vectorial.VectorLayer; |
|
36 | 38 |
|
37 | 39 |
|
38 | 40 |
/** |
... | ... | |
56 | 58 |
TableDocument pt = t.getModel(); |
57 | 59 |
FeatureStore fs = pt.getStore(); |
58 | 60 |
this.removeJoinTransfor(fs); |
61 |
VectorLayer layer = pt.getAssociatedLayer(); |
|
62 |
if(layer != null){ |
|
63 |
FeatureAttributeDescriptor geomAttr = fs.getDefaultFeatureTypeQuietly().getDefaultGeometryAttribute(); |
|
64 |
if(geomAttr == null){ |
|
65 |
layer.getParentLayer().remove(layer); |
|
66 |
} |
|
67 |
} |
|
68 |
|
|
59 | 69 |
|
60 | 70 |
// TODO |
61 | 71 |
// if (fs instanceof JoinFeatureStore) { |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.daltransform.app/org.gvsig.daltransform.app.join/src/main/java/org/gvsig/app/join/dal/feature/JoinTransform.java | ||
---|---|---|
282 | 282 |
|
283 | 283 |
String attName = featureAttributeDescriptor.getName(); |
284 | 284 |
if( (prefix != null) && (!prefix.equals("")) ) { |
285 |
attName = prefix + "_" + attName;
|
|
285 |
attName = prefix + attName; |
|
286 | 286 |
} |
287 | 287 |
|
288 | 288 |
FeatureAttributeDescriptor geomAttr = targetFeatureType.getDefaultGeometryAttribute(); |
... | ... | |
290 | 290 |
// If an attribute already exists, calculate an alternate name and add it to our type |
291 | 291 |
int j = 0; |
292 | 292 |
while( targetFeatureType.getIndex(attName) >= 0 ) { |
293 |
attName = targetFeatureType.getAttributeDescriptor(attName).getName() + "_" + ++j;
|
|
293 |
attName = targetFeatureType.getAttributeDescriptor(attName).getName() + (++j);
|
|
294 | 294 |
} |
295 | 295 |
|
296 | 296 |
EditableFeatureAttributeDescriptor editableFeatureAttributeDescriptor |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.daltransform.app/org.gvsig.daltransform.app.mainplugin/src/main/java/org/gvsig/daltransform/swing/impl/DataTransformSelectionAction.java | ||
---|---|---|
51 | 51 |
package org.gvsig.daltransform.swing.impl; |
52 | 52 |
|
53 | 53 |
import javax.swing.JOptionPane; |
54 |
|
|
55 | 54 |
import jwizardcomponent.FinishAction; |
56 |
|
|
57 |
import org.slf4j.Logger; |
|
58 |
import org.slf4j.LoggerFactory; |
|
59 |
|
|
60 | 55 |
import org.gvsig.andami.PluginServices; |
61 | 56 |
import org.gvsig.app.ApplicationLocator; |
57 |
import org.gvsig.app.project.ProjectManager; |
|
58 |
import org.gvsig.app.project.documents.table.TableDocument; |
|
59 |
import org.gvsig.app.project.documents.table.TableManager; |
|
62 | 60 |
import org.gvsig.daltransform.swing.DataTransformGui; |
63 |
import org.gvsig.fmap.dal.exception.DataException; |
|
64 | 61 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
65 | 62 |
import org.gvsig.fmap.dal.feature.FeatureStoreTransform; |
66 | 63 |
import org.gvsig.fmap.mapcontext.MapContext; |
67 | 64 |
import org.gvsig.fmap.mapcontext.MapContextLocator; |
68 | 65 |
import org.gvsig.fmap.mapcontext.MapContextManager; |
69 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
|
|
66 |
import org.gvsig.fmap.mapcontext.layers.CancelationException;
|
|
70 | 67 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
68 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
|
69 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionAdapter; |
|
70 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent; |
|
71 |
import org.gvsig.fmap.mapcontext.layers.LayerCollectionListener; |
|
72 |
import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent; |
|
73 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
74 |
import org.gvsig.fmap.mapcontext.layers.vectorial.VectorLayer; |
|
71 | 75 |
import org.gvsig.i18n.Messages; |
76 |
import org.slf4j.Logger; |
|
77 |
import org.slf4j.LoggerFactory; |
|
72 | 78 |
|
73 | 79 |
|
74 | 80 |
/** |
... | ... | |
83 | 89 |
this.dataTransformWizard = dataTransformWizard; |
84 | 90 |
} |
85 | 91 |
|
86 |
/* (non-Javadoc)
|
|
92 |
/* (non-Javadoc)
|
|
87 | 93 |
* @see jwizardcomponent.Action#performAction() |
88 |
*/ |
|
89 |
public void performAction() { |
|
90 |
|
|
91 |
/* |
|
94 |
*/ |
|
95 |
@Override |
|
96 |
public void performAction() { |
|
97 |
|
|
98 |
/* |
|
92 | 99 |
* For layer attributes table, this depends on the user |
93 | 100 |
* decision. For tables without layer, for example, this is |
94 | 101 |
* always false |
95 |
*/ |
|
96 |
boolean result_added_separately = dataTransformWizard.isLayerLoaded(); |
|
97 |
//Gets the selected transformation |
|
98 |
DataTransformGui featureTransformGui = dataTransformWizard.getDataTransformGui(); |
|
99 |
|
|
100 |
//Gets the selected FeatureStore |
|
101 |
FeatureStore fsto = dataTransformWizard.getFeatureStore(); |
|
102 |
// FeatureStore cloned_store = null; |
|
103 |
|
|
104 |
if (result_added_separately) { |
|
105 |
try { |
|
106 |
/* |
|
107 |
* Clone if added separately |
|
108 |
*/ |
|
109 |
fsto = (FeatureStore) fsto.clone(); |
|
110 |
} catch (CloneNotSupportedException e1) { |
|
111 |
// FeatureStore always implements the clone method |
|
112 |
} |
|
113 |
} |
|
102 |
*/ |
|
103 |
boolean result_added_separately = dataTransformWizard.isLayerLoaded(); |
|
104 |
//Gets the selected transformation |
|
105 |
DataTransformGui featureTransformGui = dataTransformWizard.getDataTransformGui(); |
|
114 | 106 |
|
115 |
try { |
|
116 |
//Gets the transform |
|
117 |
FeatureStoreTransform fst = null; |
|
118 |
|
|
119 |
// Apply the transformation |
|
120 |
fst = featureTransformGui.createFeatureStoreTransform(fsto); |
|
121 |
fsto.getTransforms().add(fst); |
|
107 |
//Gets the selected FeatureStore |
|
108 |
FeatureStore fsto = dataTransformWizard.getFeatureStore(); |
|
109 |
// FeatureStore cloned_store = null; |
|
122 | 110 |
|
123 |
//Create and load a new layer... |
|
124 |
if (result_added_separately){ |
|
125 |
MapContextManager manager = MapContextLocator.getMapContextManager(); |
|
126 |
FLayer layer = manager.createLayer( |
|
127 |
featureTransformGui.toString(), |
|
128 |
fsto); |
|
129 |
|
|
130 |
MapContext mco = dataTransformWizard.getMapContext(); |
|
131 |
if (mco != null) { |
|
132 |
mco.getLayers().addLayer(layer); |
|
133 |
} else { |
|
134 |
ApplicationLocator.getManager().messageDialog( |
|
135 |
Messages.getText("_Layer_was_not_added_to_any_view"), |
|
136 |
Messages.getText("transform_apply"), |
|
137 |
JOptionPane.ERROR_MESSAGE); |
|
138 |
} |
|
139 |
|
|
140 |
layer.dispose(); |
|
141 |
} |
|
142 |
} catch (DataException e) { |
|
143 |
logger.error("Error creating the transformation", e); |
|
144 |
} catch (LoadLayerException e) { |
|
145 |
logger.error("Error loading the layer", e); |
|
146 |
} |
|
147 |
//Closing the window |
|
148 |
PluginServices.getMDIManager().closeWindow(dataTransformWizard); |
|
149 |
} |
|
111 |
// if (result_added_separately) { |
|
112 |
// try { |
|
113 |
// /* |
|
114 |
// * Clone if added separately |
|
115 |
// */ |
|
116 |
// fsto = (FeatureStore) fsto.clone(); |
|
117 |
// } catch (CloneNotSupportedException e1) { |
|
118 |
// // FeatureStore always implements the clone method |
|
119 |
// } |
|
120 |
// } |
|
121 |
try { |
|
122 |
//Gets the transform |
|
123 |
FeatureStoreTransform fst = null; |
|
150 | 124 |
|
125 |
// Apply the transformation |
|
126 |
fst = featureTransformGui.createFeatureStoreTransform(fsto); |
|
127 |
fsto.getTransforms().add(fst); |
|
128 |
|
|
129 |
//Create and load a new layer... |
|
130 |
if (result_added_separately) { |
|
131 |
MapContextManager manager = MapContextLocator.getMapContextManager(); |
|
132 |
VectorLayer layer = (VectorLayer) manager.createLayer( |
|
133 |
featureTransformGui.toString(), |
|
134 |
fsto); |
|
135 |
|
|
136 |
MapContext mco = dataTransformWizard.getMapContext(); |
|
137 |
if (mco != null) { |
|
138 |
mco.getLayers().addLayer(layer); |
|
139 |
} else { |
|
140 |
ApplicationLocator.getManager().messageDialog( |
|
141 |
Messages.getText("_Layer_was_not_added_to_any_view"), |
|
142 |
Messages.getText("transform_apply"), |
|
143 |
JOptionPane.ERROR_MESSAGE); |
|
144 |
} |
|
145 |
ProjectManager projectManager = ApplicationLocator.getProjectManager(); |
|
146 |
final TableManager tableManager = (TableManager) projectManager.getDocumentManager(TableManager.TYPENAME); |
|
147 |
TableDocument tableDoc = tableManager.getTableDocument(layer); |
|
148 |
if (tableDoc == null) { |
|
149 |
tableDoc = tableManager.getTableDocument(layer.getFeatureStore()); |
|
150 |
if (tableDoc == null) { |
|
151 |
tableDoc = (TableDocument) tableManager.createDocument(); |
|
152 |
tableDoc.setName(layer.getName()); |
|
153 |
tableDoc.setStore(layer.getFeatureStore()); |
|
154 |
layer.getParentLayer().addLayerCollectionListener(new LayerCollectionAdapter() { |
|
155 |
@Override |
|
156 |
public void layerRemoved(LayerCollectionEvent e) { |
|
157 |
FLayer affectedLayer = e.getAffectedLayer(); |
|
158 |
if (layer == affectedLayer) { |
|
159 |
// Just in case we where listening to a group of layers being removed |
|
160 |
// remove us from there |
|
161 |
// if (layer instanceof FLayers) { |
|
162 |
// ((FLayers) layer).removeLayerCollectionListener(this); |
|
163 |
// } |
|
164 |
// Remove the related table document, if any |
|
165 |
if (layer instanceof FLyrVect) { |
|
166 |
TableDocument tableDoc = tableManager.getTableDocument(layer); |
|
167 |
tableDoc.setAssociatedLayer(null); |
|
168 |
// If the parent layers has not other child layers, for sure there |
|
169 |
// are not related tables opened, don't need to listen |
|
170 |
// LayerCollectionEvents anymore. |
|
171 |
// TODO: remove us also when there are not any child layers with |
|
172 |
// related table documents |
|
173 |
FLayers layers = layer.getParentLayer(); |
|
174 |
if (layers != null && layers.getLayersCount() == 0) { |
|
175 |
layers.removeLayerCollectionListener(this); |
|
176 |
} |
|
177 |
} |
|
178 |
} |
|
179 |
} |
|
180 |
}); |
|
181 |
projectManager.getCurrentProject().addDocument(tableDoc); |
|
182 |
} |
|
183 |
} |
|
184 |
tableDoc.setAssociatedLayer(layer); |
|
185 |
|
|
186 |
layer.dispose(); |
|
187 |
} |
|
188 |
} catch (Exception e) { |
|
189 |
logger.error("Error loading the layer", e); |
|
190 |
} |
|
191 |
//Closing the window |
|
192 |
PluginServices.getMDIManager().closeWindow(dataTransformWizard); |
|
193 |
} |
|
194 |
|
|
151 | 195 |
} |
152 | 196 |
|
Also available in: Unified diff