Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extRasterTools-SE / src / org / gvsig / rastertools / histogram / HistogramTocMenuEntry.java @ 27490

History | View | Annotate | Download (4.93 KB)

1 11228 bsanchez
/* 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.histogram;
20
21 18826 bsanchez
import javax.swing.Icon;
22
23 26368 nbrodin
import org.gvsig.fmap.mapcontext.layers.FLayer;
24 12425 nacho
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
25 13703 nacho
import org.gvsig.fmap.raster.layers.ILayerState;
26 13300 nacho
import org.gvsig.fmap.raster.layers.IRasterLayerActions;
27 18826 bsanchez
import org.gvsig.raster.gui.IGenericToolBarMenuItem;
28 13942 nacho
import org.gvsig.raster.util.RasterToolsUtil;
29 11228 bsanchez
import org.gvsig.rastertools.histogram.ui.HistogramDialog;
30
31
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction;
32
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
33
/**
34
 * Punto de entrada del menu del histograma.
35
 *
36
 * @version 17/04/2007
37 12369 bsanchez
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
38 11228 bsanchez
 */
39 18826 bsanchez
public class HistogramTocMenuEntry extends AbstractTocContextMenuAction implements IGenericToolBarMenuItem {
40
        static private HistogramTocMenuEntry singleton  = null;
41
42
        /**
43
         * Nadie puede crear una instancia a esta clase ?nica, hay que usar el
44
         * getSingleton()
45
         */
46
        private HistogramTocMenuEntry() {}
47
48
        /**
49
         * Devuelve un objeto unico a dicha clase
50
         * @return
51
         */
52
        static public HistogramTocMenuEntry getSingleton() {
53
                if (singleton == null)
54
                        singleton = new HistogramTocMenuEntry();
55
                return singleton;
56
        }
57 11228 bsanchez
        /*
58
         * (non-Javadoc)
59
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroup()
60
         */
61
        public String getGroup() {
62 18826 bsanchez
                return "RasterLayer";
63 11228 bsanchez
        }
64
65
        /*
66
         * (non-Javadoc)
67
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroupOrder()
68
         */
69
        public int getGroupOrder() {
70 12110 nacho
                return 55;
71 11228 bsanchez
        }
72
73
        /*
74
         * (non-Javadoc)
75
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getOrder()
76
         */
77
        public int getOrder() {
78 12110 nacho
                return 1;
79 11228 bsanchez
        }
80
81
        /*
82
         * (non-Javadoc)
83
         * @see com.iver.cit.gvsig.project.documents.IContextMenuAction#getText()
84
         */
85
        public String getText() {
86 20646 nbrodin
                return RasterToolsUtil.getText(this, "histograma");
87 11228 bsanchez
        }
88
89
        /*
90
         * (non-Javadoc)
91
         * @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[])
92
         */
93
        public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
94 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
95
                        return false;
96
97
                if (selectedItems[0] instanceof ILayerState) {
98
                        if (!((ILayerState) selectedItems[0]).isOpen())
99 13703 nacho
                                return false;
100 18826 bsanchez
                        return true;
101
                }
102
                return false;
103 11228 bsanchez
        }
104
105
        /*
106
         * (non-Javadoc)
107
         * @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[])
108
         */
109
        public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
110 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
111
                        return false;
112
113
                if (!(selectedItems[0] instanceof FLyrRasterSE))
114
                        return false;
115
116
                return ((FLyrRasterSE) selectedItems[0]).isActionEnabled(IRasterLayerActions.HISTOGRAM);
117 11228 bsanchez
        }
118 12369 bsanchez
119 11228 bsanchez
        /*
120
         * (non-Javadoc)
121
         * @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[])
122
         */
123
        public void execute(ITocItem item, FLayer[] selectedItems) {
124 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
125
                        return;
126 12369 bsanchez
127 18826 bsanchez
                if (!(selectedItems[0] instanceof FLyrRasterSE))
128 11228 bsanchez
                        return;
129
130 18826 bsanchez
                FLyrRasterSE fLayer = (FLyrRasterSE) selectedItems[0];
131 12369 bsanchez
132 18826 bsanchez
                try {
133
                        HistogramDialog histogramDialog = null;
134
                        histogramDialog = new HistogramDialog(650, 500);
135
                        histogramDialog.setLayer(fLayer);
136
                        // Par?metros de inicializaci?n del histograma
137
                        histogramDialog.getHistogramPanel().firstRun(); // Mostar por primera vez el
138
                                                                                                                                                                                                                        // histograma
139
                        histogramDialog.setVisible(true);
140 11228 bsanchez
141 20646 nbrodin
                        RasterToolsUtil.addWindow(histogramDialog);
142 13942 nacho
                } catch (Exception e) {
143 20646 nbrodin
                        RasterToolsUtil.messageBoxError(RasterToolsUtil.getText(this, "histogram_error"), this, e);
144 13942 nacho
                        return;
145
                }
146 11228 bsanchez
        }
147 18826 bsanchez
148
        /*
149
         * (non-Javadoc)
150
         * @see org.gvsig.rastertools.generictoolbar.IGenericToolBarMenuItem#getIcon()
151
         */
152
        public Icon getIcon() {
153 20646 nbrodin
                return RasterToolsUtil.getIcon("histogram-icon");
154 18826 bsanchez
        }
155 11228 bsanchez
}