Revision 23310

View differences:

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