Statistics
| Revision:

root / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / gui / layout / fframes / IFFrame.java @ 2183

History | View | Annotate | Download (7.7 KB)

1
/*
2
 * Created on 20-feb-2004
3
 *
4
 */
5
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
6
 *
7
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
22
 *
23
 * For more information, contact:
24
 *
25
 *  Generalitat Valenciana
26
 *   Conselleria d'Infraestructures i Transport
27
 *   Av. Blasco Ib??ez, 50
28
 *   46010 VALENCIA
29
 *   SPAIN
30
 *
31
 *      +34 963862235
32
 *   gvsig@gva.es
33
 *      www.gvsig.gva.es
34
 *
35
 *    or
36
 *
37
 *   IVER T.I. S.A
38
 *   Salamanca 50
39
 *   46005 Valencia
40
 *   Spain
41
 *
42
 *   +34 963163400
43
 *   dac@iver.es
44
 */
45
package com.iver.cit.gvsig.gui.layout.fframes;
46

    
47
import com.iver.cit.gvsig.fmap.DriverException;
48
import com.iver.cit.gvsig.fmap.layers.XMLException;
49
import com.iver.cit.gvsig.gui.layout.Layout;
50

    
51
import com.iver.utiles.XMLEntity;
52

    
53
import java.awt.Cursor;
54
import java.awt.Graphics2D;
55
import java.awt.geom.AffineTransform;
56
import java.awt.geom.Point2D;
57
import java.awt.geom.Rectangle2D;
58
import java.awt.image.BufferedImage;
59

    
60

    
61
/**
62
 * Interface que implementa FFrame.
63
 *
64
 * @author Vicente Caballero Navarro
65
 */
