Revision 38039
trunk/extensions/extGeoProcessing/src/com/iver/cit/gvsig/geoprocess/core/util/ViewTools.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.geoprocess.core.util; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
|
|
5 |
import com.iver.andami.PluginServices; |
|
6 |
import com.iver.cit.gvsig.ProjectExtension; |
|
7 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
|
8 |
import com.iver.cit.gvsig.fmap.layers.FLayers; |
|
9 |
import com.iver.cit.gvsig.project.Project; |
|
10 |
import com.iver.cit.gvsig.project.documents.ProjectDocument; |
|
11 |
import com.iver.cit.gvsig.project.documents.view.ProjectView; |
|
12 |
import com.iver.cit.gvsig.project.documents.view.ProjectViewFactory; |
|
13 |
|
|
14 |
public class ViewTools { |
|
15 |
|
|
16 |
public static ProjectView getViewFromLayer(final FLayer layer) { |
|
17 |
|
|
18 |
final Project project = ((ProjectExtension) PluginServices.getExtension(ProjectExtension.class)).getProject(); |
|
19 |
final ArrayList<ProjectDocument> views = project.getDocumentsByType(ProjectViewFactory.registerName); |
|
20 |
|
|
21 |
for (int i = 0; i < views.size(); i++) { |
|
22 |
final ProjectView view = (ProjectView) views.get(i); |
|
23 |
final FLayers flayers = view.getMapContext().getLayers(); |
|
24 |
for (int j = 0; j < flayers.getLayersCount(); j++) { |
|
25 |
final FLayer lyr = flayers.getLayer(j); |
|
26 |
if (lyr.equals(layer)) { |
|
27 |
return view; |
|
28 |
} |
|
29 |
final ArrayList layerList = new ArrayList(); |
|
30 |
splitLayerGroup(lyr, layerList); |
|
31 |
for (int k = 0; k < layerList.size(); k++) { |
|
32 |
final FLayer lyr2 = ((FLayer) layerList.get(k)); |
|
33 |
if (lyr2.equals(layer)) { |
|
34 |
return view; |
|
35 |
} |
|
36 |
} |
|
37 |
} |
|
38 |
} |
|
39 |
return null; |
|
40 |
} |
|
41 |
|
|
42 |
private static void splitLayerGroup(final FLayer layer, final ArrayList result) { |
|
43 |
int i; |
|
44 |
FLayers layerGroup; |
|
45 |
if (layer instanceof FLayers) { |
|
46 |
layerGroup = (FLayers) layer; |
|
47 |
for (i = 0; i < layerGroup.getLayersCount(); i++) { |
|
48 |
splitLayerGroup(layerGroup.getLayer(i), result); |
|
49 |
} |
|
50 |
} |
|
51 |
else { |
|
52 |
result.add(layer); |
|
53 |
} |
|
54 |
} |
|
55 |
} |
trunk/extensions/extGeoProcessing/src/com/iver/cit/gvsig/geoprocess/impl/buffer/BufferGeoprocessController.java | ||
---|---|---|
108 | 108 |
import com.iver.cit.gvsig.geoprocess.core.gui.AddResultLayerTask; |
109 | 109 |
import com.iver.cit.gvsig.geoprocess.core.gui.IGeoprocessPanel; |
110 | 110 |
import com.iver.cit.gvsig.geoprocess.core.gui.IGeoprocessUserEntries; |
111 |
import com.iver.cit.gvsig.geoprocess.core.util.ViewTools; |
|
111 | 112 |
import com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferGeoprocess; |
112 | 113 |
import com.iver.cit.gvsig.geoprocess.impl.buffer.fmap.BufferVisitor; |
113 | 114 |
import com.iver.cit.gvsig.geoprocess.impl.buffer.gui.BufferPanelIF; |
115 |
import com.iver.cit.gvsig.project.documents.view.ProjectView; |
|
114 | 116 |
import com.iver.cit.gvsig.project.documents.view.gui.View; |
115 | 117 |
import com.iver.utiles.swing.threads.IMonitorableTask; |
116 | 118 |
import com.iver.utiles.swing.threads.MonitorableDecoratorMainFirst; |
... | ... | |
232 | 234 |
cap = BufferVisitor.CAP_SQUARE; |
233 | 235 |
params.put("cap", new Byte(cap)); |
234 | 236 |
|
235 |
|
|
236 |
IProjection proj = ((View)PluginServices. |
|
237 |
getMDIManager(). |
|
238 |
getActiveWindow()). |
|
239 |
getMapControl(). |
|
240 |
getViewPort(). |
|
241 |
getProjection(); |
|
237 |
ProjectView view = ViewTools.getViewFromLayer(inputLayer); |
|
238 |
IProjection proj = view.getMapContext().getViewPort().getProjection(); |
|
242 | 239 |
params.put("projection", proj); |
243 | 240 |
|
244 | 241 |
|
245 |
int distanceUnits = ((View)PluginServices. |
|
246 |
getMDIManager(). |
|
247 |
getActiveWindow()).getMapControl().getViewPort().getDistanceUnits(); |
|
242 |
int distanceUnits = view.getMapContext().getViewPort().getDistanceUnits(); |
|
248 | 243 |
params.put("distanceunits", new Integer(distanceUnits)); |
249 | 244 |
|
250 | 245 |
|
251 | 246 |
boolean isProjected = proj.isProjected(); |
252 | 247 |
int mapUnits = -1; |
253 | 248 |
if(isProjected){ |
254 |
mapUnits = ((View)PluginServices. |
|
255 |
getMDIManager(). |
|
256 |
getActiveWindow()).getMapControl().getViewPort().getMapUnits(); |
|
249 |
mapUnits = view.getMapContext().getViewPort().getMapUnits(); |
|
257 | 250 |
}else{ |
258 | 251 |
mapUnits = 1; |
259 | 252 |
} |
Also available in: Unified diff