Statistics
| Revision:

root / trunk / extensions / extgvSIGPiloto-Raster / src / com / iver / cit / gvsig / project / documents / view / toc / actions / PaletteTocMenuEntry.java @ 9976

History | View | Annotate | Download (4.27 KB)

1
/*
2
 * Created on 19-jul-2006
3
 * 
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 */
23
package com.iver.cit.gvsig.project.documents.view.toc.actions;
24

    
25
import javax.swing.JMenuItem;
26

    
27
import org.cresques.filter.RasterFilterStack;
28
import org.cresques.filter.RasterFilterStackManager;
29
import org.cresques.filter.bands.PaletteFilter;
30
import org.cresques.filter.bands.PaletteStackManager;
31

    
32
import com.iver.andami.PluginServices;
33
import com.iver.cit.gvsig.fmap.layers.FLayer;
34
import com.iver.cit.gvsig.fmap.layers.FLyrRaster;
35
import com.iver.cit.gvsig.project.documents.view.gui.dialogs.PaletteDialog;
36
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction;
37
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
38

    
39

    
40
/**
41
 * Entrada en del men? contextual del TOC correspondiente al cuadro
42
 * del paletas raster
43
 * @author Nacho Brodin (brodin_ign@gva.es)
44
 *
45
 */
46
public class PaletteTocMenuEntry extends AbstractTocContextMenuAction {
47
        private JMenuItem                                                 paleta;
48
        private FLayer                                                        lyr = null;
49
        private PaletteDialog                                        paletteDialog = null;
50
        private RasterFilterStackManager                stackManager = null;
51
        private int                                                         width = 408;
52
        private int                                                         height = 420;
53

    
54
        public String getGroup() {
55
                return "RasterTools"; 
56
        }
57

    
58
        public int getGroupOrder() {
59
                return 80;
60
        }
61

    
62
        public int getOrder() {
63
                return 1;
64
        }
65

    
66
        public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
67
                return selectedItems.length == 1;
68
        }
69

    
70
        public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
71
                if (isTocItemBranch(item)) {
72
                        lyr = getNodeLayer(item);
73
            if ((lyr instanceof FLyrRaster)) {
74
                    if(((FLyrRaster)lyr).getSource().getNumBands() != 1)
75
                            return false;
76
                    return true;
77
            }
78
                }
79
                return false;
80
        }
81
                
82
        /**
83
         * Gestiona la apertura del dialogo de paletas de raster cuando se pulsa
84
         * la opci?n asignando a este las propiedades iniciales. 
85
         */
86
        public void execute(ITocItem item, FLayer[] selectedItems) {
87
                stackManager = new RasterFilterStackManager(((FLyrRaster)lyr).getSource().getFilterStack());
88
               lyr = getNodeLayer(item);
89
                   
90
               if(lyr instanceof FLyrRaster){
91
                       RasterFilterStack filterStack = ((FLyrRaster)lyr).getSource().getFilterStack();
92
                       stackManager = new RasterFilterStackManager(filterStack);
93

    
94
                    paletteDialog = new PaletteDialog((FLyrRaster)lyr, stackManager, width, height);
95
                        PaletteFilter pf = (PaletteFilter)filterStack.getByType(PaletteStackManager.palette);
96
                        
97
                        //Si hay en la pila alguna paleta la carga en el dialogo
98
                        if(pf != null && pf.getPalette() != null){
99
                                paletteDialog.getPPalette().loadPanelFromPalette(pf.getPalette());
100
                                if(pf.isExec())
101
                                        paletteDialog.getPPalette().getCActive().setSelected(true);
102
                                else
103
                                        paletteDialog.getPPalette().getCActive().setSelected(false);
104
                                
105
                                if(pf.isInterpolate())
106
                                        paletteDialog.getPPalette().getCbInterpolar().setSelected(true);
107
                                else
108
                                        paletteDialog.getPPalette().getCbInterpolar().setSelected(false);
109
                                
110
                                //Asignamos el nombre en el dialogo
111
                                for(int i = 0; i < paletteDialog.getPPalette().getCbList().getItemCount(); i++){
112
                                        String name = paletteDialog.getPPalette().getCbList().getItemAt(i).toString();
113
                                        if(name.equals(paletteDialog.getPalette().getName())){
114
                                                paletteDialog.getPPalette().getCbList().setSelectedIndex(i);
115
                                                break;
116
                                        }
117
                                }
118
                        }
119
        
120
                       PluginServices.getMDIManager().addWindow(paletteDialog);
121
        }
122
        }
123

    
124
        public String getText() {
125
                return PluginServices.getText(this, "paleta");
126
        }
127

    
128
}