Statistics
| Revision:

gvsig-3d / 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 @ 755

History | View | Annotate | Download (4.35 KB)

1
package org.gvsig.view3d.app.properties;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5

    
6
import javax.swing.JOptionPane;
7

    
8
import org.gvsig.fmap.mapcontext.layers.FLayer;
9
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
10
import org.gvsig.tools.ToolsLocator;
11
import org.gvsig.tools.i18n.I18nManager;
12
import org.gvsig.tools.swing.api.ToolsSwingLocator;
13
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
14
import org.gvsig.view3d.lib.api.View3DLocator;
15
import org.gvsig.view3d.lib.api.View3DManager;
16
import org.gvsig.view3d.lib.api.loader.LoaderParameters;
17
import org.gvsig.view3d.swing.api.View3DSwingLocator;
18
import org.gvsig.view3d.swing.api.View3DSwingManager;
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;
23

    
24
/**
25
 * 
26
 * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
27
 *
28
 */
29
public class RasterLayerProperties3DPanel extends AbstractPanel {
30

    
31
    private static final Logger LOG = LoggerFactory.getLogger(RasterLayerProperties3DPanel.class);
32

    
33
    private static final long serialVersionUID = 5429099827670959087L;
34

    
35
    private FLayer layer;
36
    private JLoaderParametersSelector loaderParametersManager;
37
    private LoaderParameters tmpLoaderParameters;
38

    
39
    /**
40
     * 
41
     */
42
    public RasterLayerProperties3DPanel() {
43
        super();
44
        initialize();
45
    }
46

    
47
    public void accept() {
48
        View3DManager manager = View3DLocator.getManager();
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
        }
61
    }
62

    
63
    public void apply() {
64
        View3DManager manager = View3DLocator.getManager();
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();
82
            }
83
        } catch (CloneNotSupportedException e) {
84
            LOG.error("Parameters can not be cloned", e);
85
            return;
86
        }
87

    
88
        accept();
89
    }
90

    
91
    public void cancel() {
92
        if (tmpLoaderParameters != null) {
93
            View3DManager manager = View3DLocator.getManager();
94
            manager.setLoaderParameters(layer, tmpLoaderParameters);
95
        }
96
        this.loaderParametersManager = null;
97
        this.tmpLoaderParameters = null;
98
    }
99

    
100
    @Override
101
    protected void initialize() {
102
        I18nManager i18nManager = ToolsLocator.getI18nManager();
103
        setLabel(i18nManager.getTranslation("3D"));
104

    
105
        this.setLayout(new BorderLayout());
106
        this.setPreferredSize(new Dimension(100, 80));
107
    }
108

    
109
    public void selected() {
110
    }
111

    
112
    public void setReference(Object ref) {
113
        super.setReference(ref);
114

    
115
        if (ref instanceof FLayer) {
116
            this.layer = (FLayer) ref;
117
            View3DSwingManager swingManager = View3DSwingLocator.getManager();
118
            this.loaderParametersManager = swingManager.createJLoaderParametersManager(layer);
119
            this.add(loaderParametersManager.asJComponent(), BorderLayout.CENTER);
120
        }
121
    }
122

    
123
}