Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extRemoteSensing / src / org / gvsig / remotesensing / profiles / gui / ProfileDialog.java @ 20296

History | View | Annotate | Download (4.24 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.gui.beans.buttonspanel.ButtonsPanel;
48
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
49
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
50

    
51
import com.iver.andami.PluginServices;
52
import com.iver.andami.ui.mdiManager.IWindow;
53
import com.iver.andami.ui.mdiManager.IWindowListener;
54
import com.iver.andami.ui.mdiManager.WindowInfo;
55
import com.iver.cit.gvsig.fmap.MapControl;
56
import com.iver.cit.gvsig.fmap.layers.GraphicLayer;
57
import com.iver.cit.gvsig.project.documents.view.gui.View;
58

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

    
67
public class ProfileDialog extends JPanel implements IWindow, IWindowListener, ButtonsPanelListener {
68
        
69
        private static final long serialVersionUID = 2847035927527203595L;
70
        private ProfilePanel profilePanel = null;
71
        private MapControl mapControl = null;
72
        private String previousTool = null;
73
        
74
        /**
75
         * Constructor
76
         * @param width Ancho del panel
77
         * @param height Alto del panel
78
         */
79
        public ProfileDialog(int width, int height, View view) {
80
                this.setSize(width, height);
81
                this.setLayout(new BorderLayout());
82
                mapControl = view.getMapControl();
83
                this.add(getProfilePanel(), BorderLayout.CENTER);
84
                previousTool = mapControl.getCurrentTool();
85
        }
86
        
87
        
88
        public WindowInfo getWindowInfo() {
89
                WindowInfo m_viewinfo = new WindowInfo(WindowInfo.PALETTE | WindowInfo.RESIZABLE);
90
                m_viewinfo.setTitle(PluginServices.getText(this, "perfiles_imagen"));
91
                m_viewinfo.setHeight(this.getHeight());
92
                m_viewinfo.setWidth(this.getWidth());
93
                return m_viewinfo;
94
        }
95

    
96
        public void actionButtonPressed(ButtonsPanelEvent e) {
97
                // Al pulsar Cancelar la ventana se cierra y se refresca la vista
98
                if (e.getButton() == ButtonsPanel.BUTTON_CANCEL) {
99
                        close();
100
                }
101

    
102
                // Al pulsar Aceptar simplemente la ventana se cierra
103
                if (e.getButton() == ButtonsPanel.BUTTON_ACCEPT) {
104
                        close();
105
                }
106
        }
107
        
108
        /**
109
         * Acciones a ejecutar cuando se cancela
110
         */
111
        public void close() {
112
                try {
113
                        PluginServices.getMDIManager().closeWindow(this);
114
                } catch (ArrayIndexOutOfBoundsException e) {
115
                        //Si la ventana no se puede eliminar no hacemos nada
116
                }
117
        }
118
        
119
        /** Recupera la herramienta previa seleccionada */
120
        public void setPreviousTool(){
121
                if (previousTool!=null)
122
                        getProfilePanel().getMapControl().setTool(previousTool);
123
        }
124

    
125
        public void windowActivated() {
126
                
127
        }
128

    
129
        public void windowClosed() {
130
                GraphicLayer graphicLayer = mapControl.getMapContext().getGraphicsLayer();
131
                graphicLayer.clearAllGraphics();
132
                graphicLayer.clearSymbolsGraphics();
133
                getProfilePanel().getMapControl().rePaintDirtyLayers();
134
                setPreviousTool();
135
        }
136

    
137
        
138
        /**
139
         *  @return ProfilePanel. Panel principal
140
         * */
141
        public ProfilePanel getProfilePanel() {
142
                if (profilePanel == null){
143
                        profilePanel = new ProfilePanel(this);
144
                        profilePanel.addButtonPressedListener(this);
145
                }
146
                return profilePanel;
147
        }
148

    
149

    
150
        public MapControl getMapControl() {
151
                return mapControl;
152
        }
153
}