Statistics
| Revision:

root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / layers / FLyrDefault.java @ 745

History | View | Annotate | Download (5.92 KB)

1
/* Generated by Together */
2
package com.iver.cit.gvsig.fmap.layers;
3

    
4
import java.beans.PropertyChangeSupport;
5
import java.util.ArrayList;
6
import java.util.Iterator;
7

    
8
import org.cresques.cts.ICoordTrans;
9
import org.cresques.cts.IProjection;
10

    
11
import com.iver.cit.gvsig.fmap.DriverException;
12
import com.iver.cit.gvsig.fmap.FMap;
13
import com.iver.utiles.XMLEntity;
14

    
15

    
16
/**
17
 * Implementaci?n de las caracter?sticas de alto nivel de las capas:
18
 * visibilidad, activaci?n, nombre, ...
19
 */
20
public abstract class FLyrDefault implements FLayer {
21
        PropertyChangeSupport lnkPropertyChangeSupport;
22

    
23
        /** Path de la capa en el arbol de capas */
24
        private FLayers parentLayer = null;
25
        private FLayers virtualLayers = null;
26
        private String name;
27
        private IProjection projection;
28
        private boolean visible = true;
29
        private boolean active;
30
        private int transparency = 0;
31
        
32
        private ArrayList layerListeners = new ArrayList();
33
        
34
        /**
35
         * DOCUMENT ME!
36
         *
37
         * @param selected DOCUMENT ME!
38
         */
39

    
40
        /*   public static FLyrDefault createFromXML(XMLEntity xml)
41
           throws DifferentVersionException, CancelationException, ClassNotFoundException, InstantiationException, IllegalAccessException {
42
           FLyrDefault def = null;
43
           Class clase = null;
44
           try {
45
               clase = Class.forName(xml.getStringProperty("nameClass"));
46
           } catch (ClassNotFoundException e) {
47
               throw new DifferentVersionException(e);
48
           }
49
           try {
50
               def = (FLyrDefault) clase.newInstance();
51
           } catch (InstantiationException e1) {
52
               throw new DifferentVersionException(e1);
53
           } catch (IllegalAccessException e1) {
54
               throw new DifferentVersionException(e1);
55
           }
56
           def.active = xml.getBooleanProperty("active");
57
           def.name = xml.getStringProperty("name");
58
           //def.parentLayer.setXMLEntity(xml.getChild(0));
59
           //TODO def.projection=
60
           def.visible = xml.getBooleanProperty("visible");
61
           if (def instanceof FLayers){
62
                   FLayers layers=(FLayers)def;
63
        
64
                   for (int i=0;i<layers.getLayersCount();i++){
65
                           layers.addLayer(createFromXML(xml.getChild(i)));
66
        
67
                   }
68
           }else{
69
                   def.setXMLEntity(xml);
70
           }
71
           return def;
72
           }
73
         */
74

    
75
        /**
76
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#setActive(boolean)
77
         */
78
        public void setActive(boolean selected) {
79
                active = selected;
80
                callActivationChanged(new LayerEvent(this, "active"));
81
        }
82

    
83
        /**
84
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#isActive()
85
         */
86
        public boolean isActive() {
87
                return active;
88
        }
89

    
90
        /**
91
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#setName(java.lang.String)
92
         */
93
        public void setName(String name) {
94
                this.name = name;
95
                callNameChanged(new LayerEvent(this, "name"));
96
        }
97

    
98
        /**
99
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#getName()
100
         */
101
        public String getName() {
102
                return name;
103
        }
104

    
105
        /*
106
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#load()
107
         */
108
        public void load() {
109
        }
110

    
111
        /**
112
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#setVisible(boolean)
113
         */
114
        public void setVisible(boolean visibility) {
115
                visible = visibility;
116
                callVisibilityChanged(new LayerEvent(this, "visible"));
117
        }
118

    
119
        /**
120
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#isVisible()
121
         */
122
        public boolean isVisible() {
123
                return visible;
124

    
125
                //          return visible;
126
        }
127

    
128
        /**
129
         * DOCUMENT ME!
130
         *
131
         * @return DOCUMENT ME!
132
         */
133
        public FLayers getParentLayer() {
134
                return parentLayer;
135
        }
136

    
137
        /**
138
         * DOCUMENT ME!
139
         *
140
         * @param root DOCUMENT ME!
141
         */
142
        public void setParentLayer(FLayers root) {
143
                this.parentLayer = root;
144
        }
145

    
146
        /**
147
         * DOCUMENT ME!
148
         *
149
         * @param proj DOCUMENT ME!
150
         */
151
        public void setProjection(IProjection proj) {
152
                projection = proj;
153
        }
154

    
155
        /**
156
         * @see org.cresques.geo.Projected#getProjection()
157
         */
158
        public IProjection getProjection() {
159
                return projection;
160
        }
161

    
162
        /**
163
         * @see org.cresques.geo.Projected#reProject(org.cresques.cts.ICoordTrans)
164
         */
165
        public void reProject(ICoordTrans arg0) {
166
        }
167

    
168
        /**
169
         * DOCUMENT ME!
170
         *
171
         * @return DOCUMENT ME!
172
         */
173
        public int getTransparency() {
174
                return transparency;
175
        }
176

    
177
        /**
178
         * DOCUMENT ME!
179
         *
180
         * @param trans DOCUMENT ME!
181
         */
182
        public void setTransparency(int trans) {
183
                transparency = trans;
184
        }
185

    
186
        /**
187
         * DOCUMENT ME!
188
         *
189
         * @return DOCUMENT ME!
190
         *
191
         * @throws DriverException
192
         */
193
        public XMLEntity getXMLEntity() {
194
                XMLEntity xml = new XMLEntity();
195
                xml.putProperty("nameClass", this.getClass().getName());
196

    
197
                if (this instanceof FLayers) {
198
                }
199

    
200
                xml.putProperty("active", active);
201
                xml.putProperty("name", name);
202

    
203
                //TODO xml.addChild(parentLayer.getXMLEntity());
204
                //TODO xml.addChild(projection.getXMLEntity());
205
                xml.putProperty("visible", visible);
206

    
207
                return xml;
208
        }
209

    
210
        /**
211
         * DOCUMENT ME!
212
         *
213
         * @param xml DOCUMENT ME!
214
         *
215
         * @throws XMLException DOCUMENT ME!
216
         */
217
        public void setXMLEntity(XMLEntity xml) throws XMLException, DriverException {
218
                active = xml.getBooleanProperty("active");
219
                name = xml.getStringProperty("name");
220
                visible = xml.getBooleanProperty("visible");
221
        }
222

    
223
        /**
224
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#getFMap()
225
         */
226
        public FMap getFMap() {
227
                return getParentLayer().getFMap();
228
        }
229

    
230
        public boolean addLayerListener(LayerListener o) {
231
                return layerListeners.add(o);
232
        }
233
        public boolean removeLayerListener(LayerListener o) {
234
                return layerListeners.remove(o);
235
        }
236
        
237
        private void callNameChanged(LayerEvent e){
238
                for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
239
                        LayerListener listener = (LayerListener) iter.next();
240
                        
241
                        listener.nameChanged(e);
242
                }
243
        }
244
        
245
        private void callVisibilityChanged(LayerEvent e){
246
                for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
247
                        LayerListener listener = (LayerListener) iter.next();
248
                        
249
                        listener.visibilityChanged(e);
250
                }
251
        }
252
        
253
        private void callActivationChanged(LayerEvent e){
254
                for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
255
                        LayerListener listener = (LayerListener) iter.next();
256
                        
257
                        listener.activationChanged(e);
258
                }
259
        }
260

    
261

    
262
        public FLayers getVirtualLayers() {
263
                return virtualLayers;
264
        }
265
        public void setVirtualLayers(FLayers virtualLayers) {
266
                this.virtualLayers = virtualLayers;
267
        }
268
}