Revision 24769

View differences:

trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/FullScreenPanel.java
1
package org.gvsig.gvsig3dgui.display;
2

  
3
import java.awt.event.ActionEvent;
4
import java.io.IOException;
5

  
6
import javax.swing.AbstractButton;
7
import javax.swing.JButton;
8
import javax.swing.JCheckBox;
9
import javax.swing.JFileChooser;
10
import javax.swing.JLabel;
11
import javax.swing.JPanel;
12
import javax.swing.JTextField;
13
import javax.swing.event.ChangeEvent;
14
import javax.swing.event.ChangeListener;
15
import javax.swing.text.JTextComponent;
16

  
17
import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
18
import org.gvsig.gvsig3dgui.view.View3D;
19
import org.gvsig.osgvp.EventHandler;
20
import org.gvsig.osgvp.Vec4;
21
import org.gvsig.osgvp.exceptions.node.NodeException;
22
import org.gvsig.osgvp.planets.CustomTerrainManipulator;
23
import org.gvsig.osgvp.planets.PlanetViewer;
24
import org.gvsig.osgvp.viewer.DisplaySettings;
25
import org.gvsig.osgvp.viewer.OSGViewer;
26
import org.gvsig.osgvp.viewer.manipulator.CameraManipulator;
27

  
28
import com.iver.andami.PluginServices;
29
import com.iver.andami.ui.mdiManager.IWindow;
30
import com.iver.andami.ui.mdiManager.IWindowListener;
31
import com.iver.andami.ui.mdiManager.WindowInfo;
32

  
33
public class FullScreenPanel extends GridBagLayoutPanel implements IWindow,
34
		ChangeListener, IWindowListener {
35

  
36
	private WindowInfo m_viewinfo;
37

  
38
	private int width = 400;
39

  
40
	private int height = 160;
41

  
42
	private View3D view3D;
43

  
44
	private JPanel jPanel1;
45

  
46
	private JButton jButton2;
47

  
48
	private JButton jButton1;
49

  
50
	private JLabel jLabel2;
51

  
52
	private JTextField jTextField1;
53

  
54
	private JButton jButton3;
55

  
56
	private JCheckBox jCheckBox1;
57

  
58
	public FullScreenPanel() {
59

  
60
		if (PluginServices.getMDIManager().getActiveWindow() instanceof View3D) {
61
			view3D = (View3D) PluginServices.getMDIManager().getActiveWindow();
62
			initialize();
63
		}
64

  
65
		else
66
			PluginServices.getMDIManager().closeWindow(this);
67

  
68
	}
69

  
70
	public Object getWindowModel() {
71
		return view3D;
72
	}
73

  
74
	public void initialize() {
75

  
76
		java.awt.GridBagConstraints gridBagConstraints;
77

  
78
		jPanel1 = new javax.swing.JPanel();
79
		jButton2 = new javax.swing.JButton();
80
		jButton1 = new javax.swing.JButton();
81
		jLabel2 = new javax.swing.JLabel();
82
		jTextField1 = new javax.swing.JTextField();
83
		jButton3 = new javax.swing.JButton();
84
		jCheckBox1 = new javax.swing.JCheckBox();
85

  
86
		
87
		setLayout(new java.awt.GridBagLayout());
88

  
89
		jPanel1.setLayout(new java.awt.GridBagLayout());
90

  
91
		jButton2.setText("Cancelar");
92
		gridBagConstraints = new java.awt.GridBagConstraints();
93
		gridBagConstraints.gridx = 2;
94
		gridBagConstraints.gridy = 4;
95
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
96
		gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
97
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
98
		jPanel1.add(jButton2, gridBagConstraints);
99

  
100
		jButton1.setText("Aceptar");
101
		jButton1.addActionListener(new java.awt.event.ActionListener() {
102
			public void actionPerformed(java.awt.event.ActionEvent evt) {
103
				jButton1ActionPerformed(evt);
104
			}
105
		});
106
	
107
		gridBagConstraints = new java.awt.GridBagConstraints();
108
		gridBagConstraints.gridx = 1;
109
		gridBagConstraints.gridy = 4;
110
		gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
111
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12);
112
		jPanel1.add(jButton1, gridBagConstraints);
113

  
114
		jLabel2.setText("Archivo de Configuracion");
115
		gridBagConstraints = new java.awt.GridBagConstraints();
116
		gridBagConstraints.gridx = 0;
117
		gridBagConstraints.gridy = 0;
118
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 21);
119
		jPanel1.add(jLabel2, gridBagConstraints);
