Statistics
| Revision:

svn-gvsig-desktop / tags / Root_FMap_piloto_CAD_Layout_version / libraries / libFMap / src / com / iver / cit / gvsig / fmap / tools / CompoundBehavior.java @ 1664

History | View | Annotate | Download (5.87 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 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
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig.fmap.tools;
42

    
43
import com.iver.cit.gvsig.fmap.MapControl;
44
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior;
45
import com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener;
46

    
47
import java.awt.Cursor;
48
import java.awt.Graphics;
49
import java.awt.event.MouseEvent;
50
import java.awt.event.MouseWheelEvent;
51

    
52
import java.util.ArrayList;
53
import java.util.Iterator;
54

    
55

    
56
/**
57
 * Behavior mediante el que se pueden combinar varios behaviors
58
 * a la vez en un mismo MapControl
59
 *
60
 * @author Fernando Gonz?lez Cort?s
61
 */
62
public class CompoundBehavior extends Behavior {
63
        private ArrayList mapTools = new ArrayList();
64
        private ArrayList draws = new ArrayList();
65

    
66
        public CompoundBehavior(Behavior[] tools){
67
                for (int i = 0; i < tools.length; i++) {
68
                        mapTools.add(tools[i]);
69
//                        if (i == 0)
70
                                draws.add(Boolean.TRUE);
71
        //                else
72
                //                draws.add(Boolean.FALSE);
73
                }
74
        }
75
        
76
        public Behavior getBehavior(int index){
77
                return (Behavior) mapTools.get(index);
78
        }
79
        
80
        public void addMapBehavior(Behavior mt, boolean draw){
81
                mapTools.add(mapTools);
82
                draws.add(new Boolean(draw));
83
        }
84
        
85
        /**
86
         * DOCUMENT ME!
87
         *
88
         * @return DOCUMENT ME!
89
         */
90
        public Cursor getCursor() {
91
                if (mapTools.size() > 0) {
92
                        return ((Behavior) mapTools.get(0)).getCursor();
93
                } else {
94
                        return null;
95
                }
96
        }
97

    
98
        /**
99
         * DOCUMENT ME!
100
         *
101
         * @param e DOCUMENT ME!
102
         *
103
         * @throws BehaviorException DOCUMENT ME!
104
         */
105
        public void mouseClicked(MouseEvent e) throws BehaviorException {
106
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
107
                        Behavior mapTool = (Behavior) iter.next();
108
                        
109
                        mapTool.mouseClicked(e);
110
                }
111
        }
112

    
113
        /**
114
         * DOCUMENT ME!
115
         *
116
         * @param e DOCUMENT ME!
117
         *
118
         * @throws BehaviorException DOCUMENT ME!
119
         */
120
        public void mouseDragged(MouseEvent e) throws BehaviorException {
121
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
122
                        Behavior mapTool = (Behavior) iter.next();
123
                        
124
                        mapTool.mouseDragged(e);
125
                }
126
        }
127

    
128
        /**
129
         * DOCUMENT ME!
130
         *
131
         * @param e DOCUMENT ME!
132
         *
133
         * @throws BehaviorException DOCUMENT ME!
134
         */
135
        public void mouseEntered(MouseEvent e) throws BehaviorException {
136
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
137
                        Behavior mapTool = (Behavior) iter.next();
138
                        
139
                        mapTool.mouseEntered(e);
140
                }
141
        }
142

    
143
        /**
144
         * DOCUMENT ME!
145
         *
146
         * @param e DOCUMENT ME!
147
         *
148
         * @throws BehaviorException DOCUMENT ME!
149
         */
150
        public void mouseExited(MouseEvent e) throws BehaviorException {
151
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
152
                        Behavior mapTool = (Behavior) iter.next();
153
                        
154
                        mapTool.mouseExited(e);
155
                }
156
        }
157
        
158
        /**
159
         * DOCUMENT ME!
160
         *
161
         * @param e DOCUMENT ME!
162
         *
163
         * @throws BehaviorException DOCUMENT ME!
164
         */
165
        public void mouseMoved(MouseEvent e) throws BehaviorException {
166
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
167
                        Behavior mapTool = (Behavior) iter.next();
168
                        
169
                        mapTool.mouseMoved(e);
170
                }
171
        }
172

    
173
        /**
174
         * DOCUMENT ME!
175
         *
176
         * @param e DOCUMENT ME!
177
         *
178
         * @throws BehaviorException DOCUMENT ME!
179
         */
180
        public void mousePressed(MouseEvent e) throws BehaviorException {
181
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
182
                        Behavior mapTool = (Behavior) iter.next();
183
                        
184
                        mapTool.mousePressed(e);
185
                }
186
        }
187

    
188
        /**
189
         * DOCUMENT ME!
190
         *
191
         * @param e DOCUMENT ME!
192
         *
193
         * @throws BehaviorException DOCUMENT ME!
194
         */
195
        public void mouseReleased(MouseEvent e) throws BehaviorException {
196
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
197
                        Behavior mapTool = (Behavior) iter.next();
198
                        
199
                        mapTool.mouseReleased(e);
200
                }
201
        }
202

    
203
        /**
204
         * DOCUMENT ME!
205
         *
206
         * @param e DOCUMENT ME!
207
         *
208
         * @throws BehaviorException DOCUMENT ME!
209
         */
210
        public void mouseWheelMoved(MouseWheelEvent e) throws BehaviorException {
211
                for (Iterator iter = mapTools.iterator(); iter.hasNext();) {
212
                        Behavior mapTool = (Behavior) iter.next();
213
                        
214
                        mapTool.mouseWheelMoved(e);
215
                }
216
        }
217

    
218
        /**
219
         * DOCUMENT ME!
220
         *
221
         * @param g DOCUMENT ME!
222
         */
223
        public void paintComponent(Graphics g) {
224
                for (int i = 0; i < mapTools.size(); i++) {
225
                        Behavior mapTool = (Behavior) mapTools.get(i);
226
                        
227
                        if (((Boolean) draws.get(i)).booleanValue())
228
                                mapTool.paintComponent(g);
229
                }
230
        }
231

    
232
        /**
233
         * @see com.iver.cit.gvsig.fmap.tools.Behavior.Behavior#setListener(com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener)
234
         */
235
        public void setListener(ToolListener listener) {
236
                if (listener != null) {
237
                        throw new RuntimeException(
238
                                "CompoundBehavior does not have listeners");
239
                }
240
        }
241

    
242
        /**
243
         * @see com.iver.cit.gvsig.fmap.tools.Behavior.Behavior#getListener()
244
         */
245
        public ToolListener getListener() {
246
                return null;
247
        }
248
        public void setMapControl(MapControl mc) {
249
                for (int i = 0; i < mapTools.size(); i++) {
250
                        Behavior mapTool = (Behavior) mapTools.get(i);
251
                        
252
                        mapTool.setMapControl(mc);
253
                }
254
                
255
                super.setMapControl(mc);
256
        }
257
}