Revision 486
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/java/org/gvsig/view3d/app/mainplugin/View3DExtension.java | ||
---|---|---|
30 | 30 |
import org.gvsig.app.ApplicationManager; |
31 | 31 |
import org.gvsig.app.project.documents.view.ViewDocument; |
32 | 32 |
import org.gvsig.app.project.documents.view.gui.IView; |
33 |
import org.gvsig.app.project.documents.view.legend.gui.ThemeManagerWindow; |
|
33 | 34 |
import org.gvsig.fmap.mapcontext.MapContext; |
34 | 35 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
36 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
37 |
import org.gvsig.tools.ToolsLocator; |
|
38 |
import org.gvsig.tools.extensionpoint.ExtensionPoint; |
|
39 |
import org.gvsig.tools.extensionpoint.ExtensionPointManager; |
|
35 | 40 |
import org.gvsig.tools.observer.Notification; |
36 | 41 |
import org.gvsig.tools.observer.Observable; |
37 | 42 |
import org.gvsig.tools.observer.Observer; |
43 |
import org.gvsig.view3d.app.properties.LayerProperties3DThemeManagerPage; |
|
44 |
import org.gvsig.view3d.app.properties.RasterLayerProperties3DPanel; |
|
38 | 45 |
import org.gvsig.view3d.swing.api.MapControl3D; |
39 | 46 |
import org.gvsig.view3d.swing.api.View3DPanel; |
40 | 47 |
import org.gvsig.view3d.swing.api.View3DSwingLocator; |
... | ... | |
48 | 55 |
public class View3DExtension extends Extension implements Observer{ |
49 | 56 |
|
50 | 57 |
public void initialize() { |
58 |
|
|
59 |
ThemeManagerWindow.addPage(LayerProperties3DThemeManagerPage.class); |
|
60 |
ThemeManagerWindow.setTabEnabledForLayer( |
|
61 |
LayerProperties3DThemeManagerPage.class, FLyrVect.class, true); |
|
62 |
|
|
63 |
ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager(); |
|
64 |
ExtensionPoint point = extensionPoints.get("RasterSEPropertiesDialog"); |
|
65 |
if(point != null){ |
|
66 |
point.append("3D", "3D Raster properties panel", |
|
67 |
RasterLayerProperties3DPanel.class); |
|
68 |
} |
|
51 | 69 |
registerIcons(); |
52 | 70 |
} |
53 | 71 |
|
... | ... | |
159 | 177 |
} |
160 | 178 |
|
161 | 179 |
} |
162 |
|
|
163 | 180 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/java/org/gvsig/view3d/app/properties/RasterLayerProperties3DPanel.java | ||
---|---|---|
1 |
package org.gvsig.view3d.app.properties; |
|
2 |
|
|
3 |
import java.awt.BorderLayout; |
|
4 |
import java.awt.Dimension; |
|
5 |
|
|
6 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
7 |
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel; |
|
8 |
import org.gvsig.tools.ToolsLocator; |
|
9 |
import org.gvsig.tools.i18n.I18nManager; |
|
10 |
import org.gvsig.view3d.lib.api.View3DLocator; |
|
11 |
import org.gvsig.view3d.lib.api.View3DManager; |
|
12 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
13 |
import org.gvsig.view3d.lib.api.properties.VectorialLayerProperties3D; |
|
14 |
import org.gvsig.view3d.swing.api.LayerProperties3DPanel; |
|
15 |
import org.gvsig.view3d.swing.api.View3DSwingLocator; |
|
16 |
import org.gvsig.view3d.swing.api.View3DSwingManager; |
|
17 |
|
|
18 |
public class RasterLayerProperties3DPanel extends AbstractPanel { |
|
19 |
|
|
20 |
private static final long serialVersionUID = 5429099827670959087L; |
|
21 |
|
|
22 |
private LayerProperties3DPanel propertiesPanel; |
|
23 |
private LayerProperties3D tmpProperties; |
|
24 |
|
|
25 |
public RasterLayerProperties3DPanel() { |
|
26 |
super(); |
|
27 |
initialize(); |
|
28 |
} |
|
29 |
|
|
30 |
public void accept() { |
|
31 |
apply(); |
|
32 |
|
|
33 |
View3DManager manager = View3DLocator.getManager(); |
|
34 |
manager.setLayerProperties(propertiesPanel.getLayer(), tmpProperties); |
|
35 |
} |
|
36 |
|
|
37 |
public void apply() { |
|
38 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
39 |
|
|
40 |
View3DManager manager = View3DLocator.getManager(); |
|
41 |
LayerProperties3D layerProperties = |
|
42 |
manager.getLayerProperties(propertiesPanel.getLayer()); |
|
43 |
|
|
44 |
layerProperties.setMinLevel(propertiesPanel.getMinLevel()); |
|
45 |
layerProperties.setMaxLevel(propertiesPanel.getMaxLevel()); |
|
46 |
layerProperties.setLevelZeroResolutionMultiplier(propertiesPanel |
|
47 |
.getResolutionMultiplier()); |
|
48 |
layerProperties.setTileWidth(propertiesPanel.getTileWidth()); |
|
49 |
layerProperties.setTileHeight(propertiesPanel.getTileHeight()); |
|
50 |
|
|
51 |
if (propertiesPanel.getLoadMode().equalsIgnoreCase( |
|
52 |
i18nManager.getTranslation("elevation"))) { |
|
53 |
|
|
54 |
layerProperties.setElevation(true); |
|
55 |
|
|
56 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
57 |
VectorialLayerProperties3D vectorialProperties = |
|
58 |
(VectorialLayerProperties3D) layerProperties; |
|
59 |
vectorialProperties.setElevationField(propertiesPanel |
|
60 |
.getElevationField()); |
|
61 |
} |
|
62 |
|
|
63 |
layerProperties.setElevationUnits(propertiesPanel |
|
64 |
.getElevationUnits()); |
|
65 |
layerProperties.setNoDataValue(propertiesPanel.getNoDataValue()); |
|
66 |
|
|
67 |
} else { |
|
68 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
69 |
VectorialLayerProperties3D vectorialProperties = |
|
70 |
(VectorialLayerProperties3D) layerProperties; |
|
71 |
vectorialProperties.setRasterized(true); |
|
72 |
} |
|
73 |
} |
|
74 |
tmpProperties = layerProperties; |
|
75 |
} |
|
76 |
|
|
77 |
public void cancel() { |
|
78 |
this.propertiesPanel = null; |
|
79 |
} |
|
80 |
|
|
81 |
@Override |
|
82 |
protected void initialize() { |
|
83 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
84 |
setLabel(i18nManager.getTranslation("3D")); |
|
85 |
|
|
86 |
this.setLayout(new BorderLayout()); |
|
87 |
this.setPreferredSize(new Dimension(100, 80)); |
|
88 |
} |
|
89 |
|
|
90 |
public void selected() { |
|
91 |
} |
|
92 |
|
|
93 |
public void setReference(Object ref) { |
|
94 |
super.setReference(ref); |
|
95 |
|
|
96 |
if (ref instanceof FLayer) { |
|
97 |
FLayer layer = (FLayer) ref; |
|
98 |
View3DSwingManager swingManager = View3DSwingLocator.getManager(); |
|
99 |
this.propertiesPanel = |
|
100 |
swingManager.createLayerProperties3DPanel(layer); |
|
101 |
this.add(propertiesPanel.asJComponent(), BorderLayout.CENTER); |
|
102 |
} |
|
103 |
} |
|
104 |
|
|
105 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/java/org/gvsig/view3d/app/properties/LayerProperties3DThemeManagerPage.java | ||
---|---|---|
1 |
package org.gvsig.view3d.app.properties; |
|
2 |
|
|
3 |
import java.awt.BorderLayout; |
|
4 |
|
|
5 |
import org.gvsig.app.project.documents.view.legend.gui.AbstractThemeManagerPage; |
|
6 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
7 |
import org.gvsig.tools.ToolsLocator; |
|
8 |
import org.gvsig.tools.i18n.I18nManager; |
|
9 |
import org.gvsig.view3d.lib.api.View3DLocator; |
|
10 |
import org.gvsig.view3d.lib.api.View3DManager; |
|
11 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
12 |
import org.gvsig.view3d.lib.api.properties.VectorialLayerProperties3D; |
|
13 |
import org.gvsig.view3d.swing.api.LayerProperties3DPanel; |
|
14 |
import org.gvsig.view3d.swing.api.View3DSwingLocator; |
|
15 |
import org.gvsig.view3d.swing.api.View3DSwingManager; |
|
16 |
|
|
17 |
public class LayerProperties3DThemeManagerPage extends AbstractThemeManagerPage { |
|
18 |
|
|
19 |
private static final long serialVersionUID = 6180306542845960820L; |
|
20 |
|
|
21 |
private LayerProperties3DPanel propertiesPanel; |
|
22 |
|
|
23 |
public LayerProperties3DThemeManagerPage() { |
|
24 |
super(); |
|
25 |
initialize(); |
|
26 |
} |
|
27 |
|
|
28 |
@Override |
|
29 |
public void acceptAction() { |
|
30 |
applyAction(); |
|
31 |
} |
|
32 |
|
|
33 |
@Override |
|
34 |
public void applyAction() { |
|
35 |
|
|
36 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
37 |
|
|
38 |
View3DManager manager = View3DLocator.getManager(); |
|
39 |
LayerProperties3D layerProperties = |
|
40 |
manager.getLayerProperties(propertiesPanel.getLayer()); |
|
41 |
|
|
42 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
43 |
|
|
44 |
layerProperties.setMinLevel(propertiesPanel.getMinLevel()); |
|
45 |
layerProperties.setMaxLevel(propertiesPanel.getMaxLevel()); |
|
46 |
layerProperties.setLevelZeroResolutionMultiplier(propertiesPanel |
|
47 |
.getResolutionMultiplier()); |
|
48 |
layerProperties.setTileWidth(propertiesPanel.getTileWidth()); |
|
49 |
layerProperties.setTileHeight(propertiesPanel.getTileHeight()); |
|
50 |
|
|
51 |
if (propertiesPanel.getLoadMode().equalsIgnoreCase( |
|
52 |
i18nManager.getTranslation("elevation"))) { |
|
53 |
|
|
54 |
layerProperties.setElevation(true); |
|
55 |
|
|
56 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
57 |
VectorialLayerProperties3D vectorialProperties = |
|
58 |
(VectorialLayerProperties3D) layerProperties; |
|
59 |
vectorialProperties.setElevationField(propertiesPanel |
|
60 |
.getElevationField()); |
|
61 |
} |
|
62 |
layerProperties.setElevationUnits(propertiesPanel |
|
63 |
.getElevationUnits()); |
|
64 |
layerProperties |
|
65 |
.setNoDataValue(propertiesPanel.getNoDataValue()); |
|
66 |
|
|
67 |
} else { |
|
68 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
69 |
VectorialLayerProperties3D vectorialProperties = |
|
70 |
(VectorialLayerProperties3D) layerProperties; |
|
71 |
vectorialProperties.setRasterized(true); |
|
72 |
} |
|
73 |
} |
|
74 |
} |
|
75 |
|
|
76 |
manager.setLayerProperties(propertiesPanel.getLayer(), layerProperties); |
|
77 |
} |
|
78 |
|
|
79 |
@Override |
|
80 |
public void cancelAction() { |
|
81 |
} |
|
82 |
|
|
83 |
@Override |
|
84 |
public String getName() { |
|
85 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
86 |
return i18nManager.getTranslation("3D"); |
|
87 |
} |
|
88 |
|
|
89 |
@Override |
|
90 |
public int getPriority() { |
|
91 |
return 10; |
|
92 |
} |
|
93 |
|
|
94 |
private void initialize() { |
|
95 |
this.setLayout(new BorderLayout()); |
|
96 |
} |
|
97 |
|
|
98 |
@Override |
|
99 |
public void setModel(FLayer layer) { |
|
100 |
|
|
101 |
View3DSwingManager swingManager = View3DSwingLocator.getManager(); |
|
102 |
this.propertiesPanel = swingManager.createLayerProperties3DPanel(layer); |
|
103 |
this.add(propertiesPanel.asJComponent(), BorderLayout.CENTER); |
|
104 |
|
|
105 |
} |
|
106 |
|
|
107 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/resources-plugin/i18n/text.properties | ||
---|---|---|
1 |
3D = 3D |
|
1 | 2 |
flat_view_3d= Visor 3D plano |
2 |
sphere_view_3d= Visor 3D esf?rico |
|
3 |
view_3d = Visor 3D |
|
3 |
elevation= Elevaci\u00F3n |
|
4 |
elevation_field= Campo elevaci\u00F3n |
|
5 |
level_details= Niveles de detalle |
|
6 |
load_mode= Modo de carga |
|
7 |
tile_configuration= Configuraci\u00F3n de tiles |
|
8 |
raster_image= Imagen raster |
|
9 |
rasterized_vectorial= Vectorial rasterizada |
|
10 |
sphere_view_3d= Visor 3D esf\u00E9rico |
|
11 |
view_3d = Visor 3D |
|
12 |
zero_level_resolution= Resoluci\u00F3n nivel cero |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/resources-plugin/i18n/text_en.properties | ||
---|---|---|
1 |
3D= 3D |
|
1 | 2 |
flat_view_3d= Flat 3D viewer |
3 |
elevation= Elevation |
|
4 |
elevation_field= Elvation field |
|
5 |
level_details= Level of details |
|
6 |
load_mode= Load mode |
|
7 |
tile_configuration= Tile configuration |
|
8 |
raster_image= Raster image |
|
9 |
rasterized_vectorial= Rasterized vectorial |
|
2 | 10 |
sphere_view_3d= Sphere 3D viewer |
3 |
view_3d= 3D View |
|
11 |
view_3d= 3D View |
|
12 |
zero_level_resolution= Zero level resolution |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.app/org.gvsig.view3d.app.common/src/main/resources-plugin/config.xml | ||
---|---|---|
13 | 13 |
AT gvsig.com, or visit our website www.gvsig.com. --> |
14 | 14 |
<plugin-config> |
15 | 15 |
<depends plugin-name="org.gvsig.app.mainplugin" /> |
16 |
<depends plugin-name="org.gvsig.raster.tools.app.basic" optional="true"/> |
|
16 | 17 |
<resourceBundle name="text" /> |
17 | 18 |
<libraries library-dir="lib" /> |
18 | 19 |
<extensions> |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.api/src/main/java/org/gvsig/view3d/lib/api/View3DManager.java | ||
---|---|---|
24 | 24 |
|
25 | 25 |
package org.gvsig.view3d.lib.api; |
26 | 26 |
|
27 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
28 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
27 | 29 |
|
30 |
|
|
28 | 31 |
/** |
29 | 32 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
30 | 33 |
* |
31 | 34 |
*/ |
32 | 35 |
public interface View3DManager { |
36 |
|
|
37 |
public LayerProperties3D getLayerProperties(FLayer layer); |
|
38 |
|
|
39 |
public void setLayerProperties(FLayer layer, LayerProperties3D properties); |
|
33 | 40 |
|
34 | 41 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.api/src/main/java/org/gvsig/view3d/lib/api/properties/LayerProperties3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.api.properties; |
|
2 |
|
|
3 |
/** |
|
4 |
* |
|
5 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
|
6 |
* |
|
7 |
*/ |
|
8 |
public interface LayerProperties3D { |
|
9 |
|
|
10 |
/** |
|
11 |
* |
|
12 |
* @return |
|
13 |
*/ |
|
14 |
public boolean getElevation(); |
|
15 |
|
|
16 |
/** |
|
17 |
* |
|
18 |
* @return |
|
19 |
*/ |
|
20 |
public String getElevationUnits(); |
|
21 |
|
|
22 |
/** |
|
23 |
* |
|
24 |
* @return |
|
25 |
*/ |
|
26 |
public double getLevelZeroResolutionMultiplier(); |
|
27 |
|
|
28 |
/** |
|
29 |
* |
|
30 |
* @return |
|
31 |
*/ |
|
32 |
public int getMaxLevel(); |
|
33 |
|
|
34 |
/** |
|
35 |
* |
|
36 |
* @return |
|
37 |
*/ |
|
38 |
public int getMinLevel(); |
|
39 |
|
|
40 |
/** |
|
41 |
* |
|
42 |
* @return |
|
43 |
*/ |
|
44 |
public double getNoDataValue(); |
|
45 |
|
|
46 |
/** |
|
47 |
* |
|
48 |
* @return |
|
49 |
*/ |
|
50 |
public int getTileHeight(); |
|
51 |
|
|
52 |
/** |
|
53 |
* |
|
54 |
* @return |
|
55 |
*/ |
|
56 |
public int getTileWidth(); |
|
57 |
|
|
58 |
/** |
|
59 |
* |
|
60 |
* @param elevation |
|
61 |
*/ |
|
62 |
public void setElevation(boolean elevation); |
|
63 |
|
|
64 |
/** |
|
65 |
* |
|
66 |
* @param units |
|
67 |
*/ |
|
68 |
public void setElevationUnits(String units); |
|
69 |
|
|
70 |
/** |
|
71 |
* |
|
72 |
* @param multiplier |
|
73 |
*/ |
|
74 |
public void setLevelZeroResolutionMultiplier(double multiplier); |
|
75 |
|
|
76 |
/** |
|
77 |
* |
|
78 |
* @param maxLevel |
|
79 |
*/ |
|
80 |
public void setMaxLevel(int maxLevel); |
|
81 |
|
|
82 |
/** |
|
83 |
* |
|
84 |
* @param minLevel |
|
85 |
*/ |
|
86 |
public void setMinLevel(int minLevel); |
|
87 |
|
|
88 |
/** |
|
89 |
* |
|
90 |
* @param noDataValue |
|
91 |
*/ |
|
92 |
public void setNoDataValue(double noDataValue); |
|
93 |
|
|
94 |
/** |
|
95 |
* |
|
96 |
* @param height |
|
97 |
*/ |
|
98 |
public void setTileHeight(int height); |
|
99 |
|
|
100 |
/** |
|
101 |
* |
|
102 |
* @param width |
|
103 |
*/ |
|
104 |
public void setTileWidth(int width); |
|
105 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.api/src/main/java/org/gvsig/view3d/lib/api/properties/RasterLayerProperties3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.api.properties; |
|
2 |
|
|
3 |
/** |
|
4 |
* |
|
5 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
|
6 |
* |
|
7 |
*/ |
|
8 |
public interface RasterLayerProperties3D extends LayerProperties3D { |
|
9 |
|
|
10 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.api/src/main/java/org/gvsig/view3d/lib/api/properties/VectorialLayerProperties3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.api.properties; |
|
2 |
|
|
3 |
/** |
|
4 |
* |
|
5 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
|
6 |
* |
|
7 |
*/ |
|
8 |
public interface VectorialLayerProperties3D extends LayerProperties3D { |
|
9 |
|
|
10 |
/** |
|
11 |
* |
|
12 |
* @return |
|
13 |
*/ |
|
14 |
public String getElevationField(); |
|
15 |
|
|
16 |
/** |
|
17 |
* |
|
18 |
* @return |
|
19 |
*/ |
|
20 |
public boolean getRasterized(); |
|
21 |
|
|
22 |
/** |
|
23 |
* |
|
24 |
* @param field |
|
25 |
*/ |
|
26 |
public void setElevationField(String field); |
|
27 |
|
|
28 |
/** |
|
29 |
* |
|
30 |
* @param rasterized |
|
31 |
*/ |
|
32 |
public void setRasterized(boolean rasterized); |
|
33 |
|
|
34 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.api/pom.xml | ||
---|---|---|
14 | 14 |
</dependency> |
15 | 15 |
<dependency> |
16 | 16 |
<groupId>org.gvsig</groupId> |
17 |
<artifactId>org.gvsig.fmap.dal.api</artifactId>
|
|
17 |
<artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
|
|
18 | 18 |
</dependency> |
19 | 19 |
</dependencies> |
20 | 20 |
</project> |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.impl/src/main/java/org/gvsig/view3d/lib/impl/DefaultView3DManger.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
package org.gvsig.view3d.lib.impl; |
25 | 25 |
|
26 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
27 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
26 | 28 |
import org.gvsig.view3d.lib.api.View3DManager; |
29 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
30 |
import org.gvsig.view3d.lib.impl.properties.DefaultRasterLayerProperties3D; |
|
31 |
import org.gvsig.view3d.lib.impl.properties.DefaultVectorialLayerProperties3D; |
|
27 | 32 |
|
28 | 33 |
|
29 | 34 |
/** |
... | ... | |
32 | 37 |
*/ |
33 | 38 |
public class DefaultView3DManger implements View3DManager { |
34 | 39 |
|
40 |
public LayerProperties3D getLayerProperties(FLayer layer) { |
|
41 |
Object properties = layer.getProperty("properties3D"); |
|
42 |
if(properties == null){ |
|
43 |
|
|
44 |
if(layer instanceof FLyrVect){ |
|
45 |
return new DefaultVectorialLayerProperties3D(); |
|
46 |
} else { |
|
47 |
return new DefaultRasterLayerProperties3D(); |
|
48 |
} |
|
49 |
} |
|
50 |
return (LayerProperties3D) properties; |
|
51 |
} |
|
52 |
|
|
53 |
public void setLayerProperties(FLayer layer, LayerProperties3D properties) { |
|
54 |
layer.setProperty("properties3D", properties); |
|
55 |
} |
|
56 |
|
|
35 | 57 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.impl/src/main/java/org/gvsig/view3d/lib/impl/properties/DefaultRasterLayerProperties3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.impl.properties; |
|
2 |
|
|
3 |
import org.gvsig.view3d.lib.api.properties.RasterLayerProperties3D; |
|
4 |
|
|
5 |
public class DefaultRasterLayerProperties3D extends BasicLayerPropertiesPanel3D |
|
6 |
implements RasterLayerProperties3D { |
|
7 |
|
|
8 |
|
|
9 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.impl/src/main/java/org/gvsig/view3d/lib/impl/properties/DefaultVectorialLayerProperties3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.impl.properties; |
|
2 |
|
|
3 |
import org.gvsig.view3d.lib.api.properties.VectorialLayerProperties3D; |
|
4 |
|
|
5 |
|
|
6 |
public class DefaultVectorialLayerProperties3D extends BasicLayerPropertiesPanel3D implements |
|
7 |
VectorialLayerProperties3D { |
|
8 |
|
|
9 |
private boolean rasterized = true; |
|
10 |
private String elevationField; |
|
11 |
|
|
12 |
public String getElevationField() { |
|
13 |
return elevationField; |
|
14 |
} |
|
15 |
|
|
16 |
public boolean getRasterized() { |
|
17 |
return this.rasterized; |
|
18 |
} |
|
19 |
|
|
20 |
public void setElevationField(String field) { |
|
21 |
this.elevationField = field; |
|
22 |
} |
|
23 |
|
|
24 |
public void setRasterized(boolean rasterized) { |
|
25 |
this.rasterized = rasterized; |
|
26 |
} |
|
27 |
|
|
28 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.impl/src/main/java/org/gvsig/view3d/lib/impl/properties/BasicLayerPropertiesPanel3D.java | ||
---|---|---|
1 |
package org.gvsig.view3d.lib.impl.properties; |
|
2 |
|
|
3 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
4 |
|
|
5 |
|
|
6 |
public class BasicLayerPropertiesPanel3D implements LayerProperties3D { |
|
7 |
|
|
8 |
private boolean elevation = false; |
|
9 |
private String elevationUnits; |
|
10 |
private double levelZeroResolutionMultiplier = 1; |
|
11 |
private int maxLevel = 0; |
|
12 |
private int minLevel = 0; |
|
13 |
private double noDataValue = -99999; |
|
14 |
private int tileWidth = 512; |
|
15 |
private int tileHeight = 512; |
|
16 |
|
|
17 |
public boolean getElevation() { |
|
18 |
return elevation; |
|
19 |
} |
|
20 |
|
|
21 |
public String getElevationUnits() { |
|
22 |
return elevationUnits; |
|
23 |
} |
|
24 |
|
|
25 |
public double getLevelZeroResolutionMultiplier() { |
|
26 |
return levelZeroResolutionMultiplier * 5; |
|
27 |
} |
|
28 |
|
|
29 |
public int getMaxLevel() { |
|
30 |
return maxLevel; |
|
31 |
} |
|
32 |
|
|
33 |
public int getMinLevel() { |
|
34 |
return minLevel; |
|
35 |
} |
|
36 |
|
|
37 |
public double getNoDataValue() { |
|
38 |
return noDataValue; |
|
39 |
} |
|
40 |
|
|
41 |
public int getTileHeight() { |
|
42 |
return tileHeight; |
|
43 |
} |
|
44 |
|
|
45 |
public int getTileWidth() { |
|
46 |
return tileWidth; |
|
47 |
} |
|
48 |
|
|
49 |
public void setElevation(boolean elevation) { |
|
50 |
this.elevation = elevation; |
|
51 |
} |
|
52 |
|
|
53 |
public void setElevationUnits(String elevation) { |
|
54 |
this.elevationUnits = elevation; |
|
55 |
} |
|
56 |
|
|
57 |
public void setLevelZeroResolutionMultiplier(double multiplier) { |
|
58 |
this.levelZeroResolutionMultiplier = multiplier / 5; |
|
59 |
} |
|
60 |
|
|
61 |
public void setMaxLevel(int maxLevel) { |
|
62 |
this.maxLevel = maxLevel; |
|
63 |
} |
|
64 |
|
|
65 |
public void setMinLevel(int minLevel) { |
|
66 |
this.minLevel = minLevel; |
|
67 |
} |
|
68 |
|
|
69 |
public void setNoDataValue(double noDataValue) { |
|
70 |
this.noDataValue = noDataValue; |
|
71 |
|
|
72 |
} |
|
73 |
|
|
74 |
public void setTileHeight(int height) { |
|
75 |
this.tileHeight = height; |
|
76 |
|
|
77 |
} |
|
78 |
|
|
79 |
public void setTileWidth(int width) { |
|
80 |
this.tileWidth = width; |
|
81 |
} |
|
82 |
|
|
83 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.api/src/main/java/org/gvsig/view3d/swing/api/LayerProperties3DPanel.java | ||
---|---|---|
1 |
package org.gvsig.view3d.swing.api; |
|
2 |
|
|
3 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
4 |
import org.gvsig.tools.swing.api.Component; |
|
5 |
|
|
6 |
/** |
|
7 |
* |
|
8 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
|
9 |
* |
|
10 |
*/ |
|
11 |
public interface LayerProperties3DPanel extends Component { |
|
12 |
|
|
13 |
/** |
|
14 |
* |
|
15 |
* @return |
|
16 |
*/ |
|
17 |
public String getElevationField(); |
|
18 |
|
|
19 |
/** |
|
20 |
* |
|
21 |
* @return |
|
22 |
*/ |
|
23 |
public String getElevationUnits(); |
|
24 |
|
|
25 |
/** |
|
26 |
* |
|
27 |
* @return |
|
28 |
*/ |
|
29 |
public FLayer getLayer(); |
|
30 |
|
|
31 |
/** |
|
32 |
* |
|
33 |
* @return |
|
34 |
*/ |
|
35 |
public String getLoadMode(); |
|
36 |
|
|
37 |
/** |
|
38 |
* |
|
39 |
* @return |
|
40 |
*/ |
|
41 |
public int getMaxLevel(); |
|
42 |
|
|
43 |
/** |
|
44 |
* |
|
45 |
* @return |
|
46 |
*/ |
|
47 |
public int getMinLevel(); |
|
48 |
|
|
49 |
/** |
|
50 |
* |
|
51 |
* @return |
|
52 |
*/ |
|
53 |
public double getNoDataValue(); |
|
54 |
|
|
55 |
/** |
|
56 |
* |
|
57 |
* @return |
|
58 |
*/ |
|
59 |
public int getResolutionMultiplier(); |
|
60 |
|
|
61 |
/** |
|
62 |
* |
|
63 |
* @return |
|
64 |
*/ |
|
65 |
public int getTileHeight(); |
|
66 |
|
|
67 |
/** |
|
68 |
* |
|
69 |
* @return |
|
70 |
*/ |
|
71 |
public int getTileWidth(); |
|
72 |
|
|
73 |
/** |
|
74 |
* |
|
75 |
* @param layer |
|
76 |
*/ |
|
77 |
public void setLayer(FLayer layer); |
|
78 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.api/src/main/java/org/gvsig/view3d/swing/api/View3DSwingManager.java | ||
---|---|---|
25 | 25 |
package org.gvsig.view3d.swing.api; |
26 | 26 |
|
27 | 27 |
import org.gvsig.fmap.mapcontext.MapContext; |
28 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
29 |
import org.gvsig.tools.swing.api.Component; |
|
28 | 30 |
|
29 | 31 |
/** |
30 | 32 |
* This class is responsible of the management of the library's swing user |
... | ... | |
84 | 86 |
* <code> null </code> |
85 | 87 |
*/ |
86 | 88 |
public MapControl3D getMapControl3D(MapContext theMapContext, TYPE type); |
87 |
|
|
89 |
|
|
90 |
/** |
|
91 |
* |
|
92 |
* @param layer |
|
93 |
* @return |
|
94 |
*/ |
|
95 |
public LayerProperties3DPanel createLayerProperties3DPanel(FLayer layer); |
|
96 |
|
|
88 | 97 |
// TODO: Add methods to get properties panels. |
89 | 98 |
|
90 | 99 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/DefaultView3DSwingManager.java | ||
---|---|---|
30 | 30 |
import java.util.Map; |
31 | 31 |
|
32 | 32 |
import org.gvsig.fmap.mapcontext.MapContext; |
33 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
33 | 34 |
import org.gvsig.tools.observer.Notification; |
34 | 35 |
import org.gvsig.tools.observer.Observable; |
35 | 36 |
import org.gvsig.tools.observer.Observer; |
37 |
import org.gvsig.view3d.swing.api.LayerProperties3DPanel; |
|
36 | 38 |
import org.gvsig.view3d.swing.api.MapControl3D; |
37 | 39 |
import org.gvsig.view3d.swing.api.View3DPanel; |
38 | 40 |
import org.gvsig.view3d.swing.api.View3DSwingManager; |
41 |
import org.gvsig.view3d.swing.impl.properties.layer.DefaultLayerProperties3DPanel; |
|
39 | 42 |
import org.slf4j.Logger; |
40 | 43 |
import org.slf4j.LoggerFactory; |
41 | 44 |
|
... | ... | |
126 | 129 |
} |
127 | 130 |
} |
128 | 131 |
} |
132 |
|
|
133 |
public LayerProperties3DPanel createLayerProperties3DPanel(FLayer layer) { |
|
134 |
return new DefaultLayerProperties3DPanel(layer); |
|
135 |
} |
|
129 | 136 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/DefaultMapControl3D.java | ||
---|---|---|
66 | 66 |
import org.gvsig.tools.observer.Observer; |
67 | 67 |
import org.gvsig.tools.task.Cancellable; |
68 | 68 |
import org.gvsig.tools.visitor.VisitCanceledException; |
69 |
import org.gvsig.view3d.lib.api.View3DLocator; |
|
70 |
import org.gvsig.view3d.lib.api.View3DManager; |
|
71 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
69 | 72 |
import org.gvsig.view3d.swing.api.MapControl3D; |
70 | 73 |
import org.gvsig.view3d.swing.api.View3DSwingManager.TYPE; |
71 | 74 |
import org.gvsig.view3d.swing.impl.data.DefaultLayerConverter; |
... | ... | |
151 | 154 |
private void addGvSIGLayer(FLayer layer) throws DataException { |
152 | 155 |
|
153 | 156 |
LayerConverter converter = new DefaultLayerConverter(); |
154 |
|
|
157 |
|
|
158 |
View3DManager manager = View3DLocator.getManager(); |
|
159 |
LayerProperties3D layerProperties = manager.getLayerProperties(layer); |
|
160 |
|
|
155 | 161 |
// TODO Check load mode to create WW Layer |
156 | 162 |
Layer rasterTiledLayer = converter.convertToLayer(this, layer); |
157 | 163 |
|
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/properties/layer/AbstractLayerProperties3DPanel.java | ||
---|---|---|
1 |
package org.gvsig.view3d.swing.impl.properties.layer; |
|
2 |
|
|
3 |
import java.awt.BorderLayout; |
|
4 |
import java.awt.Color; |
|
5 |
import java.awt.Container; |
|
6 |
import java.awt.Dimension; |
|
7 |
import java.awt.GridBagConstraints; |
|
8 |
import java.awt.GridBagLayout; |
|
9 |
import java.awt.GridLayout; |
|
10 |
import java.awt.Insets; |
|
11 |
import java.util.Hashtable; |
|
12 |
|
|
13 |
import javax.swing.BorderFactory; |
|
14 |
import javax.swing.JComboBox; |
|
15 |
import javax.swing.JComponent; |
|
16 |
import javax.swing.JLabel; |
|
17 |
import javax.swing.JPanel; |
|
18 |
import javax.swing.JSlider; |
|
19 |
import javax.swing.JTextField; |
|
20 |
|
|
21 |
import org.gvsig.tools.ToolsLocator; |
|
22 |
import org.gvsig.tools.i18n.I18nManager; |
|
23 |
import org.gvsig.view3d.swing.api.LayerProperties3DPanel; |
|
24 |
|
|
25 |
public abstract class AbstractLayerProperties3DPanel extends JPanel implements |
|
26 |
LayerProperties3DPanel { |
|
27 |
|
|
28 |
private static final long serialVersionUID = -7539636081774210233L; |
|
29 |
|
|
30 |
private Insets insets = new Insets(5, 5, 5, 5); |
|
31 |
|
|
32 |
private JPanel northPanel; |
|
33 |
private JLabel loadModeText; |
|
34 |
private JComboBox<String> loadModes; |
|
35 |
|
|
36 |
private JPanel tileConfigurationPanel; |
|
37 |
|
|
38 |
private JPanel minMaxPanel; |
|
39 |
private JLabel minimumText; |
|
40 |
private JTextField minimumField; |
|
41 |
private JLabel maximumText; |
|
42 |
private JTextField maximumField; |
|
43 |
|
|
44 |
private JPanel detailPanel; |
|
45 |
private JSlider levelDetailSlider; |
|
46 |
|
|
47 |
private JPanel tileSizePanel; |
|
48 |
private JLabel tileWidthText; |
|
49 |
private JTextField tileWidthField; |
|
50 |
private JLabel tileHeightText; |
|
51 |
private JTextField tileHeightField; |
|
52 |
|
|
53 |
private JPanel elevationPanel; |
|
54 |
|
|
55 |
private JPanel elevationConfPanel; |
|
56 |
private JLabel fieldElevationText; |
|
57 |
private JComboBox<String> fieldElevationCombo; |
|
58 |
private JLabel unitsElevationText; |
|
59 |
private JComboBox<String> unitsElevationCombo; |
|
60 |
private JLabel noDataElevationText; |
|
61 |
private JTextField noDataElevationField; |
|
62 |
|
|
63 |
public AbstractLayerProperties3DPanel() { |
|
64 |
this.setLayout(new BorderLayout()); |
|
65 |
|
|
66 |
initialize(); |
|
67 |
} |
|
68 |
|
|
69 |
protected void initialize() { |
|
70 |
this.add(getNorthPanel(), BorderLayout.NORTH); |
|
71 |
this.add(getTileConfigurationPanel(), BorderLayout.CENTER); |
|
72 |
this.add(getElevationPanel(), BorderLayout.SOUTH); |
|
73 |
this.setPreferredSize(new Dimension(100, 80)); |
|
74 |
} |
|
75 |
|
|
76 |
protected JPanel getElevationPanel() { |
|
77 |
if (elevationPanel == null) { |
|
78 |
elevationPanel = new JPanel(new BorderLayout()); |
|
79 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
80 |
elevationPanel.setBorder(BorderFactory.createTitledBorder( |
|
81 |
BorderFactory.createLineBorder(Color.GRAY), |
|
82 |
i18nManager.getTranslation("elevation"))); |
|
83 |
elevationPanel.add(getElevationConfPanel(), BorderLayout.CENTER); |
|
84 |
} |
|
85 |
return elevationPanel; |
|
86 |
} |
|
87 |
|
|
88 |
private JPanel getElevationConfPanel() { |
|
89 |
if (elevationConfPanel == null) { |
|
90 |
elevationConfPanel = new JPanel(new GridBagLayout()); |
|
91 |
|
|
92 |
GridBagConstraints cons = createGbcForm(0, 0); |
|
93 |
elevationConfPanel.add(getFieldLabel(), cons); |
|
94 |
cons = createGbcForm(1, 0); |
|
95 |
elevationConfPanel.add(getFieldComboBox(), cons); |
|
96 |
|
|
97 |
cons = createGbcForm(0, 1); |
|
98 |
elevationConfPanel.add(getUnitsLabel(), cons); |
|
99 |
cons = createGbcForm(1, 1); |
|
100 |
elevationConfPanel.add(getUnitsComboBox(), cons); |
|
101 |
|
|
102 |
cons = createGbcForm(0, 2); |
|
103 |
elevationConfPanel.add(getNoDataLabel(), cons); |
|
104 |
cons = createGbcForm(1, 2); |
|
105 |
elevationConfPanel.add(getNoDataField(), cons); |
|
106 |
|
|
107 |
} |
|
108 |
return elevationConfPanel; |
|
109 |
} |
|
110 |
|
|
111 |
protected JTextField getNoDataField() { |
|
112 |
if (noDataElevationField == null) { |
|
113 |
noDataElevationField = new JTextField(); |
|
114 |
} |
|
115 |
return noDataElevationField; |
|
116 |
} |
|
117 |
|
|
118 |
private JLabel getNoDataLabel() { |
|
119 |
if (noDataElevationText == null) { |
|
120 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
121 |
noDataElevationText = |
|
122 |
new JLabel(i18nManager.getTranslation("nodata")); |
|
123 |
} |
|
124 |
return noDataElevationText; |
|
125 |
} |
|
126 |
|
|
127 |
protected JComboBox<String> getUnitsComboBox() { |
|
128 |
if (unitsElevationCombo == null) { |
|
129 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
130 |
String meters = i18nManager.getTranslation("meters"); |
|
131 |
String foots = i18nManager.getTranslation("Pies"); |
|
132 |
unitsElevationCombo = new JComboBox<String>(); |
|
133 |
unitsElevationCombo.addItem(meters); |
|
134 |
unitsElevationCombo.addItem(foots); |
|
135 |
} |
|
136 |
return unitsElevationCombo; |
|
137 |
} |
|
138 |
|
|
139 |
private JLabel getUnitsLabel() { |
|
140 |
if (unitsElevationText == null) { |
|
141 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
142 |
unitsElevationText = |
|
143 |
new JLabel(i18nManager.getTranslation("units")); |
|
144 |
} |
|
145 |
return unitsElevationText; |
|
146 |
} |
|
147 |
|
|
148 |
protected JComboBox<String> getFieldComboBox() { |
|
149 |
if (fieldElevationCombo == null) { |
|
150 |
fieldElevationCombo = new JComboBox<String>(); |
|
151 |
} |
|
152 |
return fieldElevationCombo; |
|
153 |
} |
|
154 |
|
|
155 |
protected JLabel getFieldLabel() { |
|
156 |
if (fieldElevationText == null) { |
|
157 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
158 |
fieldElevationText = |
|
159 |
new JLabel(i18nManager.getTranslation("elevation_field")); |
|
160 |
} |
|
161 |
return fieldElevationText; |
|
162 |
} |
|
163 |
|
|
164 |
private GridBagConstraints createGbcForm(int x, int y) { |
|
165 |
GridBagConstraints gbc = new GridBagConstraints(); |
|
166 |
gbc.gridx = x; |
|
167 |
gbc.gridy = y; |
|
168 |
gbc.gridwidth = 1; |
|
169 |
gbc.gridheight = 1; |
|
170 |
|
|
171 |
gbc.anchor = |
|
172 |
(x == 0) ? GridBagConstraints.WEST : GridBagConstraints.EAST; |
|
173 |
gbc.fill = |
|
174 |
(x == 0) ? GridBagConstraints.BOTH : GridBagConstraints.HORIZONTAL; |
|
175 |
|
|
176 |
// gbc.insets = (x == 0) ? new Insets(top, left, bottom, right) : |
|
177 |
// EAST_INSETS; |
|
178 |
gbc.insets = insets; |
|
179 |
gbc.weightx = (x == 0) ? 0.1 : 1.0; |
|
180 |
gbc.weighty = 1.0; |
|
181 |
return gbc; |
|
182 |
} |
|
183 |
|
|
184 |
private JPanel getNorthPanel() { |
|
185 |
if (northPanel == null) { |
|
186 |
northPanel = new JPanel(new GridBagLayout()); |
|
187 |
|
|
188 |
GridBagConstraints cons = new GridBagConstraints(); |
|
189 |
cons.gridx = 0; |
|
190 |
cons.gridy = 0; |
|
191 |
cons.weightx = 0; |
|
192 |
cons.weighty = 1; |
|
193 |
cons.gridwidth = 1; |
|
194 |
cons.gridheight = 1; |
|
195 |
cons.fill = GridBagConstraints.NONE; |
|
196 |
cons.anchor = GridBagConstraints.WEST; |
|
197 |
cons.insets = insets; |
|
198 |
|
|
199 |
northPanel.add(getLoadModeLabel(), cons); |
|
200 |
|
|
201 |
cons = new GridBagConstraints(); |
|
202 |
cons.gridx = 1; |
|
203 |
cons.gridy = 0; |
|
204 |
cons.weightx = 1; |
|
205 |
cons.weighty = 1; |
|
206 |
cons.gridwidth = 3; |
|
207 |
cons.gridheight = 1; |
|
208 |
cons.insets = insets; |
|
209 |
cons.fill = GridBagConstraints.NONE; |
|
210 |
cons.anchor = GridBagConstraints.WEST; |
|
211 |
|
|
212 |
northPanel.add(getLoadModesComboBox(), cons); |
|
213 |
} |
|
214 |
return northPanel; |
|
215 |
} |
|
216 |
|
|
217 |
private JPanel getTileConfigurationPanel() { |
|
218 |
if (tileConfigurationPanel == null) { |
|
219 |
|
|
220 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
221 |
|
|
222 |
tileConfigurationPanel = new JPanel(new GridLayout(3, 1)); |
|
223 |
tileConfigurationPanel.setBorder(BorderFactory.createTitledBorder( |
|
224 |
BorderFactory.createLineBorder(Color.GRAY), |
|
225 |
i18nManager.getTranslation("tile_configuration"))); |
|
226 |
|
|
227 |
tileConfigurationPanel.add(getMinMaxPanel()); |
|
228 |
|
|
229 |
tileConfigurationPanel.add(getDetailPanel()); |
|
230 |
|
|
231 |
tileConfigurationPanel.add(getTileSizePanel()); |
|
232 |
|
|
233 |
} |
|
234 |
return tileConfigurationPanel; |
|
235 |
} |
|
236 |
|
|
237 |
private JPanel getMinMaxPanel() { |
|
238 |
if (minMaxPanel == null) { |
|
239 |
minMaxPanel = new JPanel(new GridBagLayout()); |
|
240 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
241 |
minMaxPanel.setBorder(BorderFactory.createTitledBorder( |
|
242 |
BorderFactory.createLineBorder(Color.GRAY), |
|
243 |
i18nManager.getTranslation("level_details"))); |
|
244 |
|
|
245 |
minMaxPanel.add(getMinLabel(), createGbcForm(0, 0)); |
|
246 |
minMaxPanel.add(getMinTextField(), createGbcForm(1, 0)); |
|
247 |
minMaxPanel.add(getMaxLabel(), createGbcForm(0, 1)); |
|
248 |
minMaxPanel.add(getMaxTextField(), createGbcForm(1, 1)); |
|
249 |
} |
|
250 |
return minMaxPanel; |
|
251 |
} |
|
252 |
|
|
253 |
protected JTextField getMaxTextField() { |
|
254 |
if (maximumField == null) { |
|
255 |
maximumField = new JTextField(); |
|
256 |
} |
|
257 |
return maximumField; |
|
258 |
} |
|
259 |
|
|
260 |
private JLabel getMaxLabel() { |
|
261 |
if (maximumText == null) { |
|
262 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
263 |
maximumText = new JLabel(i18nManager.getTranslation("Maximum")); |
|
264 |
} |
|
265 |
return maximumText; |
|
266 |
} |
|
267 |
|
|
268 |
protected JTextField getMinTextField() { |
|
269 |
if (minimumField == null) { |
|
270 |
minimumField = new JTextField(); |
|
271 |
} |
|
272 |
return minimumField; |
|
273 |
} |
|
274 |
|
|
275 |
private JLabel getMinLabel() { |
|
276 |
if (minimumText == null) { |
|
277 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
278 |
minimumText = new JLabel(i18nManager.getTranslation("Minimum")); |
|
279 |
} |
|
280 |
return minimumText; |
|
281 |
} |
|
282 |
|
|
283 |
private JPanel getDetailPanel() { |
|
284 |
if (detailPanel == null) { |
|
285 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
286 |
detailPanel = new JPanel(new GridBagLayout()); |
|
287 |
detailPanel.setBorder(BorderFactory.createTitledBorder( |
|
288 |
BorderFactory.createLineBorder(Color.GRAY), |
|
289 |
i18nManager.getTranslation("zero_level_resolution"))); |
|
290 |
|
|
291 |
GridBagConstraints cons = new GridBagConstraints(); |
|
292 |
cons.gridx = 0; |
|
293 |
cons.gridy = 0; |
|
294 |
cons.weightx = 1; |
|
295 |
cons.weighty = 1; |
|
296 |
cons.gridwidth = 1; |
|
297 |
cons.gridheight = 1; |
|
298 |
cons.fill = GridBagConstraints.BOTH; |
|
299 |
cons.anchor = GridBagConstraints.CENTER; |
|
300 |
cons.insets = insets; |
|
301 |
detailPanel.add(getLezelZeroSlider(), cons); |
|
302 |
} |
|
303 |
return detailPanel; |
|
304 |
} |
|
305 |
|
|
306 |
@SuppressWarnings({ "unchecked", "rawtypes" }) |
|
307 |
protected JSlider getLezelZeroSlider() { |
|
308 |
if (levelDetailSlider == null) { |
|
309 |
levelDetailSlider = new JSlider(JSlider.HORIZONTAL, 0, 10, 5); |
|
310 |
|
|
311 |
// Create the label table |
|
312 |
Hashtable labelTable = new Hashtable(); |
|
313 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
314 |
labelTable.put(new Integer(0), |
|
315 |
new JLabel(i18nManager.getTranslation("low"))); |
|
316 |
labelTable.put(new Integer(10), |
|
317 |
new JLabel(i18nManager.getTranslation("high"))); |
|
318 |
levelDetailSlider.setLabelTable(labelTable); |
|
319 |
levelDetailSlider.setPaintLabels(true); |
|
320 |
levelDetailSlider.setMajorTickSpacing(1); |
|
321 |
levelDetailSlider.setPaintTicks(true); |
|
322 |
} |
|
323 |
return levelDetailSlider; |
|
324 |
} |
|
325 |
|
|
326 |
private JPanel getTileSizePanel() { |
|
327 |
if (tileSizePanel == null) { |
|
328 |
tileSizePanel = new JPanel(new GridBagLayout()); |
|
329 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
330 |
tileSizePanel.setBorder(BorderFactory.createTitledBorder( |
|
331 |
BorderFactory.createLineBorder(Color.GRAY), |
|
332 |
i18nManager.getTranslation("tilesize"))); |
|
333 |
|
|
334 |
tileSizePanel.add(getHeightLabel(), createGbcForm(0, 0)); |
|
335 |
tileSizePanel.add(getHeightField(), createGbcForm(1, 0)); |
|
336 |
tileSizePanel.add(getWidthLabel(), createGbcForm(0, 1)); |
|
337 |
tileSizePanel.add(getWidthField(), createGbcForm(1, 1)); |
|
338 |
} |
|
339 |
return tileSizePanel; |
|
340 |
} |
|
341 |
|
|
342 |
protected JTextField getWidthField() { |
|
343 |
if (tileWidthField == null) { |
|
344 |
tileWidthField = new JTextField(); |
|
345 |
} |
|
346 |
return tileWidthField; |
|
347 |
} |
|
348 |
|
|
349 |
private JLabel getWidthLabel() { |
|
350 |
if (tileWidthText == null) { |
|
351 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
352 |
tileWidthText = new JLabel(i18nManager.getTranslation("width")); |
|
353 |
} |
|
354 |
return tileWidthText; |
|
355 |
} |
|
356 |
|
|
357 |
protected JTextField getHeightField() { |
|
358 |
if (tileHeightField == null) { |
|
359 |
tileHeightField = new JTextField(); |
|
360 |
} |
|
361 |
return tileHeightField; |
|
362 |
} |
|
363 |
|
|
364 |
private JLabel getHeightLabel() { |
|
365 |
if (tileHeightText == null) { |
|
366 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
367 |
tileHeightText = new JLabel(i18nManager.getTranslation("height")); |
|
368 |
} |
|
369 |
return tileHeightText; |
|
370 |
} |
|
371 |
|
|
372 |
private JLabel getLoadModeLabel() { |
|
373 |
if (loadModeText == null) { |
|
374 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
375 |
loadModeText = new JLabel(i18nManager.getTranslation("load_mode")); |
|
376 |
} |
|
377 |
return loadModeText; |
|
378 |
} |
|
379 |
|
|
380 |
protected JComboBox<String> getLoadModesComboBox() { |
|
381 |
if (loadModes == null) { |
|
382 |
loadModes = new JComboBox<String>(); |
|
383 |
} |
|
384 |
return loadModes; |
|
385 |
} |
|
386 |
|
|
387 |
public void enableComponents(Container container, boolean enable) { |
|
388 |
java.awt.Component[] components = container.getComponents(); |
|
389 |
for (java.awt.Component component : components) { |
|
390 |
component.setEnabled(enable); |
|
391 |
if (component instanceof Container) { |
|
392 |
enableComponents((Container) component, enable); |
|
393 |
} |
|
394 |
} |
|
395 |
} |
|
396 |
|
|
397 |
public JComponent asJComponent() { |
|
398 |
return this; |
|
399 |
} |
|
400 |
} |
2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/properties/layer/DefaultLayerProperties3DPanel.java | ||
---|---|---|
1 |
package org.gvsig.view3d.swing.impl.properties.layer; |
|
2 |
|
|
3 |
import java.awt.event.ActionEvent; |
|
4 |
import java.awt.event.ActionListener; |
|
5 |
import java.util.Iterator; |
|
6 |
|
|
7 |
import javax.swing.JComboBox; |
|
8 |
|
|
9 |
import org.gvsig.fmap.dal.exception.DataException; |
|
10 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
11 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
12 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
13 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
14 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
15 |
import org.gvsig.tools.ToolsLocator; |
|
16 |
import org.gvsig.tools.i18n.I18nManager; |
|
17 |
import org.gvsig.view3d.lib.api.View3DLocator; |
|
18 |
import org.gvsig.view3d.lib.api.View3DManager; |
|
19 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
20 |
import org.gvsig.view3d.lib.api.properties.VectorialLayerProperties3D; |
|
21 |
import org.slf4j.Logger; |
|
22 |
import org.slf4j.LoggerFactory; |
|
23 |
|
|
24 |
public class DefaultLayerProperties3DPanel extends |
|
25 |
AbstractLayerProperties3DPanel { |
|
26 |
|
|
27 |
private static final Logger LOG = LoggerFactory |
|
28 |
.getLogger(DefaultLayerProperties3DPanel.class); |
|
29 |
|
|
30 |
private static final long serialVersionUID = -9087506154366633837L; |
|
31 |
|
|
32 |
private FLayer layer = null; |
|
33 |
private LayerProperties3D layerProperties; |
|
34 |
|
|
35 |
public DefaultLayerProperties3DPanel(FLayer theLayer) { |
|
36 |
super(); |
|
37 |
this.layer = theLayer; |
|
38 |
|
|
39 |
View3DManager manager = View3DLocator.getManager(); |
|
40 |
this.layerProperties = manager.getLayerProperties(theLayer); |
|
41 |
|
|
42 |
getLoadModesComboBox().addActionListener(new ActionListener() { |
|
43 |
|
|
44 |
public void actionPerformed(ActionEvent e) { |
|
45 |
@SuppressWarnings("rawtypes") |
|
46 |
JComboBox combo = (JComboBox) e.getSource(); |
|
47 |
String selectedItem = (String) combo.getSelectedItem(); |
|
48 |
update(selectedItem); |
|
49 |
} |
|
50 |
}); |
|
51 |
|
|
52 |
fillPanel(); |
|
53 |
} |
|
54 |
|
|
55 |
private void fillPanel() { |
|
56 |
fillLoadModes(); |
|
57 |
fillDetailLevels(); |
|
58 |
fillLevelZeroResolution(); |
|
59 |
fillTileSize(); |
|
60 |
fillElevationFields(); |
|
61 |
fillElevationUnits(); |
|
62 |
fillNoDataValue(); |
|
63 |
} |
|
64 |
|
|
65 |
private void fillNoDataValue() { |
|
66 |
getNoDataField().setText( |
|
67 |
String.valueOf(layerProperties.getNoDataValue())); |
|
68 |
|
|
69 |
} |
|
70 |
|
|
71 |
private void fillElevationUnits() { |
|
72 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
73 |
String elevationUnits = layerProperties.getElevationUnits(); |
|
74 |
|
|
75 |
if (i18nManager.getTranslation("meters").equalsIgnoreCase( |
|
76 |
elevationUnits)) { |
|
77 |
getUnitsComboBox().setSelectedItem( |
|
78 |
i18nManager.getTranslation("meters")); |
|
79 |
} else if (i18nManager.getTranslation("Pies").equalsIgnoreCase( |
|
80 |
elevationUnits)) { |
|
81 |
getUnitsComboBox().setSelectedItem( |
|
82 |
i18nManager.getTranslation("Pies")); |
|
83 |
} |
|
84 |
|
|
85 |
} |
|
86 |
|
|
87 |
private void fillTileSize() { |
|
88 |
int width = layerProperties.getTileWidth(); |
|
89 |
int height = layerProperties.getTileHeight(); |
|
90 |
|
|
91 |
getWidthField().setText(String.valueOf(width)); |
|
92 |
getHeightField().setText(String.valueOf(height)); |
|
93 |
} |
|
94 |
|
|
95 |
private void fillLevelZeroResolution() { |
|
96 |
getLezelZeroSlider().setValue( |
|
97 |
(int) layerProperties.getLevelZeroResolutionMultiplier()); |
|
98 |
} |
|
99 |
|
|
100 |
private void fillDetailLevels() { |
|
101 |
int minLevel = layerProperties.getMinLevel(); |
|
102 |
int maxLevel = layerProperties.getMaxLevel(); |
|
103 |
|
|
104 |
getMaxTextField().setText(String.valueOf(maxLevel)); |
|
105 |
getMinTextField().setText(String.valueOf(minLevel)); |
|
106 |
} |
|
107 |
|
|
108 |
@SuppressWarnings("rawtypes") |
|
109 |
private void fillElevationFields() { |
|
110 |
|
|
111 |
if (this.layer == null) { |
|
112 |
return; |
|
113 |
} |
|
114 |
|
|
115 |
if (getFieldComboBox().getItemCount() > 0) { |
|
116 |
getFieldComboBox().removeAllItems(); |
|
117 |
} |
|
118 |
|
|
119 |
if (this.layer instanceof FLyrVect) { |
|
120 |
FLyrVect vectorialLayer = (FLyrVect) layer; |
|
121 |
FeatureStore featureStore = vectorialLayer.getFeatureStore(); |
|
122 |
try { |
|
123 |
FeatureType featureType = featureStore.getDefaultFeatureType(); |
|
124 |
Iterator it = featureType.iterator(); |
|
125 |
while (it.hasNext()) { |
|
126 |
FeatureAttributeDescriptor attribute = |
|
127 |
(FeatureAttributeDescriptor) it.next(); |
|
128 |
getFieldComboBox().addItem(attribute.getName()); |
|
129 |
} |
|
130 |
|
|
131 |
} catch (DataException e) { |
|
132 |
LOG.error("Can't get defautl feature type of {}", |
|
133 |
layer.getName(), e); |
|
134 |
getFieldComboBox().setVisible(false); |
|
135 |
return; |
|
136 |
} |
|
137 |
|
|
138 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
139 |
VectorialLayerProperties3D vectorialProperties = |
|
140 |
(VectorialLayerProperties3D) layerProperties; |
|
141 |
String elevationField = vectorialProperties.getElevationField(); |
|
142 |
getFieldComboBox().setSelectedItem(elevationField); |
|
143 |
} |
|
144 |
} else { |
|
145 |
getFieldLabel().setVisible(false); |
|
146 |
getFieldComboBox().setVisible(false); |
|
147 |
} |
|
148 |
} |
|
149 |
|
|
150 |
private void fillLoadModes() { |
|
151 |
|
|
152 |
if (this.layer == null) { |
|
153 |
return; |
|
154 |
} |
|
155 |
|
|
156 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
157 |
JComboBox<String> loadModesComboBox = getLoadModesComboBox(); |
|
158 |
|
|
159 |
if (loadModesComboBox.getItemCount() > 0) { |
|
160 |
loadModesComboBox.removeAllItems(); |
|
161 |
} |
|
162 |
|
|
163 |
if (this.layer instanceof FLyrVect |
|
164 |
&& layerProperties instanceof VectorialLayerProperties3D) { |
|
165 |
loadModesComboBox.addItem(i18nManager |
|
166 |
.getTranslation("rasterized_vectorial")); |
|
167 |
} else { |
|
168 |
loadModesComboBox.addItem(i18nManager |
|
169 |
.getTranslation("raster_image")); |
|
170 |
} |
|
171 |
loadModesComboBox.addItem(i18nManager.getTranslation("elevation")); |
|
172 |
|
|
173 |
if (layerProperties.getElevation()) { |
|
174 |
loadModesComboBox.setSelectedItem(i18nManager |
|
175 |
.getTranslation("elevation")); |
|
176 |
} else { |
|
177 |
|
|
178 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
|
179 |
loadModesComboBox.setSelectedItem(i18nManager |
|
180 |
.getTranslation("rasterized_vectorial")); |
|
181 |
} else { |
|
182 |
loadModesComboBox.setSelectedItem(i18nManager |
|
183 |
.getTranslation("raster_image")); |
|
184 |
} |
|
185 |
} |
|
186 |
} |
|
187 |
|
|
188 |
public FLayer getLayer() { |
|
189 |
return layer; |
|
190 |
} |
|
191 |
|
|
192 |
private void update(String loadMode) { |
|
193 |
|
|
194 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
195 |
if (loadMode.equalsIgnoreCase(i18nManager |
|
196 |
.getTranslation("rasterized_vectorial")) |
|
197 |
|| loadMode.equalsIgnoreCase(i18nManager |
|
198 |
.getTranslation("raster_image"))) { |
|
199 |
enableComponents(getElevationPanel(), false); |
|
200 |
} else if (loadMode.equalsIgnoreCase(i18nManager |
|
201 |
.getTranslation("elevation"))) { |
|
202 |
enableComponents(getElevationPanel(), true); |
|
203 |
} |
|
204 |
} |
|
205 |
|
|
206 |
public void setLayer(FLayer theLayer) { |
|
207 |
this.layer = theLayer; |
|
208 |
|
|
209 |
fillPanel(); |
|
210 |
} |
|
211 |
|
|
212 |
public String getElevationField() { |
|
213 |
return (String) getFieldComboBox().getSelectedItem(); |
|
214 |
} |
|
215 |
|
|
216 |
public String getElevationUnits() { |
|
217 |
return (String) getUnitsComboBox().getSelectedItem(); |
|
218 |
} |
|
219 |
|
|
220 |
public int getMaxLevel() { |
|
221 |
String value = getMaxTextField().getText(); |
|
222 |
return Integer.valueOf(value); |
|
223 |
} |
|
224 |
|
|
225 |
public int getMinLevel() { |
|
226 |
String value = getMinTextField().getText(); |
|
227 |
return Integer.valueOf(value); |
Also available in: Unified diff