120
		gridBagConstraints = new java.awt.GridBagConstraints();
121
		gridBagConstraints.gridx = 1;
122
		gridBagConstraints.gridy = 0;
123
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
124
		gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
125
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
126
		jPanel1.add(jTextField1, gridBagConstraints);
127

  
128
		jButton3.setText("Browse");
129
		gridBagConstraints = new java.awt.GridBagConstraints();
130
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
131
		jPanel1.add(jButton3, gridBagConstraints);
132

  
133
		jCheckBox1.setText("Sincronizar camaras");
134
		gridBagConstraints = new java.awt.GridBagConstraints();
135
		gridBagConstraints.gridx = 0;
136
		gridBagConstraints.gridy = 2;
137
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
138
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 0);
139
		jPanel1.add(jCheckBox1, gridBagConstraints);
140

  
141
		
142
		
143
		add(jPanel1, new java.awt.GridBagConstraints());
144

  
145
		
146

  
147
	}
148

  
149
	
150
	protected void jButton1ActionPerformed(ActionEvent evt) {
151
		view3D = (View3D) PluginServices.getMDIManager().getActiveWindow();
152
		DisplaySettings ds = view3D.getDisplaySettings();
153
		PluginServices.getMDIManager().closeWindow(this);
154
		PlanetViewer fullScreenViewer;
155

  
156
		try {
157
			fullScreenViewer = new PlanetViewer();
158
			fullScreenViewer.addPlanet(((PlanetViewer) view3D.getCanvas3d()
159
					.getOSGViewer()).getPlanet(0));
160
			fullScreenViewer.addSpecialNode((((PlanetViewer) view3D
161
					.getCanvas3d().getOSGViewer()).getSpecialNodes()));
162
			Vec4 color = ((PlanetViewer) view3D.getCanvas3d().getOSGViewer())
163
					.getClearColor();
164
			fullScreenViewer.setClearColor(color.x(), color.y(), color.z(),
165
					color.w());
166
			fullScreenViewer.setDisplaySettings(ds);
167
			// CustomTerrainManipulator cm = new CustomTerrainManipulator();
168
			//view3D.getCanvas3d().getOSGViewer().getCameraManipulator().ref();
169
			// fullScreenViewer.setUpViewInWindow(10, 10, 100, 100);
170
			// fullScreenViewer.setCameraManipulator(view3D.getCanvas3d().getOSGViewer().getCameraManipulator());
171
			if(jCheckBox1.isSelected())
172
				fullScreenViewer.setCameraManipulator(null);
173
			while (!fullScreenViewer.done()) {
174
				if(jCheckBox1.isSelected())
175
				fullScreenViewer.setCamera(view3D.getCanvas3d().getOSGViewer()
176
						.getCamera());
177
				fullScreenViewer.frame();
178

  
179
				
180
			}
181
			fullScreenViewer.releaseGLContext();
182
			fullScreenViewer.dispose();
183
			fullScreenViewer=null;
184
			System.gc();
185

  
186
		} catch (NodeException e) {
187
			// TODO Auto-generated catch block
188
			e.printStackTrace();
189
		}
190

  
191
	}
192

  
193
	protected void jButton2ActionPerformed(ActionEvent evt) {
194
		PluginServices.getMDIManager().closeWindow(this);
195

  
196
	}
