Revision 755 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
RasterLayerProperties3DPanel.java | ||
---|---|---|
3 | 3 |
import java.awt.BorderLayout; |
4 | 4 |
import java.awt.Dimension; |
5 | 5 |
|
6 |
import javax.swing.JOptionPane; |
|
7 |
|
|
6 | 8 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
7 | 9 |
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel; |
8 | 10 |
import org.gvsig.tools.ToolsLocator; |
9 | 11 |
import org.gvsig.tools.i18n.I18nManager; |
12 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
|
13 |
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager; |
|
10 | 14 |
import org.gvsig.view3d.lib.api.View3DLocator; |
11 | 15 |
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; |
|
16 |
import org.gvsig.view3d.lib.api.loader.LoaderParameters; |
|
14 | 17 |
import org.gvsig.view3d.swing.api.View3DSwingLocator; |
15 | 18 |
import org.gvsig.view3d.swing.api.View3DSwingManager; |
16 |
import org.gvsig.view3d.swing.api.properties.LayerProperties3DPanel; |
|
19 |
import org.gvsig.view3d.swing.api.exception.InvalidLoaderParametersException; |
|
20 |
import org.gvsig.view3d.swing.api.loader.JLoaderParametersSelector; |
|
21 |
import org.slf4j.Logger; |
|
22 |
import org.slf4j.LoggerFactory; |
|
17 | 23 |
|
24 |
/** |
|
25 |
* |
|
26 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
|
27 |
* |
|
28 |
*/ |
|
18 | 29 |
public class RasterLayerProperties3DPanel extends AbstractPanel { |
19 | 30 |
|
31 |
private static final Logger LOG = LoggerFactory.getLogger(RasterLayerProperties3DPanel.class); |
|
32 |
|
|
20 | 33 |
private static final long serialVersionUID = 5429099827670959087L; |
21 | 34 |
|
22 |
private LayerProperties3DPanel propertiesPanel; |
|
23 |
private LayerProperties3D tmpProperties; |
|
35 |
private FLayer layer; |
|
36 |
private JLoaderParametersSelector loaderParametersManager; |
|
37 |
private LoaderParameters tmpLoaderParameters; |
|
24 | 38 |
|
39 |
/** |
|
40 |
* |
|
41 |
*/ |
|
25 | 42 |
public RasterLayerProperties3DPanel() { |
26 | 43 |
super(); |
27 | 44 |
initialize(); |
28 | 45 |
} |
29 | 46 |
|
30 | 47 |
public void accept() { |
31 |
apply(); |
|
32 |
|
|
33 | 48 |
View3DManager manager = View3DLocator.getManager(); |
34 |
manager.setLayerProperties(propertiesPanel.getLayer(), tmpProperties); |
|
49 |
try { |
|
50 |
manager.setLoaderParameters(layer, loaderParametersManager |
|
51 |
.getSelectedJLoaderParameters().getLoaderParameters()); |
|
52 |
} catch (InvalidLoaderParametersException e) { |
|
53 |
ThreadSafeDialogsManager dialogsManager = |
|
54 |
ToolsSwingLocator.getThreadSafeDialogsManager(); |
|
55 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
56 |
dialogsManager.messageDialog( |
|
57 |
i18nManager.getTranslation(e.getMessageKey()), |
|
58 |
i18nManager.getTranslation("_error"), JOptionPane.ERROR_MESSAGE); |
|
59 |
return; |
|
60 |
} |
|
35 | 61 |
} |
36 | 62 |
|
37 | 63 |
public void apply() { |
38 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
39 |
|
|
40 | 64 |
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()); |
|
65 |
try { |
|
66 |
if (manager.getLoaderParameters(layer) == null) { |
|
67 |
try { |
|
68 |
tmpLoaderParameters = |
|
69 |
(LoaderParameters) loaderParametersManager.getSelectedJLoaderParameters() |
|
70 |
.getLoaderParameters().clone(); |
|
71 |
} catch (InvalidLoaderParametersException e) { |
|
72 |
ThreadSafeDialogsManager dialogsManager = |
|
73 |
ToolsSwingLocator.getThreadSafeDialogsManager(); |
|
74 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
75 |
dialogsManager.messageDialog( |
|
76 |
i18nManager.getTranslation(e.getMessageKey()), |
|
77 |
i18nManager.getTranslation("_error"), JOptionPane.ERROR_MESSAGE); |
|
78 |
return; |
|
79 |
} |
|
80 |
} else { |
|
81 |
tmpLoaderParameters = (LoaderParameters) manager.getLoaderParameters(layer).clone(); |
|
61 | 82 |
} |
83 |
} catch (CloneNotSupportedException e) { |
|
84 |
LOG.error("Parameters can not be cloned", e); |
|
85 |
return; |
|
86 |
} |
|
62 | 87 |
|
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 |
layerProperties.setElevation(false); |
|
74 |
} |
|
75 |
tmpProperties = layerProperties; |
|
88 |
accept(); |
|
76 | 89 |
} |
77 | 90 |
|
78 | 91 |
public void cancel() { |
79 |
this.propertiesPanel = null; |
|
92 |
if (tmpLoaderParameters != null) { |
|
93 |
View3DManager manager = View3DLocator.getManager(); |
|
94 |
manager.setLoaderParameters(layer, tmpLoaderParameters); |
|
95 |
} |
|
96 |
this.loaderParametersManager = null; |
|
97 |
this.tmpLoaderParameters = null; |
|
80 | 98 |
} |
81 | 99 |
|
82 | 100 |
@Override |
... | ... | |
95 | 113 |
super.setReference(ref); |
96 | 114 |
|
97 | 115 |
if (ref instanceof FLayer) { |
98 |
FLayer layer = (FLayer) ref;
|
|
116 |
this.layer = (FLayer) ref;
|
|
99 | 117 |
View3DSwingManager swingManager = View3DSwingLocator.getManager(); |
100 |
this.propertiesPanel = |
|
101 |
swingManager.createLayerProperties3DPanel(layer); |
|
102 |
this.add(propertiesPanel.asJComponent(), BorderLayout.CENTER); |
|
118 |
this.loaderParametersManager = swingManager.createJLoaderParametersManager(layer); |
|
119 |
this.add(loaderParametersManager.asJComponent(), BorderLayout.CENTER); |
|
103 | 120 |
} |
104 | 121 |
} |
105 | 122 |
|
Also available in: Unified diff