Statistics
| Revision:

gvsig-raster / org.gvsig.raster.tools / trunk / org.gvsig.raster.tools / org.gvsig.raster.tools.app / org.gvsig.raster.tools.app.basic / src / main / java / org / gvsig / raster / tools / app / basic / tool / GenericToolBarModule.java @ 1794

History | View | Annotate | Download (9.74 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.raster.tools.app.basic.tool;
23

    
24
import java.awt.Dimension;
25

    
26
import org.gvsig.andami.IconThemeHelper;
27
import org.gvsig.andami.PluginServices;
28
import org.gvsig.andami.plugins.Extension;
29
import org.gvsig.andami.ui.mdiFrame.MDIFrame;
30
import org.gvsig.app.project.documents.view.ViewDocument;
31
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
32
import org.gvsig.fmap.mapcontext.MapContext;
33
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
34
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry;
35
import org.gvsig.raster.tools.app.basic.tool.clip.ClippingTocMenuEntry;
36
import org.gvsig.raster.tools.app.basic.tool.colortable.ColorTableTocMenuEntry;
37
import org.gvsig.raster.tools.app.basic.tool.enhanced.EnhancedTocMenuEntry;
38
import org.gvsig.raster.tools.app.basic.tool.filter.FilterTocMenuEntry;
39
import org.gvsig.raster.tools.app.basic.tool.generictoolbar.GenericToolBarMenuItem;
40
import org.gvsig.raster.tools.app.basic.tool.generictoolbar.GenericToolBarPanel;
41
import org.gvsig.raster.tools.app.basic.tool.geolocation.GeoLocationTocMenuEntry;
42
import org.gvsig.raster.tools.app.basic.tool.histogram.HistogramTocMenuEntry;
43
import org.gvsig.raster.tools.app.basic.tool.infobypoint.InfoByRasterPointTocMenuEntry;
44
import org.gvsig.raster.tools.app.basic.tool.layerdatatype.LayerDatatypeTocMenuEntry;
45
import org.gvsig.raster.tools.app.basic.tool.multiresolution.ZoomResolutionLevelTocMenuEntry;
46
import org.gvsig.raster.tools.app.basic.tool.overview.OverviewsTocMenuEntry;
47
import org.gvsig.raster.tools.app.basic.tool.properties.RasterPropertiesTocMenuEntry;
48
import org.gvsig.raster.tools.app.basic.tool.roi.ROIManagerTocMenuEntry;
49
import org.gvsig.raster.tools.app.basic.tool.saveas.SaveAsTocMenuEntry;
50
import org.gvsig.raster.tools.app.basic.tool.saveviewtoraster.SaveViewToRasterTocMenuEntry;
51
import org.gvsig.raster.tools.app.basic.tool.selectrasterlayer.SelectLayerTocMenuEntry;
52
import org.gvsig.raster.tools.app.basic.tool.setviewprojection.SetViewProjectionTocMenuEntry;
53
import org.gvsig.raster.tools.app.basic.tool.viewexport.SaveViewToImageTocMenuEntry;
54
import org.gvsig.tools.ToolsLocator;
55
import org.gvsig.tools.extensionpoint.ExtensionPoint;
56
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
57

    
58
/**
59
 * Extension para la barra de herramientas generica
60
 *
61
 * @version 13/02/2008
62
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
63
 */
64
public class GenericToolBarModule extends Extension {
65
        private GenericToolBarPanel toolBar = null;
66

    
67
        /**
68
         * Crea y devuelve la barra de herramientas
69
         * @return
70
         */
71
        private GenericToolBarPanel getGenericToolBarPanel() {
72
                if (toolBar == null) {
73
                        MDIFrame f = (MDIFrame) PluginServices.getMainFrame();
74
                        if (f == null)
75
                                return null;
76
                        toolBar = new GenericToolBarPanel();
77
                        toolBar.setVisible(false);
78
                        f.addToolBarControl(getClass(), toolBar, "RasterToolBar");
79
                } else {
80
                        toolBar.setPreferredSize(new Dimension(300, getToolbarHeight()));
81
                }
82

    
83
                return toolBar;
84
        }
85

    
86
        /**
87
         * Obtenemos el alto de cualquier toolbar que este visible en gvSIG y no sea
88
         * nuestro para poder asignarselo al GenericToolBar como PreferredSize. En
89
         * caso de no encontrar ninguno que cumpla las condiciones, se devolver? 24
90
         * @return
91
         */
92
        private int getToolbarHeight() {
93
                if ((PluginServices.getMainFrame() == null) ||
94
                                (PluginServices.getMainFrame().getToolbars() == null) ||
95
                                (PluginServices.getMainFrame().getToolbars().length <= 0))
96
                        return 24;
97

    
98
                for (int i = 0; i < PluginServices.getMainFrame().getToolbars().length; i++) {
99
                        if ((PluginServices.getMainFrame().getToolbars()[i].getHeight() > 16) &&
100
                                        ((Object) PluginServices.getMainFrame().getToolbars()[i] != (Object) toolBar))
101
                                return PluginServices.getMainFrame().getToolbars()[i].getHeight();
102
                }
103
                return 24;
104
        }
105

    
106
        /*
107
         * (non-Javadoc)
108
         * @see com.iver.andami.plugins.IExtension#initialize()
109
         */
110
        public void initialize() {
111
                registerIcons();
112
                
113
                // Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
114
                ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
115
                ExtensionPoint point = extensionPoints.add("GenericToolBarGroup");
116
                point.setDescription("Punto de extension para los grupos de menus del GenericToolBarPanel");
117

    
118
                point.append("RasterLayer", "", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "capa_raster"), IconThemeHelper.getImageIcon("menu-layer-icon")));
119
                point.append("RasterProcess", "", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "process_raster"), IconThemeHelper.getImageIcon("menu-process-icon")));
