Statistics
| Revision:

root / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / project / documents / view / ProjectViewBase.java @ 7392

History | View | Annotate | Download (6.46 KB)

1
package com.iver.cit.gvsig.project.documents.view;
2

    
3
import java.awt.Color;
4
import java.awt.Component;
5
import java.beans.PropertyChangeListener;
6
import java.util.ArrayList;
7

    
8
import javax.swing.JOptionPane;
9

    
10
import org.cresques.cts.IProjection;
11

    
12
import com.iver.andami.PluginServices;
13
import com.iver.andami.ui.mdiManager.IWindow;
14
import com.iver.cit.gvsig.ProjectExtension;
15
import com.iver.cit.gvsig.fmap.DriverException;
16
import com.iver.cit.gvsig.fmap.ErrorEvent;
17
import com.iver.cit.gvsig.fmap.ErrorListener;
18
import com.iver.cit.gvsig.fmap.MapContext;
19
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
20
import com.iver.cit.gvsig.fmap.layers.CancelationException;
21
import com.iver.cit.gvsig.fmap.layers.FLayers;
22
import com.iver.cit.gvsig.fmap.layers.XMLException;
23
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
24
import com.iver.cit.gvsig.project.Project;
25
import com.iver.cit.gvsig.project.documents.ProjectDocument;
26
import com.iver.cit.gvsig.project.documents.exceptions.OpenException;
27
import com.iver.cit.gvsig.project.documents.table.ProjectTable;
28
import com.iver.cit.gvsig.project.documents.table.ProjectTableFactory;
29
import com.iver.utiles.XMLEntity;
30

    
31
public class ProjectViewBase extends ProjectDocument implements ErrorListener,
32
                IProjectView {
33

    
34
        protected MapContext mapOverViewContext;
35
        protected MapContext mapContext;
36
        protected int m_typeLink = 0;
37
        protected String m_extLink;
38
        protected String m_selectedField = null;
39

    
40
        // OVERRIDE THESE
41
        public IWindow createWindow() {        return null;}
42
        public IWindow getProperties() { return null;}
43

    
44
        /**
45
         * Gets the FMap's contexts of the main map in the view.
46
         *
47
         * @return
48
         */
49
        public MapContext getMapContext() {
50
                return mapContext;
51
        }
52

    
53
        /**
54
         * Gets the FMap's context from the locator, which is the
55
         * small map in the left-bottom corner of the View.
56
         *
57
         * @return
58
         */
59
        public MapContext getMapOverViewContext() {
60
                return mapOverViewContext;
61
        }
62

    
63
        /**
64
         * @see com.iver.cit.gvsig.project.documents.view.ProjectView#setMapContext(com.iver.cit.gvsig.fmap.MapContext)
65
         */
66
        public void setMapContext(MapContext fmap) {
67
                mapContext = fmap;
68
                fmap.addErrorListener(this);
69
        }
70

    
71
        /**
72
         * DOCUMENT ME!
73
         *
74
         * @param fmap DOCUMENT ME!
75
         */
76
        public void setMapOverViewContext(MapContext fmap) {
77
                mapOverViewContext = fmap;
78
                mapOverViewContext.setProjection(mapContext.getProjection());
79
        }
80

    
81
        public void setXMLEntity(XMLEntity xml, Project p) throws XMLException,
82
                        DriverException, DriverIOException, OpenException {        }
83

    
84
        public void setXMLEntity03(XMLEntity xml, Project p) throws XMLException,
85
                        DriverException, DriverIOException { }
86

    
87
        public void showErrors(){
88
                if (mapContext.getLayersError().size()>0){
89
                        String layersError="";
90
                        for (int i=0;i<mapContext.getLayersError().size();i++){
91
                                layersError=layersError+"\n"+(String)mapContext.getLayersError().get(i);
92
                        }
93
                        JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
94
                                        PluginServices.getText(this,"fallo_capas")+" : \n"+
95
                                        layersError);
96
                }
97
        }
98

    
99
        /**
100
         * DOCUMENT ME!
101
         *
102
         * @return DOCUMENT ME!
103
         */
104
        public IProjection getProjection() {
105
                return mapContext.getProjection();
106
        }
107

    
108
        /**
109
         * DOCUMENT ME!
110
         *
111
         * @return DOCUMENT ME!
112
         */
113
        public IProjection getOverViewProjection() {
114
                return mapOverViewContext.getProjection();
115
        }