197

  
198
	public WindowInfo getWindowInfo() {
199
		m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
200
		m_viewinfo.setTitle(PluginServices.getText(this, "FullScreen"));
201
		m_viewinfo.setHeight(height);
202
		m_viewinfo.setWidth(width);
203
		return m_viewinfo;
204
	}
205

  
206
	public void stateChanged(ChangeEvent e) {
207

  
208
	}
209

  
210
	public void windowActivated() {
211
		view3D = (View3D) PluginServices.getMDIManager().getActiveWindow();
212
		System.out.println(view3D.getName());
213
	}
214

  
215
	public void windowClosed() {
216

  
217
	}
218

  
219
}
trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/DisplayPanel.java
4 4
import java.awt.event.ItemEvent;
5 5
import java.awt.event.ItemListener;
6 6

  
7
import javax.swing.JFormattedTextField;
8
import javax.swing.JSpinner;
9
import javax.swing.SpinnerModel;
10
import javax.swing.SpinnerNumberModel;
7 11
import javax.swing.event.ChangeEvent;
8 12
import javax.swing.event.ChangeListener;
9 13

  
......
26 30

  
27 31
	private WindowInfo m_viewinfo;
28 32

  
29
	private int width = 360;
33
	private int width = 480;
30 34

  
31
	private int height = 130;
35
	private int height = 150;
32 36

  
33 37
	private View3D view3D;
34 38

  
......
40 44
	private javax.swing.JLabel jLabel1;
41 45
	private javax.swing.JLabel jLabel2;
42 46
	private javax.swing.JLabel jLabel3;
47
	private javax.swing.JLabel jLabel4;
43 48
	private javax.swing.JPanel jPanel1;
49
	private javax.swing.JSpinner jSpinner1;
44 50

  
45 51
	private DisplaySettings ds;
46 52

  
47 53
	public DisplayPanel() {
48 54

  
49 55
		if (PluginServices.getMDIManager().getActiveWindow() instanceof View3D) {
50
			view3D =(View3D) PluginServices.getMDIManager().getActiveWindow();
56
			view3D = (View3D) PluginServices.getMDIManager().getActiveWindow();
51 57
			ds = view3D.getDisplaySettings();
52 58
			initialize();
53 59
		}
54
		
55
		else PluginServices.getMDIManager().closeWindow(this);
56 60

  
61
		else
62
			PluginServices.getMDIManager().closeWindow(this);
63

  
57 64
	}
58 65

  
59 66
	public Object getWindowModel() {
......
73 80
		jLabel1 = new javax.swing.JLabel();
74 81
		jLabel2 = new javax.swing.JLabel();
75 82
		jLabel3 = new javax.swing.JLabel();
83
		jLabel4 = new javax.swing.JLabel();
76 84

  
85
		float min = (float) 0.01;
86
		float max = (float) 0.1;
87
		float step = (float) 0.005;
88
		float initValue = (float) 0.065;
89
		SpinnerModel model = new SpinnerNumberModel(initValue, min, max, step);
90

  
91
		jSpinner1 = new JSpinner(model);
92
		JFormattedTextField tf = ((JSpinner.DefaultEditor) jSpinner1
93
				.getEditor()).getTextField();
94
		tf.setEditable(false);
95

  
77 96
		setLayout(new java.awt.GridBagLayout());
78 97

  
79 98
		jPanel1.setLayout(new java.awt.GridBagLayout());
......
108 127
				PluginServices.getText(this, "4X") }));
109 128
		gridBagConstraints = new java.awt.GridBagConstraints();
110 129
		gridBagConstraints.gridx = 1;
111
		gridBagConstraints.gridy = 1;
130
		gridBagConstraints.gridy = 2;
112 131
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
113 132
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
114 133
		jPanel1.add(jComboBox2, gridBagConstraints);
......
129 148
		});
130 149
		gridBagConstraints = new java.awt.GridBagConstraints();
131 150
		gridBagConstraints.gridx = 1;
132
		gridBagConstraints.gridy = 4;
