Statistics
| Revision:

root / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / properties / RasterPropertiesTocMenuEntry.java @ 20646

History | View | Annotate | Download (5.59 KB)

1 12425 nacho
/* 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 20037 nbrodin
package org.gvsig.rastertools.properties;
20 12425 nacho
21 18826 bsanchez
import javax.swing.Icon;
22
23 12425 nacho
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
24 13703 nacho
import org.gvsig.fmap.raster.layers.ILayerState;
25 15781 bsanchez
import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
26
import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
27 18826 bsanchez
import org.gvsig.raster.gui.IGenericToolBarMenuItem;
28 13622 bsanchez
import org.gvsig.raster.util.RasterToolsUtil;
29 12425 nacho
30 20646 nbrodin
//import com.iver.andami.PluginServices;
31 15781 bsanchez
import com.iver.andami.ui.mdiManager.WindowInfo;
32 12425 nacho
import com.iver.cit.gvsig.fmap.layers.FLayer;
33 15781 bsanchez
import com.iver.cit.gvsig.panelGroup.PanelGroupDialog;
34
import com.iver.cit.gvsig.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
35 12425 nacho
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction;
36
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
37
/**
38 15804 bsanchez
 * Entrada en del men? contextual del TOC correspondiente al cuadro de
39 12425 nacho
 * propiedades del raster
40 15804 bsanchez
 *
41 12425 nacho
 * @author Nacho Brodin (nachobrodin@gmail.com)
42
 */
43 18826 bsanchez
public class RasterPropertiesTocMenuEntry extends AbstractTocContextMenuAction implements IGenericToolBarMenuItem {
44
        static private RasterPropertiesTocMenuEntry singleton  = null;
45
        private PanelGroupDialog                    properties = null;
46
        private FLayer                              lyr        = null;
47 12425 nacho
48
        /**
49
         * Variable para controlar si los eventos de los paneles se deben interpretar.
50
         * En la carga inicial se deben desactivar todos los eventos
51
         */
52
        public static boolean                     enableEvents = false;
53 18826 bsanchez
54
        /**
55
         * Nadie puede crear una instancia a esta clase ?nica, hay que usar el
56
         * getSingleton()
57
         */
58
        private RasterPropertiesTocMenuEntry() {}
59 12425 nacho
60 18826 bsanchez
        /**
61
         * Devuelve un objeto unico a dicha clase
62
         * @return
63
         */
64
        static public RasterPropertiesTocMenuEntry getSingleton() {
65
                if (singleton == null)
66
                        singleton = new RasterPropertiesTocMenuEntry();
67
                return singleton;
68
        }
69
70
        /*
71
         * (non-Javadoc)
72
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroup()
73
         */
74 12425 nacho
        public String getGroup() {
75 18826 bsanchez
                return "RasterLayer";
76 12425 nacho
        }
77
78 18826 bsanchez
        /*
79
         * (non-Javadoc)
80
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getGroupOrder()
81
         */
82 12425 nacho
        public int getGroupOrder() {
83
                return 60;
84
        }
85
86 18826 bsanchez
        /*
87
         * (non-Javadoc)
88
         * @see com.iver.cit.gvsig.project.documents.contextMenu.AbstractContextMenuAction#getOrder()
89
         */
90 12425 nacho
        public int getOrder() {
91
                return 0;
92
        }
93
94 18826 bsanchez
        /*
95
         * (non-Javadoc)
96
         * @see com.iver.cit.gvsig.project.documents.IContextMenuAction#getText()
97
         */
98 12425 nacho
        public String getText() {
99 20646 nbrodin
                return RasterToolsUtil.getText(this, "propiedades_raster");
100 12425 nacho
        }
101
102 18826 bsanchez
        /*
103
         * (non-Javadoc)
104
         * @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[])
105
         */
106 12425 nacho
        public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
107 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
108
                        return false;
109
                if (selectedItems[0] instanceof ILayerState) {
110
                        if (!((ILayerState) selectedItems[0]).isOpen())
111 13703 nacho
                                return false;
112 18826 bsanchez
                        return true;
113
                }
114
                return false;
115 12425 nacho
        }
116
117 18826 bsanchez
        /*
118
         * (non-Javadoc)
119
         * @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[])
120
         */
121 12425 nacho
        public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
122 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
123
                        return false;
124
                if (selectedItems[0] instanceof FLyrRasterSE)
125
                        return true;
126 12425 nacho
                return false;
127
        }
128
129
        /**
130
         * Gestiona la apertura del dialogo de propiedades de raster cuando se pulsa
131
         * la opci?n asignando a este las propiedades iniciales.
132
         */
133
        public void execute(ITocItem item, FLayer[] selectedItems) {
134 18826 bsanchez
                if ((selectedItems == null) || (selectedItems.length != 1))
135 12425 nacho
                        return;
136
137 18826 bsanchez
                lyr = selectedItems[0];
138
139 13622 bsanchez
                try {
140
                        enableEvents = false;
141 15804 bsanchez
142 15781 bsanchez
                        PanelGroupManager manager = PanelGroupManager.getManager();
143 17047 nbrodin
144
                        manager.registerPanelGroup(TabbedPanel.class);
145 15781 bsanchez
                        manager.setDefaultType(TabbedPanel.class);
146
147
                        TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(lyr);
148
                        PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint("RasterSEPropertiesDialog");
149
150 20646 nbrodin
                        properties = new PanelGroupDialog(lyr.getName() ,RasterToolsUtil.getText(this, "propiedades_raster"), 550, 450, (byte) (WindowInfo.MODELESSDIALOG | WindowInfo.RESIZABLE | WindowInfo.MAXIMIZABLE), panelGroup);
151 17601 nbrodin
                        properties.loadPanels(loader);
152 13627 bsanchez
                        enableEvents = true;
153 20646 nbrodin
                        RasterToolsUtil.addWindow(properties);
154 15781 bsanchez
                } catch (Exception e) {
155 13703 nacho
                        RasterToolsUtil.messageBoxInfo("error_props_tabs", this, e);
156 13627 bsanchez
                } finally  {
157
                        enableEvents = true;
158
                }
159 12425 nacho
        }
160 18826 bsanchez
161
        /*
162
         * (non-Javadoc)
163
         * @see org.gvsig.rastertools.generictoolbar.IGenericToolBarMenuItem#getIcon()
164
         */
165
        public Icon getIcon() {
166 20646 nbrodin
                return RasterToolsUtil.getIcon("properties-icon");
167 18826 bsanchez
        }
168 12425 nacho
}