116

    
117
        public void setProjection (IProjection proj) {
118
                mapContext.setProjection(proj);
119
                mapOverViewContext.setProjection(proj);
120
        }
121

    
122
        /**
123
         * DOCUMENT ME!
124
         *
125
         * @return DOCUMENT ME!
126
         */
127
        public String getExtLink() {
128
                return m_extLink;
129
        }
130

    
131
        /**
132
         * DOCUMENT ME!
133
         *
134
         * @return DOCUMENT ME!
135
         */
136
        public int getTypeLink() {
137
                return m_typeLink;
138
        }
139

    
140
        /**
141
     * Se selecciona la extensi?n para realizar cuando se quiera el link.
142
     *
143
     * @param s nombre del campo.
144
     */
145
        public void setExtLink(String s) {
146
                m_extLink = s;
147
        }
148

    
149
        /**
150
     * Se selecciona el tipo de fichero para realizar cuando se quiera el link.
151
     *
152
     * @param i tipo de fichero.
153
     */
154
        public void setTypeLink(int i) {
155
                m_typeLink = i;
156
        }
157

    
158
        public void afterRemove() {
159
                FLayers layers=this.getMapContext().getLayers();
160

    
161
                for (int i = layers.getLayersCount()-1; i>=0; i--){
162
                try {
163
                        if (layers.getLayer(i) instanceof AlphanumericData){
164
                    Project project = ((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
165
                    ProjectTable pt = project.getTable((AlphanumericData) layers.getLayer(i));
166

    
167
                    ArrayList tables = project.getDocumentsByType(ProjectTableFactory.registerName);
168
                    for (int j = 0; j < tables.size(); j++) {
169
                        if (tables.get(j) == pt){
170
                            project.delDocument((ProjectDocument)tables.get(j));
171
                            break;
172
                        }
173
                    }
174

    
175
                    PluginServices.getMDIManager().closeSingletonWindow(pt);
176
                }
177
                layers.getLayer(i).getParentLayer().removeLayer(layers.getLayer(i));
178
                        } catch (CancelationException e1) {
179
                            e1.printStackTrace();
180
                    }
181
            }
182

    
183
        }
184

    
185
        public void afterAdd() {
186
                // TODO Auto-generated method stub
187

    
188
        }
189

    
190

    
191
        /**
192
         * DOCUMENT ME!
193
         *
194
         * @param c DOCUMENT ME!
195
         */
196
        public void setBackColor(Color c) {
197
//                getMapContext().getViewPort().addViewPortListener(getMapContext()
198
        //                                                                                                           .getEventBuffer());
199
                getMapContext().getViewPort().setBackColor(c);
200
                //getMapContext().getViewPort().removeViewPortListener(getMapContext()
201
                        //                                                                                                  .getEventBuffer());
202
        }
203

    
204
        /**
205
         * Se selecciona el nombre del campo para realizar cuando se quiera el
206
         * link.
207
         *
208
         * @param s nombre del campo.
209
         */
210
        public void setSelectedField(String s) {
211
                m_selectedField = s;
212
        }
213

    
214
        /**
215
         * DOCUMENT ME!
216
         *
217
         * @return DOCUMENT ME!
218
         */
219
        public String getSelectedField() {
220
                return m_selectedField;
221
        }
222

    
223
        public void errorThrown(ErrorEvent e) {
224
                        JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
225
                                        PluginServices.getText(this,"fallo_capas")+" : \n"+
226
                                        e.getMessage());
227

    
228
        }
229

    
230
        /**
231
         * DOCUMENT ME!
232
         *
233
         * @param fmap DOCUMENT ME!
234
         */
235
        public String getViewName() {
236
                return getName();
237
        }
238

    
239
        /**
240
         * DOCUMENT ME!
241
         *
242
         * @param fmap DOCUMENT ME!
243
         */
244
        public Project getViewProject() {
245
            return getProject();
246
        }
247

    
248
        /**
249
         * DOCUMENT ME!
250
         *
251
         * @param fmap DOCUMENT ME!
252
         */
253
        public void setWindow(IWindow andamiWindow) {
254
                setAndamiView(andamiWindow);
255
        }
256

    
257
        /**
258
         * DOCUMENT ME!
259
         *
260
         * @param fmap DOCUMENT ME!
261
         */
262
        public void addChangeListener(PropertyChangeListener listener) {
263
            addPropertyChangeListener(listener);
264
        }
265

    
266
}