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 / colortable / ColorTableTocMenuEntry.java @ 1174

History | View | Annotate | Download (5.06 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.colortable;
23

    
24
import javax.swing.Icon;
25

    
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.dal.coverage.exception.ColorTableException;
30
import org.gvsig.fmap.mapcontext.layers.FLayer;
31
import org.gvsig.raster.fmap.layers.FLyrRaster;
32
import org.gvsig.raster.fmap.layers.ILayerState;
33
import org.gvsig.raster.fmap.layers.IRasterLayerActions;
34
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
35
import org.gvsig.raster.tools.app.basic.raster.gui.IGenericToolBarMenuItem;
36
import org.gvsig.raster.tools.app.basic.tool.colortable.ui.ColorTableDialog;
37
/**
38
 * <code>ColorTableTocMenuEntry</code> es el punto de entrada del menu de la
39
 * tabla de color
40
 * 
41
 * @version 26/06/2007
42
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
43
 */
44
public class ColorTableTocMenuEntry extends AbstractTocContextMenuAction implements IGenericToolBarMenuItem {
45
        static private ColorTableTocMenuEntry singleton  = null;
46

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

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

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

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

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

    
87
        /*
88
         * (non-Javadoc)
89
         * @see com.iver.cit.gvsig.project.documents.IContextMenuAction#getText()
90
         */
91
        public String getText() {
92
                return RasterToolsUtil.getText(this, "tablas_color");
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 FLyrRaster))
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
                                (((FLyrRaster) selectedItems[0]).getDataStore().getBandCount() == 1) &&
125
                                (((IRasterLayerActions) selectedItems[0]).isActionEnabled(IRasterLayerActions.COLOR_TABLE)))
126
                                        return true;
127
                return false;
128
        }
129

    
130
        /*
131
         * (non-Javadoc)
132
         * @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[])
133
         */
134
        public synchronized void execute(ITocItem item, FLayer[] selectedItems) {
135
                if(selectedItems[0] instanceof FLyrRaster) {
136
                        ColorTableDialog colorTableDialog = null;
137
                        try {
138
                                colorTableDialog = new ColorTableDialog((FLyrRaster)selectedItems[0], 660, 465);
139
                        } catch (ColorTableException e) {
140
                                RasterToolsUtil.messageBoxError("colortables_not_loaded", PluginServices.getMDIManager().getActiveWindow(), e);
141
                                return;
142
                        }
143
                        RasterToolsUtil.addWindow(colorTableDialog);
144
                }
145
        }
146
        
147
        /*
148
         * (non-Javadoc)
149
         * @see org.gvsig.rastertools.generictoolbar.IGenericToolBarMenuItem#getIcon()
150
         */
151
        public Icon getIcon() {
152
                return RasterToolsUtil.getIcon("layer-color-table");
153
        }
154
}