66
public interface IFFrame {
67
        /**
68
         * Devuelve el boundingBox del fframe en funci?n de la transformada af?n
69
         * que se pasa como par?metro. Si se pasa como par?metro null, devuelve el
70
         * ?ltimo boundingbox que se calcul?.
71
         *
72
         * @param at Transformada af?n
73
         *
74
         * @return Rect?ngulo que representa el BoundingBox del fframe.
75
         */
76
        public Rectangle2D.Double getBoundingBox(AffineTransform at);
77

    
78
        /**
79
         * Devuelve el rect?ngulo que representa el fframe en cent?metros.
80
         *
81
         * @return Rect?ngulo en centimetros.
82
         */
83
        public Rectangle2D.Double getBoundBox();
84

    
85
        /**
86
         * Rellena con el rect?ngulo que se pasa como par?metro el boundBox(en
87
         * cent?metros) del fframe del cual con una transformaci?n se podr?
88
         * calcular el BoundingBox (en pixels).
89
         *
90
         * @param rect Rect?ngulo en cent?metros.
91
         */
92
        public void setBoundBox(Rectangle2D.Double rect);
93

    
94
        /**
95
         * Este m?todo se implementa en cada una de las fframe, ya que cada una se
96
         * dibuja de una forma diferente sobre el graphics. M?todo que dibuja
97
         * sobre el graphics que se le pasa como par?metro, seg?n la transformada
98
         * afin que se debe de aplicar y el rect?ngulo que se debe de dibujar.
99
         *
100
         * @param g Graphics
101
         * @param at Transformada afin.
102
         * @param r rect?ngulo sobre el que hacer un clip.
103
         * @param imgBase Imagen para acelerar el dibujado.
104
         *
105
         * @throws DriverException
106
         */
107
        public void draw(Graphics2D g, AffineTransform at, Rectangle2D r,
108
                BufferedImage imgBase) throws DriverException;
109

    
110
        /**
111
         * Implementado para imprimir.
112
         *
113
         * @param g Graphics2D de la impresora sobre el que dibujar.
114
         * @param at DOCUMENT ME!
115
         *
116
         * @throws DriverException
117
         */
118
        public void print(Graphics2D g, AffineTransform at)
119
                throws DriverException;
120

    
121
        /**
122
         * Devuelve el nombre que representa al fframe.
123
         *
124
         * @return String nombre del FFrame.
125
         */
126
        public String getName();
127

    
128
        /**
129
         * Rellena el String que representa al nombre del fframe.
130
         *
131
         * @param n nombre del fframe.
132
         */
133
        public void setName(String n);
134

    
135
        /**
136
         * Devuelve true, si el punto que se pasa como par?metro esta contenido
137
         * dentro del boundingbox del fframe.
138
         *
139
         * @param p punto a comprobar.
140
         *
141
         * @return true si el punto esta dentro del boundingbox.
142
         */
143
        public boolean contains(Point2D.Double p);
144

    
145
        /**
146
         * Dibuja los handlers sobre el boundingBox en el graphics que se pasa como
147
         * par?metro.
148
         *
149
         * @param g Graphics sobre el que dibujar.
150
         */
151
        public void drawHandlers(Graphics2D g);
152

    
153
        /**
154
         * Pasando como par?metro true,  se toma como que est? seleccionado el
155
         * fframe  y si es false como que esta sin seleccionar, de esta forma se
156
         * selecciona un fframe directamente sin comprobar si un punto est?
157
         * contenido en ?l.
158
         *
159
         * @param b true si se quiere seleccionar y false si se quiere
160
         *                   deseleccionar.
161
         */
162
        public void setSelected(Point2D.Double b);
163

    
164
        /**
165
         * Establece que tipo de selecci?n se realiza sobre el fframe.
166
         *
167
         * @param b punto sobre el que se debe de establecer si se selecciona o no
168
         *                   el fframe.
169
         */
170
        public void setSelected(boolean b);
171

    
172
        /**
173
         * Devuelve un entero que representa el tipo de selecci?n que se ha
174
         * realizado sobre el fframe.
175
         *
176
         * @return tipo de selecci?n que se ha realizado.
177
         */
178
        public int getSelected();
179

    
180
        /**
181
         * Devuelve un entero que representa donde esta contenido el punto que se
182
         * pasa como par?metro.
183
         *
184
         * @param p punto a comparar.
185
         *
186
         * @return entero que representa como esta contenido el punto.
187
         */
188
        public int getContains(Point2D.Double p);
189

    
190
        /**
191
         * Devuelve el Cursor adecuado seg?n como est? contenido el punto, si es
192
         * para desplazamiento, o cambio de tama?o.
193
         *
194
         * @param p punto a comprobar.
195
         *
196
         * @return Cursor adecuado a la posici?n.
197
         */
198
        public Cursor getMapCursor(Point2D.Double p);
199

    
200
        /**
201
         * Devuelve el rect?ngulo a partir del desplazamiento en el eje x y el
202
         * desplazamiento en el eje y.
203
         *
204
         * @param difx desplazamiento sobre el eje x.
205
         * @param dify desplazamiento sobre el eje y.
206
         *
207
         * @return rect?ngulo modificado en funci?n del desplazamiento realizado.
208
         */
209
        public Rectangle2D getMovieRect(int difx, int dify);
210

    
211
        /**
212
         * Devuelve un Objeto XMLEntity con la informaci?n los atributos necesarios
213
         * para poder despu?s volver a crear el objeto original.
214
         *
215
         * @return XMLEntity.
216
         * @throws XMLException
217
         */
218
        public XMLEntity getXMLEntity() throws XMLException;
219

    
220
        /**
221
         * Dibuja un rect?ngulo de color gris,  con el nombre en el centro y
222
         * escalado en forma de borrador.
223
         *
224
         * @param g Graphics sobre el que se dibuja.
225
         */
226
        public void drawDraft(Graphics2D g);
227

    
228
        /**
229
         * Actualiza el BoundBox del FFrame a partir de su rect?ngulo en pixels y
230
         * la matriz de transformaci?n.
231
         *
232
         * @param r Rect?ngulo.
233
         * @param at Matriz de transformaci?n.
234
         */
235
        public void updateRect(Rectangle2D r, AffineTransform at);
236

    
237
        /**
238
         * Devuelve true si el rect?ngulo primero es null o si es distinto de null
239
         * e intersecta.
240
         *
241
         * @param rv Rect?ngulo
242
         * @param r Rect?ngulo
243
         *
244
         * @return True si intersecta o es null.
245
         */
246
        public boolean intersects(Rectangle2D rv, Rectangle2D r);
247

    
248
        /**
249
         * Introduce el n?mero de FFrame en el que de que se trata.
250
         *
251
         * @param i n?mero de FFrame
252
         */
253
        public void setNum(int i);
254

    
255
        /**
256
         * A partir del xml y de Project inicia el objeto.
257
         *
258
         * @param xml XMLEntity
259
         * @param l Project
260
         */
261
        public void setXMLEntity(XMLEntity xml, Layout l);
262

    
263
    /**
264
     * A partir del xml y de Project inicia el objeto.
265
     *
266
     * @param xml XMLEntity
267
     * @param l Project
268
     */
269
    public void setXMLEntity03(XMLEntity xml, Layout l);
270

    
271
        /**
272
         * Devuelve el nombre que representa al tipo de FFrame.
273
         *
274
         * @return nombre del elemento.
275
         */
276
        public String getNameFFrame();
277

    
278
        /**
279
         * Abre la ventana para modificar el tag.
280
         */
281
        public void openTag();
282

    
283
        /**
284
         * Rellena el tag.
285
         *
286
         * @param s valor del tag.
287
         */
288
        public void setTag(String s);
289

    
290
        /**
291
         * Devuelve el valor del tag.
292
         *
293
         * @return String del valor del tag.
294
         */
295
        public String getTag();
296

    
297
        /**
298
         * Dibuja el s?mbolo que indica que el FFrame contiene un tag.
299
         *
300
         * @param g Graphics sobre el que dibujar.
301
         */
302
        public void drawSymbolTag(Graphics2D g);
303
}