Revision 23310
trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/tocMenu/TocEditingLayer.java | ||
---|---|---|
1 |
package org.gvsig.gvsig3dgui.tocMenu; |
|
2 |
|
|
3 |
import org.gvsig.gvsig3d.cacheservices.OSGCacheService; |
|
4 |
import org.gvsig.gvsig3dgui.layer.TransparencyPanel; |
|
5 |
import org.gvsig.gvsig3dgui.view.View3D; |
|
6 |
|
|
7 |
import com.iver.ai2.gvsig3d.map3d.layers.Layer3DProps; |
|
8 |
import com.iver.andami.PluginServices; |
|
9 |
import com.iver.cit.gvsig.fmap.MapContext; |
|
10 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
|
11 |
import com.iver.cit.gvsig.project.documents.view.IProjectView; |
|
12 |
import com.iver.cit.gvsig.project.documents.view.gui.BaseView; |
|
13 |
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction; |
|
14 |
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem; |
|
15 |
|
|
16 |
public class TocEditingLayer extends AbstractTocContextMenuAction { |
|
17 |
|
|
18 |
public String getGroup() { |
|
19 |
return "group6"; // FIXME |
|
20 |
} |
|
21 |
|
|
22 |
public int getGroupOrder() { |
|
23 |
return 60; |
|
24 |
} |
|
25 |
|
|
26 |
public int getOrder() { |
|
27 |
return 10; |
|
28 |
} |
|
29 |
|
|
30 |
public boolean isEnabled(ITocItem item, FLayer[] selectedItems) { |
|
31 |
// return selectedItems.length == 1; |
|
32 |
|
|
33 |
// return true; |
|
34 |
|
|
35 |
boolean enable = false; |
|
36 |
|
|
37 |
for (int i = 0; i < selectedItems.length; i++) { |
|
38 |
FLayer layer = selectedItems[i]; |
|
39 |
int type = Layer3DProps.getLayer3DProps(layer).getType(); |
|
40 |
if (type == Layer3DProps.layer3DOSG) { |
|
41 |
enable = true; |
|
42 |
} |
|
43 |
} |
|
44 |
|
|
45 |
return enable; |
|
46 |
|
|
47 |
// if (selectedItems.length == 1 && selectedItems[0] instanceof FLyrVect |
|
48 |
// && selectedItems[0].isAvailable()) { |
|
49 |
// return true; |
|
50 |
// } |
|
51 |
// if (selectedItems.length == 1 && selectedItems[0] instanceof FLyrWMS |
|
52 |
// && selectedItems[0].isAvailable()) { |
|
53 |
// return true; |
|
54 |
// } |
|
55 |
// return false; |
|
56 |
|
|
57 |
} |
|
58 |
|
|
59 |
public boolean isVisible(ITocItem item, FLayer[] selectedItems) { |
|
60 |
com.iver.andami.ui.mdiManager.IWindow f = PluginServices |
|
61 |
.getMDIManager().getActiveWindow(); |
|
62 |
|
|
63 |
if (f == null) { |
|
64 |
return false; |
|
65 |
} |
|
66 |
|
|
67 |
if (!isTocItemBranch(item)) |
|
68 |
return false; |
|
69 |
|
|
70 |
// Only isVisible = true, where the view3D have layers |
|
71 |
if (f instanceof View3D) { |
|
72 |
BaseView vista = (BaseView) f; |
|
73 |
IProjectView model = vista.getModel(); |
|
74 |
MapContext mapa = model.getMapContext(); |
|
75 |
|
|
76 |
// return mapa.getLayers().getLayersCount() > 0; |
|
77 |
|
|
78 |
FLayer[] selectedExtent = mapa.getLayers().getActives(); |
|
79 |
|
|
80 |
// If there is not one and is available |
|
81 |
if (selectedExtent.length == 1 && selectedExtent[0].isAvailable()) { |
|
82 |
// // && (selectedExtent[0] instanceof FLyrVect)) { |
|
83 |
FLayer lyr3D = selectedExtent[0]; |
|
84 |
Layer3DProps props = Layer3DProps.getLayer3DProps(lyr3D); |
|
85 |
return (props.getType() == Layer3DProps.layer3DOSG); |
|
86 |
} |
|
87 |
|
|
88 |
} |
|
89 |
return false; |
|
90 |
} |
|
91 |
|
|
92 |
public void execute(ITocItem item, FLayer[] selectedItems) { |
|
93 |
|
|
94 |
|
|
95 |
for (int i = 0; i < selectedItems.length; i++) { |
|
96 |
FLayer layer = selectedItems[i]; |
|
97 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(layer); |
|
98 |
if (props3D.getType() == Layer3DProps.layer3DOSG) { |
|
99 |
OSGCacheService osgCacheService = (OSGCacheService) props3D.getCacheService(); |
|
100 |
if ( props3D.isEditing()){ |
|
101 |
osgCacheService.endEditing(); |
|
102 |
}else{ |
|
103 |
osgCacheService.startEditing(); |
|
104 |
} |
|
105 |
} |
|
106 |
} |
|
107 |
|
|
108 |
} |
|
109 |
|
|
110 |
public String getText() { |
|
111 |
String result = "Desactivar edicion 3D"; |
|
112 |
|
|
113 |
com.iver.andami.ui.mdiManager.IWindow f = PluginServices |
|
114 |
.getMDIManager().getActiveWindow(); |
|
115 |
|
|
116 |
// Only isVisible = true, where the view3D have layers |
|
117 |
if (f instanceof View3D) { |
|
118 |
BaseView vista = (BaseView) f; |
|
119 |
IProjectView model = vista.getModel(); |
|
120 |
MapContext mapa = model.getMapContext(); |
|
121 |
|
|
122 |
FLayer[] activeLayers = mapa.getLayers().getActives(); |
|
123 |
|
|
124 |
// If there is not one and is available |
|
125 |
if (activeLayers.length == 1 && activeLayers[0].isAvailable()) { |
|
126 |
FLayer lyr3D = activeLayers[0]; |
|
127 |
Layer3DProps props = Layer3DProps.getLayer3DProps(lyr3D); |
|
128 |
if (!(props.isEditing()) |
|
129 |
&& (props.getType() == Layer3DProps.layer3DOSG)) { |
|
130 |
result = "Activar edici?n 3D"; |
|
131 |
} |
|
132 |
} |
|
133 |
} |
|
134 |
|
|
135 |
return result; |
|
136 |
} |
|
137 |
|
|
138 |
} |
Also available in: Unified diff