Statistics
| Revision:

gvsig-raster / org.gvsig.raster.netcdf / trunk / org.gvsig.raster.netcdf / org.gvsig.raster.netcdf.app / org.gvsig.raster.netcdf.app.netcdfclient / src / main / java / org / gvsig / raster / netcdf / app / netcdfclient / NetCDFMenuEntry.java @ 1174

History | View | Annotate | Download (4.72 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.netcdf.app.netcdfclient;
23
import javax.swing.Icon;
24

    
25
import org.gvsig.andami.IconThemeHelper;
26
import org.gvsig.andami.PluginServices;
27
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
28
import org.gvsig.app.project.documents.view.toc.ITocItem;
29
import org.gvsig.fmap.mapcontext.layers.FLayer;
30
import org.gvsig.raster.fmap.layers.FLyrRaster;
31
import org.gvsig.raster.fmap.layers.ILayerState;
32
import org.gvsig.raster.netcdf.app.netcdfclient.gui.panel.NetCDFPanel;
33
import org.gvsig.raster.netcdf.io.NetCDFDataParameters;
34

    
35

    
36
/**
37
 * <p>
38
 * TOC menu entry for NetCDF files
39
 * <p>
40
 * @author Nacho Brodin (nachobrodin@gmail.com)
41
 *
42
 */
43
public class NetCDFMenuEntry extends AbstractTocContextMenuAction {
44
        static private NetCDFMenuEntry    singleton     = null;
45

    
46
        /**
47
         * Nadie puede crear una instancia a esta clase ?nica, hay que usar el
48
         * getSingleton()
49
         */
50
        private NetCDFMenuEntry() {}
51

    
52
        /**
53
         * Devuelve un objeto unico a dicha clase
54
         * @return
55
         */
56
        static public NetCDFMenuEntry getSingleton() {
57
                if (singleton == null)
58
                        singleton = new NetCDFMenuEntry();
59
                return singleton;
60

    
61
        }
62

    
63
        /*
64
         * (non-Javadoc)
65
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroup()
66
         */
67
        public String getGroup() {
68
                return "Raster";
69
        }
70

    
71
        /*
72
         * (non-Javadoc)
73
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroupOrder()
74
         */
75
        public int getGroupOrder() {
76
                return 50;
77
        }
78

    
79
        /*
80
         * (non-Javadoc)
81
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getOrder()
82
         */
83
        public int getOrder() {
84
                return 1;
85
        }
86

    
87
        /*
88
         * (non-Javadoc)
89
         * @see com.iver.cit.gvsig.project.documents.IContextMenuAction#getText()
90
         */
91
        public String getText() {
92
                return PluginServices.getText(this, "NetCDF_Variables");
93
        }
94

    
95
        /*
96
         * (non-Javadoc)
97
         * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isEnabled(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
98
         */
99
        public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
100
                if ((selectedItems == null) || (selectedItems.length != 1))
101
                        return false;
102

    
103
                if (!(selectedItems[0] instanceof ILayerState))
104
                        return false;
105

    
106
                if (!((ILayerState) selectedItems[0]).isOpen())
107
                        return false;
108

    
109
                return true;
110
        }
111

    
112
        /*
113
         * (non-Javadoc)
114
         * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isVisible(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
115
         */
116
        public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
117
                if ((selectedItems == null) || (selectedItems.length != 1))
118
                        return false;
119

    
120
                if (!(selectedItems[0] instanceof FLyrRaster))
121
                        return false;
122

    
123
                if(((FLyrRaster) selectedItems[0]).getDataStore() != null)
124
                        return (((FLyrRaster) selectedItems[0]).getDataStore().getInternalParameters() instanceof NetCDFDataParameters);
125
                return false;
126
        }
127

    
128
        /*
129
         * (non-Javadoc)
130
         * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#execute(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
131
         */
132
        public void execute(ITocItem item, FLayer[] selectedItems) {
133
                FLayer lyr = null;
134

    
135
                if (selectedItems.length != 1)
136
                        return;
137

    
138
                lyr = selectedItems[0];
139

    
140
                if (!(lyr instanceof FLyrRaster))
141
                        return;
142
                
143
                FLyrRaster fLayer = (FLyrRaster)lyr;
144
                
145
                NetCDFPanel panel = new NetCDFPanel(fLayer);
146
                PluginServices.getMDIManager().addWindow(panel);
147
                //Esto es porque la llamada setHeight de getWindowInfo no funciona igual que esta. Asignan tama?os diferentes 
148
                PluginServices.getMDIManager().getWindowInfo(panel).setHeight(NetCDFPanel.HEIGHT);
149
        }
150

    
151
        /*
152
         * (non-Javadoc)
153
         * @see org.gvsig.rastertools.generictoolbar.IGenericToolBarMenuItem#getIcon()
154
         */
155
        public Icon getIcon() {
156
                return IconThemeHelper.getImageIcon("save-icon");
157
        }
158
}