Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extRemoteSensing / src / org / gvsig / remotesensing / profiles / gui / ProfileDialog.java @ 31496

History | View | Annotate | Download (4.71 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2007 Instituto de Desarrollo Regional and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*
19
* For more information, contact:
20
*
21
*  Generalitat Valenciana
22
*   Conselleria d'Infraestructures i Transport
23
*   Av. Blasco Ib??ez, 50
24
*   46010 VALENCIA
25
*   SPAIN
26
*
27
*      +34 963862235
28
*   gvsig@gva.es
29
*      www.gvsig.gva.es
30
*
31
*    or
32
*
33
*   Instituto de Desarrollo Regional (Universidad de Castilla La-Mancha)
34
*   Campus Universitario s/n
35
*   02071 Alabacete
36
*   Spain
37
*
38
*   +34 967 599 200
39
*/
40

    
41
package org.gvsig.remotesensing.profiles.gui;
42

    
43
import java.awt.BorderLayout;
44

    
45
import javax.swing.JPanel;
46

    
47
import org.gvsig.andami.PluginServices;
48
import org.gvsig.andami.ui.mdiManager.IWindow;
49
import org.gvsig.andami.ui.mdiManager.IWindowListener;
50
import org.gvsig.andami.ui.mdiManager.WindowInfo;
51
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
52
import org.gvsig.fmap.mapcontext.layers.vectorial.GraphicLayer;
53
import org.gvsig.fmap.mapcontrol.MapControl;
54
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
55
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
56
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
57
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
58

    
59

    
60
/**
61
* Dialogo para los diagramas de Profiles.
62
*
63
* @author Alejandro Mu?oz Sanchez (alejandro.munoz@uclm.es)
64
* @version 11/12/2007
65
*
66
**/
67

    
68
public class ProfileDialog extends JPanel implements IWindow, IWindowListener, ButtonsPanelListener {
69

    
70
        private static final long serialVersionUID = 2847035927527203595L;
71
        private ProfilePanel profilePanel = null;
72
        private MapControl mapControl = null;
73
        private String previousTool = null;
74
        private FLyrRasterSE fLayer= null;
75

    
76
        /**
77
         * Constructor
78
         * @param width Ancho del panel
79
         * @param height Alto del panel
80
         */
81
        public ProfileDialog(int width, int height, DefaultViewPanel view, FLyrRasterSE fLayer) {
82
                this.setSize(width, height);
83
                this.setLayout(new BorderLayout());
84
                this.fLayer= fLayer;
85
                mapControl = view.getMapControl();
86
                this.add(getProfilePanel(), BorderLayout.CENTER);
87
                previousTool = mapControl.getCurrentTool();
88
        }
89

    
90

    
91
        public WindowInfo getWindowInfo() {
92
                WindowInfo m_viewinfo = new WindowInfo(WindowInfo.PALETTE);
93
                if(fLayer != null)
94
                        m_viewinfo.setAdditionalInfo(fLayer.getName());
95
                m_viewinfo.setTitle(PluginServices.getText(this, "perfiles_imagen")+" - "+m_viewinfo.getAdditionalInfo());
96
                m_viewinfo.setHeight(this.getHeight());
97
                m_viewinfo.setWidth(this.getWidth());
98
                return m_viewinfo;
99
        }
100

    
101
        public void actionButtonPressed(ButtonsPanelEvent e) {
102
                // Al pulsar Cancelar la ventana se cierra y se refresca la vista
103
                if (e.getButton() == ButtonsPanel.BUTTON_CANCEL) {
104
                        close();
105
                }
106

    
107
                // Al pulsar Aceptar simplemente la ventana se cierra
108
                if (e.getButton() == ButtonsPanel.BUTTON_ACCEPT) {
109
                        close();
110
                }
111
        }
112

    
113
        /**
114
         * Acciones a ejecutar cuando se cancela
115
         */
116
        public void close() {
117
                try {
118
                        PluginServices.getMDIManager().closeWindow(this);
119
                } catch (ArrayIndexOutOfBoundsException e) {
120
                        //Si la ventana no se puede eliminar no hacemos nada
121
                }
122
        }
123

    
124
        /** Recupera la herramienta previa seleccionada */
125
        public void setPreviousTool(){
126
                if (previousTool!=null)
127
                        getProfilePanel().getMapControl().setTool(previousTool);
128
        }
129

    
130
        public void windowActivated() {
131

    
132
        }
133

    
134
        /**
135
         * M?todo que realiza acciones al cerrar el dialogo como eliminar los graphis
136
         * de la vista
137
         * */
138
        public void windowClosed() {
139
                GraphicLayer graphicLayer = mapControl.getMapContext().getGraphicsLayer();
140
                graphicLayer.clearAllGraphics();
141
                graphicLayer.clearAllSymbols();
142
                getProfilePanel().getMapControl().rePaintDirtyLayers();
143
                setPreviousTool();
144
        }
145

    
146

    
147
        /**
148
         *  @return ProfilePanel. Panel principal
149
         * */
150
        public ProfilePanel getProfilePanel() {
151
                if (profilePanel == null){
152
                        profilePanel = new ProfilePanel(this);
153
                        profilePanel.addButtonPressedListener(this);
154
                }
155
                return profilePanel;
156
        }
157

    
158

    
159
        public MapControl getMapControl() {
160
                return mapControl;
161
        }
162

    
163
        public FLyrRasterSE getFlayer(){
164
                return fLayer;
165
        }
166

    
167

    
168
        public Object getWindowProfile() {
169
                return WindowInfo.PROPERTIES_PROFILE;
170
        }
171
}