Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extRemoteSensing / src / org / gvsig / remotesensing / ProfileImageExtension.java @ 21869

History | View | Annotate | Download (5.38 KB)

1
package org.gvsig.remotesensing;
2

    
3
import javax.swing.Icon;
4

    
5
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
6
import org.gvsig.fmap.raster.layers.ILayerState;
7
import org.gvsig.raster.grid.GridException;
8
import org.gvsig.raster.gui.IGenericToolBarMenuItem;
9
import org.gvsig.remotesensing.profiles.gui.ProfileDialog;
10
import org.gvsig.remotesensing.scatterplot.gui.ScatterPlotDialog;
11

    
12
import com.iver.andami.PluginServices;
13
import com.iver.cit.gvsig.fmap.MapContext;
14
import com.iver.cit.gvsig.fmap.layers.FLayer;
15
import com.iver.cit.gvsig.fmap.layers.FLayers;
16
import com.iver.cit.gvsig.project.documents.view.IProjectView;
17
import com.iver.cit.gvsig.project.documents.view.gui.View;
18
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction;
19
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
20
import com.iver.utiles.extensionPoints.ExtensionPoints;
21
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
22

    
23
public class ProfileImageExtension  extends AbstractTocContextMenuAction implements IGenericToolBarMenuItem{
24
        
25
        static private ProfileImageExtension singleton  = null;
26
        
27
        static public ProfileImageExtension getSingleton() {
28
                if (singleton == null)
29
                        singleton = new ProfileImageExtension();
30
                return singleton;
31
        }        
32
        
33
        /*
34
         * (non-Javadoc)
35
         * @see com.iver.andami.plugins.IExtension#initialize()
36
         */
37
        public void initialize() {
38

    
39
                ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
40
                extensionPoints.add("GenericToolBarMenu", "profile", this);
41
        }
42

    
43
        /*
44
         * (non-Javadoc)
45
         * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
46
         */
47
        public void execute(String actionCommand) {
48
                /*if (actionCommand.equals("profile")){
49
                        com.iver.andami.ui.mdiManager.IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
50
                        
51
                        //si la ventana activa es de tipo Vista 
52
                        if (activeWindow instanceof View) {
53
                                ProfileDialog pcPanel = new ProfileDialog (520,350,((View)activeWindow));
54
                                scatterPlotDialog.setLayer(selectedItems[0]);
55
                                PluginServices.getMDIManager().addWindow(pcPanel);
56
                                
57
                        }
58
                }*/
59
        }
60

    
61
        /*
62
         * (non-Javadoc)
63
         * @see com.iver.andami.plugins.IExtension#isEnabled()
64
         */
65
        public boolean isEnabled() {
66
                com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow();
67
                if (f == null) {
68
                        return false;
69
                }
70
                if (f.getClass() == View.class) {
71
                        View vista = (View) f;
72
                        IProjectView model = vista.getModel();
73
                        MapContext mapa = model.getMapContext();
74
                        FLayers layers = mapa.getLayers();
75
                        for (int i = 0; i < layers.getLayersCount(); i++)
76
                                if (layers.getLayer(i) instanceof FLyrRasterSE)
77
                                        return true;
78
                }
79
                return false;
80
        }
81

    
82
        /*
83
         * (non-Javadoc)
84
         * @see com.iver.andami.plugins.IExtension#isVisible()
85
         */
86
        public boolean isVisible() {
87
                com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow();
88
                if (f == null) {
89
                        return false;
90
                }
91
                if (f instanceof View) {
92
                        View vista = (View) f;
93
                        IProjectView model = vista.getModel();
94
                        MapContext mapa = model.getMapContext();
95
                        return mapa.getLayers().getLayersCount() > 0;
96
                } else {
97
                        return false;
98
                }
99
        }
100
        
101

    
102
        /*
103
         * (non-Javadoc)
104
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#execute(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
105
         */
106
        public void execute(ITocItem item, FLayer[] selectedItems) {
107
                FLayer fLayer = null;
108
                com.iver.andami.ui.mdiManager.IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
109
                if (selectedItems.length != 1)
110
                        return;
111
                fLayer = selectedItems[0];
112

    
113
                if (!(fLayer instanceof FLyrRasterSE))
114
                        return;
115
                ProfileDialog pcPanel = new ProfileDialog (520,350,((View)activeWindow),(FLyrRasterSE)fLayer);
116
                PluginServices.getMDIManager().addWindow(pcPanel);
117
        }
118

    
119
        /*
120
         * (non-Javadoc)
121
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#getGroup()
122
         */
123
        public String getGroup() {
124
                return "RasterLayer";
125
        }
126

    
127
        /*
128
         * (non-Javadoc)
129
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#getIcon()
130
         */
131
        public Icon getIcon() {
132
                return PluginServices.getIconTheme().get("profile-icon");
133
        }
134

    
135
        /*
136
         * (non-Javadoc)
137
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#getOrder()
138
         */
139
        public int getOrder() {
140
                return 0;
141
        }
142

    
143
        /*
144
         * (non-Javadoc)
145
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#getText()
146
         */
147
        public String getText() {
148
                return PluginServices.getText(this, "profile");
149
        }
150

    
151
        /*
152
         * (non-Javadoc)
153
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#isEnabled(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
154
         */
155
        public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
156
                if ((selectedItems == null) || (selectedItems.length != 1))
157
                        return false;
158

    
159
                if (!(selectedItems[0] instanceof ILayerState))
160
                        return false;
161

    
162
                if (!((ILayerState) selectedItems[0]).isOpen())
163
                        return false;
164

    
165
                return true;
166
        }
167

    
168
        /*
169
         * (non-Javadoc)
170
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#isVisible(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
171
         */
172
        public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
173
                if ((selectedItems == null) || (selectedItems.length != 1))
174
                        return false;
175

    
176
                if (!(selectedItems[0] instanceof FLyrRasterSE))
177
                        return false;
178
                
179
                return true;
180
        }
181
        
182
        /*
183
         * (non-Javadoc)
184
         * @see org.gvsig.raster.gui.IGenericToolBarMenuItem#getGroupOrder()
185
         */
186
        public int getGroupOrder() {
187
                return 55;
188
        }
189
}