151
		gridBagConstraints.gridy = 6;
133 152
		jPanel1.add(jButton2, gridBagConstraints);
134 153

  
135 154
		jButton1.setText("Aceptar");
......
140 159
		});
141 160
		gridBagConstraints = new java.awt.GridBagConstraints();
142 161
		gridBagConstraints.gridx = 0;
143
		gridBagConstraints.gridy = 4;
162
		gridBagConstraints.gridy = 6;
144 163
		gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
145 164
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
146 165
		jPanel1.add(jButton1, gridBagConstraints);
......
152 171
				PluginServices.getText(this, "RealityCenter") }));
153 172
		gridBagConstraints = new java.awt.GridBagConstraints();
154 173
		gridBagConstraints.gridx = 1;
155
		gridBagConstraints.gridy = 2;
174
		gridBagConstraints.gridy = 3;
156 175
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
157 176
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
158 177
		jPanel1.add(jComboBox3, gridBagConstraints);
......
169 188
		jLabel1.setText("Tipo de Pantalla :");
170 189
		gridBagConstraints = new java.awt.GridBagConstraints();
171 190
		gridBagConstraints.gridx = 0;
172
		gridBagConstraints.gridy = 2;
191
		gridBagConstraints.gridy = 3;
173 192
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
174 193
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
175 194
		jPanel1.add(jLabel1, gridBagConstraints);
......
177 196
		jLabel2.setText("Antialiasing :");
178 197
		gridBagConstraints = new java.awt.GridBagConstraints();
179 198
		gridBagConstraints.gridx = 0;
180
		gridBagConstraints.gridy = 1;
199
		gridBagConstraints.gridy = 2;
181 200
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
182 201
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
183 202
		jPanel1.add(jLabel2, gridBagConstraints);
......
190 209
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 22);
191 210
		jPanel1.add(jLabel3, gridBagConstraints);
192 211

  
212
		jLabel4.setText("Distancia interocular :");
213
		gridBagConstraints = new java.awt.GridBagConstraints();
214
		gridBagConstraints.gridx = 0;
215
		gridBagConstraints.gridy = 1;
216
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
217
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
218
		jPanel1.add(jLabel4, gridBagConstraints);
219

  
220
		gridBagConstraints = new java.awt.GridBagConstraints();
221
		gridBagConstraints.gridx = 1;
222
		gridBagConstraints.gridy = 1;
223
		gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
224
		gridBagConstraints.ipadx = 30;
225
		// gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 22);
226
		jSpinner1.setEnabled(false);
227
//		 jSpinner1.addChangeListener(new ChangeListener() {
228
//		
229
//		 public void stateChanged(ChangeEvent e) {
230
//		 JSpinner spinner = (JSpinner) e.getSource();
231
//		
232
//		 	double value = (Double) spinner.getValue();
233
//			ds.setEyeSeparation((float) value);
234
//			view3D.getCanvas3d().getOSGViewer().setDisplaySettings(ds);
235
//		
236
//		 }
237
//		
238
//		 });
239

  
240
		jPanel1.add(jSpinner1, gridBagConstraints);
241

  
193 242
		add(jPanel1, new java.awt.GridBagConstraints());
194 243

  
195
		
196 244
		if (ds != null)
197 245
			setDisplaySettings();
198 246

  
......
211 259
		stereo = jComboBox1.getSelectedIndex();
212 260
		antialias = jComboBox2.getSelectedIndex();
213 261
		device = jComboBox3.getSelectedIndex();
214
		//ds = new DisplaySettings();
262
		// ds = new DisplaySettings();
215 263
		switch (stereo) {
216 264

  
217 265
		case 0:
......
289 337

  
290 338
		}
291 339

  
340
		if (jSpinner1.isEnabled()){
341
			double value = (Double) jSpinner1.getValue();
342
			ds.setEyeSeparation((float) value);
343
		}
292 344
		view3D.getCanvas3d().getOSGViewer().setDisplaySettings(ds);
