Statistics
| Revision:

root / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / vectorizacion / MainPanel.java @ 27442

History | View | Annotate | Download (4.8 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 IVER T.I. 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
package org.gvsig.rastertools.vectorizacion;
20

    
21
import java.awt.BorderLayout;
22
import java.awt.Dimension;
23
import java.util.ArrayList;
24

    
25
import javax.swing.JPanel;
26

    
27
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
28
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
29
import org.gvsig.raster.beans.previewbase.IPreviewRenderProcess;
30
import org.gvsig.raster.beans.previewbase.PreviewBasePanel;
31
import org.gvsig.raster.util.BasePanel;
32
import org.gvsig.rastertools.vectorizacion.clip.ui.ClipPanel;
33
import org.gvsig.rastertools.vectorizacion.filter.ui.GrayConversionPanel;
34
import org.gvsig.rastertools.vectorizacion.vector.ui.VectorPanel;
35

    
36
/**
37
 * Panel para la conversi?n a escala de grises. Lleva incluida una previsualizaci?n
38
 * de capa.
39
 * 
40
 * 09/06/2008
41
 * @author Nacho Brodin nachobrodin@gmail.com
42
 */
43
public class MainPanel extends BasePanel {
44
        private static final long           serialVersionUID   = -1;
45
        private PreviewBasePanel            previewBasePanel   = null;
46
        private IPreviewRenderProcess       renderProcess      = null;
47
        private FLyrRasterSE                lyr                = null;
48
        //Lista de paneles en el Tab de PreviewBasePanel
49
        private ArrayList                   panels             = new ArrayList();
50
                
51
        /**
52
         * Constructor.
53
         * @param lyr Capa para la preview
54
         * @param previewRender Gestor de la previsualizaci?n
55
         */
56
        public MainPanel(FLyrRasterSE lyr, IPreviewRenderProcess previewRender) {
57
                this.lyr = lyr;
58
                this.renderProcess = previewRender;
59
        }
60
        
61
        /**
62
         * Asigna un panel a los tabs.
63
         * @param p JPanel para a?adir a los tabs
64
         */
65
        public void setPanel(JPanel p) {
66
                panels.add(p);
67
        }
68
        
69
        /**
70
         * Inicializaci?n de componentes gr?ficos. Se llama al
71
         * terminar de a?adir todos los paneles.
72
         */
73
        public void initialize() {
74
                init();
75
                translate();
76
        }
77
        
78
        /**
79
         * Inicializa los componentes gr?ficos
80
         */
81
        protected void init() {
82
                setLayout(new BorderLayout());
83
                add(getPreviewBasePanel(), BorderLayout.CENTER);
84
                getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setVisible(false);
85
                getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setVisible(false);
86
                getPreviewBasePanel().getButtonsPanel().addButton("anterior", 14);
87
                getPreviewBasePanel().getButtonsPanel().addButton("siguiente", 13);
88
        }
89
        
90
        /*
91
         * (non-Javadoc)
92
         * @see org.gvsig.raster.util.BasePanel#translate()
93
         */
94
        protected void translate() {
95
        }
96
        
97
        /**
98
         * Obtiene el panel con la previsualizaci?n
99
         * @return HistogramPanel
100
         */
101
        public PreviewBasePanel getPreviewBasePanel() {
102
                if (previewBasePanel == null) {
103
                        ArrayList list = new ArrayList();
104
                        list.add(panels.get(0));
105
                        previewBasePanel = new PreviewBasePanel(list, null, null, renderProcess, lyr);
106
                        previewBasePanel.setPreviewSize(new Dimension(230, 215));
107
                }
108
                return previewBasePanel;
109
        }
110
        
111
        /**
112
         * Obtiene el panel de la posici?n indicada en el par?metro
113
         * @param position
114
         * @return JPanel
115
         */
116
        public JPanel getPanel(int position) {
117
                return (JPanel)panels.get(position);
118
        }
119
        
120
        /**
121
         * Obtiene el n?mero de paneles de la serie
122
         * @return 
123
         */
124
        public int getPanelCount() {
125
                return panels.size();
126
        }
127
                
128
        /**
129
         * Obtiene el panel con los paneles de selecci?n de coordenadas para
130
         * el recorte.
131
         * @return ClipPanel
132
         */
133
        public ClipPanel getCoordinatesSelectionPanel() {
134
                for (int i = 0; i < panels.size(); i++) {
135
                        if(panels.get(i) instanceof ClipPanel)
136
                                return (ClipPanel)panels.get(i);
137
                }
138
                return null;
139
        }
140
        
141
        /**
142
         * Obtiene el panel con los controles para vectorizar
143
         * @return VectorPanel
144
         */
145
        public VectorPanel getVectorizationPanel() {
146
                for (int i = 0; i < panels.size(); i++) {
147
                        if(panels.get(i) instanceof VectorPanel)
148
                                return (VectorPanel)panels.get(i);
149
                }
150
                return null;
151
        }
152
        
153
        /**
154
         * Obtiene el panel con los paneles de conversi?n a B/W
155
         * @return GrayConversionPanel
156
         */
157
        public GrayConversionPanel getGrayConversionPanel() {
158
                for (int i = 0; i < panels.size(); i++) {
159
                        if(panels.get(i) instanceof GrayConversionPanel)
160
                                return (GrayConversionPanel)panels.get(i);
161
                }
162
                return null;
163
        }
164

    
165
}