svn-gvsig-desktop / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / generictoolbar / GenericToolBarModule.java @ 18824
History | View | Annotate | Download (7.05 KB)
1 | 18824 | bsanchez | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2005 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.generictoolbar; |
||
20 | |||
21 | import java.awt.BorderLayout; |
||
22 | import java.awt.Dimension; |
||
23 | |||
24 | import javax.swing.JPanel; |
||
25 | import javax.swing.JToolBar; |
||
26 | |||
27 | import org.gvsig.fmap.raster.layers.FLyrRasterSE; |
||
28 | import org.gvsig.fmap.raster.layers.IRasterLayerActions; |
||
29 | import org.gvsig.raster.gui.properties.dialog.RasterPropertiesTocMenuEntry; |
||
30 | import org.gvsig.raster.util.RasterToolsUtil; |
||
31 | import org.gvsig.rastertools.analysisview.ViewRasterAnalysisTocMenuEntry; |
||
32 | import org.gvsig.rastertools.clipping.ClippingTocMenuEntry; |
||
33 | import org.gvsig.rastertools.colortable.ColorTableTocMenuEntry; |
||
34 | import org.gvsig.rastertools.filter.FilterTocMenuEntry; |
||
35 | import org.gvsig.rastertools.geolocation.GeoLocationTocMenuEntry; |
||
36 | import org.gvsig.rastertools.histogram.HistogramTocMenuEntry; |
||
37 | import org.gvsig.rastertools.overviews.OverviewsTocMenuEntry; |
||
38 | import org.gvsig.rastertools.roi.ui.ROIManagerTocMenuEntry; |
||
39 | import org.gvsig.rastertools.saveas.SaveAsTocMenuEntry; |
||
40 | |||
41 | import com.iver.andami.PluginServices; |
||
42 | import com.iver.andami.plugins.Extension; |
||
43 | import com.iver.andami.ui.mdiFrame.MDIFrame; |
||
44 | import com.iver.cit.gvsig.fmap.MapContext; |
||
45 | import com.iver.cit.gvsig.project.documents.view.IProjectView; |
||
46 | import com.iver.cit.gvsig.project.documents.view.gui.View; |
||
47 | import com.iver.utiles.extensionPoints.ExtensionPoint; |
||
48 | import com.iver.utiles.extensionPoints.ExtensionPoints; |
||
49 | import com.iver.utiles.extensionPoints.ExtensionPointsSingleton; |
||
50 | /**
|
||
51 | * Extension para la barra de herramientas generica
|
||
52 | *
|
||
53 | * @version 13/02/2008
|
||
54 | * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
|
||
55 | */
|
||
56 | public class GenericToolBarModule extends Extension { |
||
57 | private GenericToolBarPanel toolBar = null; |
||
58 | |||
59 | /**
|
||
60 | * Crea y devuelve la barra de herramientas
|
||
61 | * @return
|
||
62 | */
|
||
63 | private GenericToolBarPanel getGenericToolBarPanel() {
|
||
64 | if (toolBar == null) { |
||
65 | MDIFrame f = (MDIFrame) PluginServices.getMainFrame(); |
||
66 | if (f == null) |
||
67 | return null; |
||
68 | for (int i = 0; i < f.getContentPane().getComponentCount(); i++) { |
||
69 | if (f.getContentPane().getComponent(i) instanceof JPanel) { |
||
70 | JPanel panel = (JPanel) f.getContentPane().getComponent(i); |
||
71 | for (int j = 0; j < panel.getComponentCount(); j++) { |
||
72 | if (panel.getComponent(i) instanceof JToolBar) { |
||
73 | toolBar = new GenericToolBarPanel();
|
||
74 | toolBar.setPreferredSize(new Dimension(300, 23)); |
||
75 | |||
76 | panel.add(toolBar, BorderLayout.PAGE_START);
|
||
77 | return toolBar;
|
||
78 | } |
||
79 | } |
||
80 | } |
||
81 | } |
||
82 | } |
||
83 | return toolBar;
|
||
84 | } |
||
85 | |||
86 | /*
|
||
87 | * (non-Javadoc)
|
||
88 | * @see com.iver.andami.plugins.IExtension#initialize()
|
||
89 | */
|
||
90 | public void initialize() { |
||
91 | ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance(); |
||
92 | |||
93 | // Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
|
||
94 | if (!extensionPoints.containsKey("GenericToolBarGroup")) { |
||
95 | extensionPoints.put(new ExtensionPoint("GenericToolBarGroup", "Punto de extension para los grupos de menus del GenericToolBarPanel")); |
||
96 | } |
||
97 | |||
98 | if (!extensionPoints.containsKey("GenericToolBarMenu")) { |
||
99 | extensionPoints.put(new ExtensionPoint("GenericToolBarMenu", "Punto de extension para los submenus del GenericToolBarPanel")); |
||
100 | } |
||
101 | |||
102 | extensionPoints.add("GenericToolBarGroup", "RasterLayer", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "capa_raster"))); |
||
103 | extensionPoints.add("GenericToolBarGroup", "RasterProcess", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "process_raster"))); |
||
104 | extensionPoints.add("GenericToolBarGroup", "GeoRaster", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "geo_raster"))); |
||
105 | extensionPoints.add("GenericToolBarGroup", "RasterExport", new GenericToolBarMenuItem(RasterToolsUtil.getText(this, "raster_export"))); |
||
106 | |||
107 | extensionPoints.add("GenericToolBarMenu", "RasterSEProperties", RasterPropertiesTocMenuEntry.getSingleton()); |
||
108 | extensionPoints.add("GenericToolBarMenu", "HistogramPanel", HistogramTocMenuEntry.getSingleton()); |
||
109 | extensionPoints.add("GenericToolBarMenu", "ViewColorTable", ColorTableTocMenuEntry.getSingleton()); |
||
110 | extensionPoints.add("GenericToolBarMenu", "Overviews", OverviewsTocMenuEntry.getSingleton()); |
||
111 | extensionPoints.add("GenericToolBarMenu", "RoisManager", ROIManagerTocMenuEntry.getSingleton()); |
||
112 | extensionPoints.add("GenericToolBarMenu", "ViewRasterAnalysis", ViewRasterAnalysisTocMenuEntry.getSingleton()); |
||
113 | |||
114 | extensionPoints.add("GenericToolBarMenu", "SaveAs", SaveAsTocMenuEntry.getSingleton()); |
||
115 | extensionPoints.add("GenericToolBarMenu", "ClippingPanel", ClippingTocMenuEntry.getSingleton()); |
||
116 | |||
117 | extensionPoints.add("GenericToolBarMenu", "FilterPanel", FilterTocMenuEntry.getSingleton()); |
||
118 | extensionPoints.add("GenericToolBarMenu", "GeoLocation", GeoLocationTocMenuEntry.getSingleton()); |
||
119 | |||
120 | if (getGenericToolBarPanel() != null) |
||
121 | getGenericToolBarPanel().reloadMenuGroup(); |
||
122 | } |
||
123 | |||
124 | /*
|
||
125 | * (non-Javadoc)
|
||
126 | * @see com.iver.andami.plugins.IExtension#isEnabled()
|
||
127 | */
|
||
128 | public boolean isEnabled() { |
||
129 | System.out.println("GenericToolBarModule::isEnabled"); |
||
130 | return false; |
||
131 | } |
||
132 | |||
133 | /**
|
||
134 | * Establece si la barra de herramientas esta visible
|
||
135 | * @param enabled
|
||
136 | */
|
||
137 | private void setToolBarVisible(boolean enabled) { |
||
138 | if (getGenericToolBarPanel() == null) |
||
139 | return;
|
||
140 | |||
141 | toolBar.setVisible(enabled); |
||
142 | } |
||
143 | |||
144 | /*
|
||
145 | * (non-Javadoc)
|
||
146 | * @see com.iver.andami.plugins.IExtension#isVisible()
|
||
147 | */
|
||
148 | public boolean isVisible() { |
||
149 | com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow(); |
||
150 | if (f == null) { |
||
151 | setToolBarVisible(false);
|
||
152 | return false; |
||
153 | } |
||
154 | |||
155 | if (f instanceof View) { |
||
156 | View vista = (View) f; |
||
157 | IProjectView model = vista.getModel(); |
||
158 | MapContext mapa = model.getMapContext(); |
||
159 | if (mapa.getLayers().getLayersCount() > 0) { |
||
160 | if (mapa.getLayers().getActives().length == 1 && |
||
161 | mapa.getLayers().getActives()[0] instanceof FLyrRasterSE && |
||
162 | ((FLyrRasterSE)mapa.getLayers().getActives()[0]).isActionEnabled(IRasterLayerActions.FLYRASTER_BAR_TOOLS)) {
|
||
163 | setToolBarVisible(true);
|
||
164 | if (getGenericToolBarPanel() != null) { |
||
165 | getGenericToolBarPanel().setLayers(mapa.getLayers()); |
||
166 | } |
||
167 | return true; |
||
168 | } |
||
169 | } |
||
170 | } |
||
171 | |||
172 | setToolBarVisible(false);
|
||
173 | return false; |
||
174 | } |
||
175 | |||
176 | public void execute(String actionCommand) {} |
||
177 | } |