293 345

  
294 346
		PluginServices.getMDIManager().closeWindow(this);
......
307 359
		if (e.getItem().equals(PluginServices.getText(this, "None"))) {
308 360
			jComboBox3.setEnabled(false);
309 361
			jComboBox3.setSelectedIndex(0);
310
		} else
362
			jSpinner1.setEnabled(false);
363
		} else {
311 364
			jComboBox3.setEnabled(true);
365
			jSpinner1.setEnabled(true);
366
		}
312 367

  
313 368
	}
314 369

  
......
336 391
	public void setDisplaySettings() {
337 392

  
338 393
		int stereo, antialias, device;
394

  
395
		System.out.println(ds);
396
		if (ds.getStereo()){
339 397
		
340
		System.out.println(ds);
341
		if(ds.getStereo())
342 398
			stereo = ds.getStereoMode();
343
		else stereo=-1;
399
			jSpinner1.setValue(ds.getEyeSeparation());
400
			
401
		}
402
				
403
		else
404
			stereo = -1;
344 405
		antialias = ds.getNumMultiSamples();
345 406
		device = ds.getDisplayType();
346 407

  
trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/FullScreenMenu.java
1
package org.gvsig.gvsig3dgui.display;
2

  
3
import org.gvsig.gvsig3dgui.view.View3D;
4

  
5
import com.iver.andami.PluginServices;
6
import com.iver.andami.plugins.Extension;
7

  
8
public class FullScreenMenu extends Extension {
9

  
10
	public void execute(String actionCommand) {
11

  
12
		// Getting view3D
13
		com.iver.andami.ui.mdiManager.IWindow view = PluginServices
14
				.getMDIManager().getActiveWindow();
15
		if (!(view instanceof View3D))
16
			return;
17

  
18
		if (actionCommand.equals("FULLSCREEN")) {
19

  
20
			FullScreenPanel fullScreenPanel = new FullScreenPanel();
21
			// Showing it
22
			PluginServices.getMDIManager().addWindow(fullScreenPanel);
23

  
24
		}
25

  
26
	}
27

  
28
	public void initialize() {
29
		// Register new icons
30
		// zoom to selection
31
		PluginServices.getIconTheme().registerDefault(
32
				"fullscreen-icon",
33
				this.getClass().getClassLoader().getResource(
34
						"images/fullscreen.png"));
35

  
36
	}
37

  
38
	public boolean isEnabled() {
39

  
40
		if (PluginServices.getMDIManager().getActiveWindow() instanceof View3D)
41
			return true;
42
		else
43
			return false;
44
	}
45

  
46
	public boolean isVisible() {
47
		if (PluginServices.getMDIManager().getActiveWindow() instanceof View3D)
48
			return true;
49
		else
50
			return false;
51
	}
52

  
53
}
trunk/extensions/ext3Dgui/config/config.xml
79 79
				<action-tool icon="display-icon" action-command="DISPLAY"  tooltip="Visualizacion" position="2"/>
80 80
			</tool-bar>
81 81
		</extension>
82
		
83
		<extension class-name="org.gvsig.gvsig3dgui.display.FullScreenMenu"
84
			description="Extensi?n encargada de activar el modo de pantalla completa"
85
			active="true"
86
			priority="51">
82 87
			
88
			<menu text="Vista/Visualizaci?n/Pantalla Completa" action-command="FULLSCREEN" icon="fullscreen-icon"/>
89
			<tool-bar name="MenuFullScreen" position="4">
90
				<action-tool icon="fullscreen-icon" action-command="FULLSCREEN"  tooltip="Pantalla Completa" position="2"/>
91
			</tool-bar>
92
		</extension>
93
			
83 94
		<extension class-name="org.gvsig.gvsig3dgui.view.ViewPropertiesExtension3D"
84 95
			description="Extensi?n encargada de manejar de activar siempre al norte."
85 96
			active="true">

Also available in: Unified diff