Statistics
| Revision:

root / trunk / extensions / extRemoteSensing / src / org / gvsig / remotesensing / scatterplot / gui / ScatterPlotDialog.java @ 19527

History | View | Annotate | Download (4.57 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.scatterplot.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
import org.gvsig.raster.grid.GridException;
51

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

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

    
68
public class ScatterPlotDialog extends JPanel implements IWindow, IWindowListener, ButtonsPanelListener {
69
        
70
        private static final long serialVersionUID = 2847035927527203595L;
71
        private ScatterPlotPanel scatterPlotPanel = null;
72
        private MapControl mapControl = null;
73
        private String previousTool = null;
74
        
75
        
76
        /**
77
         * Constructor
78
         * @param width Ancho del panel
79
         * @param height Alto del panel
80
         */
81
        public ScatterPlotDialog(int width, int height) {
82
                this.setSize(width, height);
83
                this.setLayout(new BorderLayout());
84
                this.add(getScatterPlotPanel(), BorderLayout.CENTER);
85
                View view = (View) PluginServices.getMDIManager().getActiveWindow();
86
                mapControl = view.getMapControl();
87
                previousTool = mapControl.getCurrentTool();
88
                
89
        }
90
        
91
        
92
        public WindowInfo getWindowInfo() {
93
                WindowInfo m_viewinfo = new WindowInfo(WindowInfo.PALETTE | WindowInfo.RESIZABLE);
94
                if(scatterPlotPanel.getLayer() != null)
95
                        m_viewinfo.setAdditionalInfo(scatterPlotPanel.getLayer().getName());
96
                m_viewinfo.setTitle(PluginServices.getText(this, "diagrama_dispersion")+" - "+m_viewinfo.getAdditionalInfo());
97
                m_viewinfo.setHeight(this.getHeight());
98
                m_viewinfo.setWidth(this.getWidth());
99
                return m_viewinfo;
100
        }
101

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

    
108
                // Al pulsar Aceptar simplemente la ventana se cierra
109
                if (e.getButton() == ButtonsPanel.BUTTON_ACCEPT) {
110
                        getScatterPlotPanel().aplicar();
111
                }
112
        }
113
        
114
        /**
115
         * Acciones a ejecutar cuando se cancela
116
         */
117
        public void close() {
118
                try {
119
                        PluginServices.getMDIManager().closeWindow(this);
120
                } catch (ArrayIndexOutOfBoundsException e) {
121
                        //Si la ventana no se puede eliminar no hacemos nada
122
                }
123
        }
124
        
125
        /**
126
         * Se asigna el layer sobre el que esta asociado el diagrama
127
         * @param layer
128
         * @throws GridException 
129
         */
130
        public void setLayer(FLayer layer) throws GridException {
131
                getScatterPlotPanel().setFLayer(layer);
132
        }
133
        
134
        
135
        /** Recupera la herramienta previa seleccionada */
136
        public void setPreviousTool(){
137
                if (previousTool!=null)
138
                        getScatterPlotPanel().getMapControl().setTool(previousTool);
139
        }
140

    
141
        public void windowActivated() {
142
                
143
        }
144

    
145
        public void windowClosed() {
146
                getScatterPlotPanel().getMapControl().rePaintDirtyLayers();
147
                setPreviousTool();
148
        }
149

    
150
        
151
        /**
152
         *  @return scatterplotpanel
153
         * */
154
        public ScatterPlotPanel getScatterPlotPanel() {
155
                if (scatterPlotPanel == null){
156
                        scatterPlotPanel = new ScatterPlotPanel(this);
157
                        scatterPlotPanel.addButtonPressedListener(this);
158
                }
159
                return scatterPlotPanel;
160
        }
161
}