svn-gvsig-desktop / trunk / extensions / extGeoProcessing / src / com / iver / cit / gvsig / geoprocess / core / util / ViewTools.java @ 38039
History | View | Annotate | Download (1.69 KB)
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 |
} |