120
                point.append("GeoRaster", "", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "transformaciones_geograficas"), IconThemeHelper.getImageIcon("menu-transgeo-icon")));
121
                point.append("RasterExport", "", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "raster_export"), IconThemeHelper.getImageIcon("menu-raster-export")));
122

    
123
                point = extensionPoints.add("GenericToolBarMenu");
124
                point.setDescription("Punto de extension para los submenus del GenericToolBarPanel");
125
                point.append("RasterProperties", "", RasterPropertiesTocMenuEntry.getSingleton());
126
                point.append("SelectLayer", "", SelectLayerTocMenuEntry.getSingleton());
127
                point.append("HistogramPanel", "", HistogramTocMenuEntry.getSingleton());
128
                point.append("ViewColorTable", "",ColorTableTocMenuEntry.getSingleton());
129
                point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton());
130
                point.append("RoisManager", "", ROIManagerTocMenuEntry.getSingleton());
131
                point.append("ViewRasterAnalysis", "", ViewRasterAnalysisTocMenuEntry.getSingleton());
132
                point.append("ZoomResolutionLevel", "", ZoomResolutionLevelTocMenuEntry.getSingleton());
133

    
134
                point.append("SaveAs", "", SaveAsTocMenuEntry.getSingleton());
135
                point.append("ClippingPanel", "", ClippingTocMenuEntry.getSingleton());
136
                //point.append("SaveRaster", "", SaveRasterTocMenuEntry.getSingleton());
137
                point.append("SaveViewToRaster", "", SaveViewToRasterTocMenuEntry.getSingleton());
138
                point.append("SaveViewToImageRaster", "", SaveViewToImageTocMenuEntry.getSingleton());
139

    
140
                point.append("FilterPanel", "", FilterTocMenuEntry.getSingleton());
141
                point.append("EnhancedPanel", "", EnhancedTocMenuEntry.getSingleton());
142
                point.append("InfoByPoint", "", InfoByRasterPointTocMenuEntry.getSingleton());
143
                point.append("LayerDatatype", "", LayerDatatypeTocMenuEntry.getSingleton());
144
                //point.append("Vectorization", "", VectorizationTocMenuEntry.getSingleton());
145
                //point.append("Reproject", "", ReprojectTocMenuEntry.getSingleton());
146
                
147
                point.append("GeoLocation", "", GeoLocationTocMenuEntry.getSingleton());
148
                point.append("SetProjection", "", SetViewProjectionTocMenuEntry.getSingleton());
149

    
150
        }
151
        
152
        private void registerIcons() {        
153
                //Actions
154
                IconThemeHelper.registerIcon("action", "menu-layer-icon", this);
155
                IconThemeHelper.registerIcon("action", "menu-process-icon", this);
156
                IconThemeHelper.registerIcon("action", "menu-transgeo-icon", this);
157
                IconThemeHelper.registerIcon("action", "menu-raster-export", this);
158
        }
159
        
160
        @Override
161
        public void postInitialize() {
162
                super.postInitialize();
163
                if (getGenericToolBarPanel() != null)
164
                        getGenericToolBarPanel().reloadMenuGroup();
165
        }
166

    
167
        /*
168
         * (non-Javadoc)
169
         * @see com.iver.andami.plugins.IExtension#isEnabled()
170
         */
171
        public boolean isEnabled() {
172
                return false;
173
        }
174

    
175
        /**
176
         * Establece si la barra de herramientas esta visible
177
         * @param enabled
178
         */
179
        private void setToolBarVisible(boolean enabled) {
180
                if (getGenericToolBarPanel() == null)
181
                        return;
182

    
183
                toolBar.setVisible(enabled);
184
        }
185

    
186
        /*
187
         * (non-Javadoc)
188
         * @see com.iver.andami.plugins.IExtension#isVisible()
189
         */
190
        @SuppressWarnings("deprecation")
191
        public boolean isVisible() {
192
                org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow();
193
                if (f == null || !(f instanceof AbstractViewPanel)) {
194
                        setToolBarVisible(false);
195
                        return false;
196
                }
197
                
198
                if (getGenericToolBarPanel() != null)
199
                        getGenericToolBarPanel().setLayers(null);
200
                AbstractViewPanel vista = (AbstractViewPanel) f;
201
                ViewDocument model = vista.getModel();
202
                MapContext mapa = model.getMapContext();
203
                if (mapa.getLayers().getLayersCount() > 0) {
204
                        if (getGenericToolBarPanel() != null) {
205
                                getGenericToolBarPanel().setLayers(mapa.getLayers());
206
                        }
207
                }
208
                
209
                setToolBarVisible(true);
210
                return true;
211

    
212
                /*if (f instanceof AbstractViewPanel) {
213
                        AbstractViewPanel vista = (AbstractViewPanel) f;
214
                        ViewDocument model = vista.getModel();
215
                        MapContext mapa = model.getMapContext();
216
                        if (mapa.getLayers().getLayersCount() > 0) {
217
                                setToolBarVisible(true);
218
                                if (getGenericToolBarPanel() != null) {
219
                                        getGenericToolBarPanel().setLayers(mapa.getLayers());
220
                                }
221
                                return true;
222
                        }
223
                }
224

225
                setToolBarVisible(false);
226
                return false;*/
227
        }
228

    
229
        public void execute(String actionCommand) {}
230
}