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

View differences:

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