Revision 1074 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/Layout.java
Layout.java | ||
---|---|---|
1 | 1 |
/* |
2 | 2 |
* Created on 20-feb-2004 |
3 | 3 |
* |
4 |
* To change the template for this generated file go to |
|
5 |
* Window>Preferences>Java>Code Generation>Code and Comments |
|
6 | 4 |
*/ |
7 | 5 |
package com.iver.cit.gvsig.gui.layout; |
8 | 6 |
|
7 |
import com.iver.andami.PluginServices; |
|
8 |
import com.iver.andami.ui.mdiManager.SingletonView; |
|
9 |
import com.iver.andami.ui.mdiManager.ViewInfo; |
|
10 |
import com.iver.andami.ui.mdiManager.ViewListener; |
|
11 |
|
|
12 |
import com.iver.cit.gvsig.Abrir; |
|
13 |
import com.iver.cit.gvsig.fmap.ColorEvent; |
|
14 |
import com.iver.cit.gvsig.fmap.DriverException; |
|
15 |
import com.iver.cit.gvsig.fmap.ExtentEvent; |
|
16 |
import com.iver.cit.gvsig.fmap.ViewPortListener; |
|
17 |
import com.iver.cit.gvsig.gui.layout.dialogs.FConfigLayoutDialog; |
|
18 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrame; |
|
19 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameGraphics; |
|
20 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameLegend; |
|
21 |
import com.iver.cit.gvsig.gui.layout.fframes.FFramePicture; |
|
22 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameScaleBar; |
|
23 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameText; |
|
24 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameView; |
|
25 |
import com.iver.cit.gvsig.gui.layout.fframes.IFFrame; |
|
26 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameGraphicsDialog; |
|
27 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameLegendDialog; |
|
28 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFramePictureDialog; |
|
29 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameScaleBarDialog; |
|
30 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameTextDialog; |
|
31 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameViewDialog; |
|
32 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.IFFrameDialog; |
|
33 |
import com.iver.cit.gvsig.project.MapProperties; |
|
34 |
import com.iver.cit.gvsig.project.castor.Project; |
|
35 |
import com.iver.cit.gvsig.project.castor.ProjectMap; |
|
36 |
|
|
37 |
import com.iver.utiles.XMLEntity; |
|
38 |
|
|
39 |
import org.apache.log4j.Logger; |
|
40 |
|
|
9 | 41 |
import java.awt.Color; |
10 | 42 |
import java.awt.Cursor; |
11 | 43 |
import java.awt.Graphics; |
... | ... | |
23 | 55 |
import java.awt.print.Printable; |
24 | 56 |
import java.awt.print.PrinterException; |
25 | 57 |
import java.awt.print.PrinterJob; |
58 |
|
|
26 | 59 |
import java.util.ArrayList; |
27 | 60 |
import java.util.Hashtable; |
28 | 61 |
|
... | ... | |
38 | 71 |
import javax.print.event.PrintJobAdapter; |
39 | 72 |
import javax.print.event.PrintJobEvent; |
40 | 73 |
import javax.print.event.PrintJobListener; |
74 |
|
|
41 | 75 |
import javax.swing.AbstractAction; |
42 | 76 |
import javax.swing.Action; |
43 | 77 |
import javax.swing.ImageIcon; |
44 | 78 |
import javax.swing.JPanel; |
45 | 79 |
import javax.swing.KeyStroke; |
46 | 80 |
|
47 |
import org.apache.log4j.Logger; |
|
48 | 81 |
|
49 |
import com.iver.andami.PluginServices; |
|
50 |
import com.iver.andami.ui.mdiManager.SingletonView; |
|
51 |
import com.iver.andami.ui.mdiManager.ViewInfo; |
|
52 |
import com.iver.andami.ui.mdiManager.ViewListener; |
|
53 |
import com.iver.cit.gvsig.Abrir; |
|
54 |
import com.iver.cit.gvsig.fmap.ColorEvent; |
|
55 |
import com.iver.cit.gvsig.fmap.DriverException; |
|
56 |
import com.iver.cit.gvsig.fmap.ExtentEvent; |
|
57 |
import com.iver.cit.gvsig.fmap.ViewPortListener; |
|
58 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
|
59 |
import com.iver.cit.gvsig.gui.layout.dialogs.FConfigLayoutDialog; |
|
60 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrame; |
|
61 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameGraphics; |
|
62 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameLegend; |
|
63 |
import com.iver.cit.gvsig.gui.layout.fframes.FFramePicture; |
|
64 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameScaleBar; |
|
65 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameText; |
|
66 |
import com.iver.cit.gvsig.gui.layout.fframes.FFrameView; |
|
67 |
import com.iver.cit.gvsig.gui.layout.fframes.IFFrame; |
|
68 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameGraphicsDialog; |
|
69 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameLegendDialog; |
|
70 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFramePictureDialog; |
|
71 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameScaleBarDialog; |
|
72 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameTextDialog; |
|
73 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.FFrameViewDialog; |
|
74 |
import com.iver.cit.gvsig.gui.layout.fframes.dialogs.IFFrameDialog; |
|
75 |
import com.iver.cit.gvsig.project.MapProperties; |
|
76 |
import com.iver.cit.gvsig.project.castor.Project; |
|
77 |
import com.iver.cit.gvsig.project.castor.ProjectMap; |
|
78 |
import com.iver.utiles.XMLEntity; |
|
79 |
|
|
80 |
|
|
81 | 82 |
/** |
82 | 83 |
* Mapa. |
83 | 84 |
* |
84 | 85 |
* @author Vicente Caballero Navarro |
85 | 86 |
*/ |
86 |
public class Layout extends JPanel implements SingletonView,ViewPortListener,ViewListener { |
|
87 |
private static Logger logger = Logger.getLogger(Layout.class.getName()); |
|
87 |
public class Layout extends JPanel implements SingletonView, ViewPortListener, |
|
88 |
ViewListener { |
|
89 |
private static Logger logger = Logger.getLogger(Layout.class.getName()); |
|
90 |
public static final int ZOOM_MAS = 1; |
|
91 |
public static final int ZOOM_MENOS = 2; |
|
92 |
public static final int PAN = 3; |
|
93 |
public static final int DESACTUALIZADO = 4; |
|
94 |
public static final int RECTANGLEVIEW = 5; |
|
95 |
public static final int RECTANGLEPICTURE = 6; |
|
96 |
public static final int RECTANGLESCALEBAR = 7; |
|
97 |
public static final int RECTANGLELEGEND = 8; |
|
98 |
public static final int RECTANGLETEXT = 9; |
|
99 |
public static final int RECTANGLE = 10; |
|
100 |
public static final int ACTUALIZADO = 11; |
|
101 |
public static final int SELECT = 12; |
|
102 |
public static final int POINT = 13; |
|
103 |
public static final int LINE = 14; |
|
104 |
public static final int POLYLINE = 15; |
|
105 |
public static final int RECTANGLESIMPLE = 16; |
|
106 |
public static final int CIRCLE = 17; |
|
107 |
public static final int POLYGON = 18; |
|
108 |
public static final int GRAPHICS = 19; |
|
109 |
public static final int RECTANGLESYMBOL = 20; |
|
110 |
public static final int RECTANGLEGROUP = 21; |
|
111 |
public static final int VIEW_ZOOMIN = 22; |
|
112 |
public static final int VIEW_ZOOMOUT = 23; |
|
113 |
public static final int VIEW_FULL = 24; |
|
114 |
public static final int VIEW_PAN = 25; |
|
115 |
public static final int SET_TAG = 26; |
|
116 |
public static final Image iLayoutpan = new ImageIcon(Abrir.class.getClassLoader() |
|
117 |
.getResource("images/LayoutHand.gif")).getImage(); |
|
118 |
public static final Image ipan = new ImageIcon(Abrir.class.getClassLoader() |
|
119 |
.getResource("images/Hand.gif")).getImage(); |
|
120 |
public static final Image iLayoutzoomin = new ImageIcon(Abrir.class.getClassLoader() |
|
121 |
.getResource("images/LayoutZoomInCursor.gif")).getImage(); |
|
122 |
public static final Image izoomin = new ImageIcon(Abrir.class.getClassLoader() |
|
123 |
.getResource("images/ZoomInCursor.gif")).getImage(); |
|
124 |
public static final Image iLayoutzoomout = new ImageIcon(Abrir.class.getClassLoader() |
|
125 |
.getResource("images/LayoutZoomOutCursor.gif")).getImage(); |
|
126 |
public static final Image izoomout = new ImageIcon(Abrir.class.getClassLoader() |
|
127 |
.getResource("images/ZoomOutCursor.gif")).getImage(); |
|
128 |
public static final Image iinfo = new ImageIcon(Abrir.class.getClassLoader() |
|
129 |
.getResource("images/InfoCursor.gif")).getImage(); |
|
130 |
public static final Image icrux = new ImageIcon(Abrir.class.getClassLoader() |
|
131 |
.getResource("images/CruxCursor.png")).getImage(); |
|
132 |
public static final Image itag = new ImageIcon(Abrir.class.getClassLoader() |
|
133 |
.getResource("images/tagCursor.gif")).getImage(); |
|
134 |
public static final Image iPoint = new ImageIcon(Abrir.class.getClassLoader() |
|
135 |
.getResource("images/PointCursor.png")).getImage(); |
|
136 |
public static final Image iRect = new ImageIcon(Abrir.class.getClassLoader() |
|
137 |
.getResource("images/RectCursor.png")).getImage(); |
|
138 |
public static final Image iLine = new ImageIcon(Abrir.class.getClassLoader() |
|
139 |
.getResource("images/LineCursor.png")).getImage(); |
|
140 |
public static final Image iRectangle = new ImageIcon(Abrir.class.getClassLoader() |
|
141 |
.getResource("images/RectangleCursor.png")).getImage(); |
|
142 |
public static final Image iCircle = new ImageIcon(Abrir.class.getClassLoader() |
|
143 |
.getResource("images/CircleCursor.png")).getImage(); |
|
144 |
public static final Image iPoligon = new ImageIcon(Abrir.class.getClassLoader() |
|
145 |
.getResource("images/PoligonCursor.png")).getImage(); |
|
146 |
public static Hashtable nums = new Hashtable(); |
|
147 |
private Point origin = new Point(50, 50); |
|
148 |
private Point rectOrigin = new Point(origin); |
|
149 |
private Rectangle2D.Double rect = new Rectangle2D.Double(rectOrigin.x, |
|
150 |
rectOrigin.y, 400, 300); |
|
151 |
private Point m_FirstPoint = new Point(0, 0); |
|
152 |
private Point m_PointAnt = new Point(0, 0); |
|
153 |
private Point m_LastPoint = new Point(0, 0); |
|
154 |
private EventsHandler events; |
|
155 |
private int tool = ZOOM_MAS; |
|
156 |
private int status = DESACTUALIZADO; |
|
157 |
private BufferedImage img = null; |
|
158 |
private AffineTransform m_MatrizTransf; |
|
159 |
private Rectangle2D rectVisible; |
|
160 |
private IFFrameDialog fframedialog = null; |
|
161 |
private ArrayList m_fframes = new ArrayList(); |
|
162 |
private FConfigLayoutDialog m_configLayout = null; |
|
163 |
private MapProperties m_propertiesLayout = null; |
|
164 |
private Attributes m_attributes = null; |
|
165 |
private PrintService[] m_cachePrintServices = null; |
|
166 |
private PrintRequestAttributeSet m_cachePrintRequestAtributeSet = null; |
|
167 |
private PrintService m_cachePrintService = null; |
|
168 |
private boolean m_bCancelDrawing = false; |
|
169 |
private boolean isCuadricula = false; |
|
170 |
private boolean initial = true; |
|
171 |
private ProjectMap map = null; |
|
172 |
private Rectangle reSel = null; |
|
173 |
private boolean isReSel = true; |
|
88 | 174 |
|
89 |
/** DOCUMENT ME! */ |
|
90 |
public static final int ZOOM_MAS = 1; |
|
175 |
// private String m_name = null; |
|
176 |
private boolean m_showRuler = true; |
|
177 |
private FLayoutDraw layoutPaint = null; |
|
178 |
private boolean isDrawCuadricula = true; |
|
179 |
private Doc doc = null; |
|
180 |
private PrintRequestAttributeSet att = null; |
|
91 | 181 |
|
92 |
/** DOCUMENT ME! */ |
|
93 |
public static final int ZOOM_MENOS = 2; |
|
182 |
/** |
|
183 |
* Creates a new Layout object. |
|
184 |
*/ |
|
185 |
public Layout() { |
|
186 |
this.setLayout(null); |
|
187 |
events = new EventsHandler(this); |
|
188 |
layoutPaint = new FLayoutDraw(this); |
|
189 |
addComponentListener(events); |
|
190 |
addMouseMotionListener(events); |
|
191 |
addMouseListener(events); |
|
192 |
m_MatrizTransf = new AffineTransform(); |
|
193 |
m_MatrizTransf.setToIdentity(); |
|
194 |
this.initComponents(); |
|
195 |
} |
|
94 | 196 |
|
95 |
/** DOCUMENT ME! */ |
|
96 |
public static final int PAN = 3; |
|
197 |
/** |
|
198 |
* Rellena el ProjectMap del Layout. |
|
199 |
* |
|
200 |
* @param m ProjectMap. |
|
201 |
*/ |
|
202 |
public void setProjectMap(ProjectMap m) { |
|
203 |
map = m; |
|
204 |
} |
|
97 | 205 |
|
98 |
/** DOCUMENT ME! */ |
|
99 |
public static final int DESACTUALIZADO = 4; |
|
206 |
/** |
|
207 |
* Devuelve el rect?ngulo de selecci?n por rect?ngulo. |
|
208 |
* |
|
209 |
* @return Rect?ngulo de selecci?n. |
|
210 |
*/ |
|
211 |
public Rectangle getReSel() { |
|
212 |
return reSel; |
|
213 |
} |
|
100 | 214 |
|
101 |
/** DOCUMENT ME! */ |
|
102 |
public static final int RECTANGLEVIEW = 5; |
|
215 |
/** |
|
216 |
* Devuelve true si se debe dibujar el rect?ngulo de selecci?n y realizar |
|
217 |
* la sellecci?n. |
|
218 |
* |
|
219 |
* @return true si se realiza la selecci?n por rect?ngulo. |
|
220 |
*/ |
|
221 |
public boolean isReSel() { |
|
222 |
return isReSel; |
|
223 |
} |
|
103 | 224 |
|
104 |
/** DOCUMENT ME! */ |
|
105 |
public static final int RECTANGLEPICTURE = 6; |
|
225 |
/** |
|
226 |
* Rellena con true si se debe de dibujar y seleccionar por rect?ngulo de |
|
227 |
* selecci?n. |
|
228 |
* |
|
229 |
* @param b boolean. |
|
230 |
*/ |
|
231 |
public void setIsReSel(boolean b) { |
|
232 |
isReSel = b; |
|
233 |
} |
|
106 | 234 |
|
107 |
/** DOCUMENT ME! */ |
|
108 |
public static final int RECTANGLESCALEBAR = 7; |
|
235 |
/** |
|
236 |
* Devuelve true si el dibujado ha sido cancelado. |
|
237 |
* |
|
238 |
* @return true si el dibujado ha sido cancelado. |
|
239 |
*/ |
|
240 |
public synchronized boolean isDrawingCancelled() { |
|
241 |
return m_bCancelDrawing; |
|
242 |
} |
|
109 | 243 |
|
110 |
/** DOCUMENT ME! */ |
|
111 |
public static final int RECTANGLELEGEND = 8; |
|
244 |
/** |
|
245 |
* Pone el dibuja a cancelado o no seg?n se quiera. |
|
246 |
* |
|
247 |
* @param b true si se quiere cancelar el dibujado. |
|
248 |
*/ |
|
249 |
public synchronized void setCancelDrawing(boolean b) { |
|
250 |
m_bCancelDrawing = b; |
|
112 | 251 |
|
113 |
/** DOCUMENT ME! */
|
|
114 |
public static final int RECTANGLETEXT = 9;
|
|
252 |
for (int i = 0; i < getFFrames().size(); i++) {
|
|
253 |
IFFrame fframe = (IFFrame) getFFrames().get(i);
|
|
115 | 254 |
|
116 |
/** DOCUMENT ME! */ |
|
117 |
public static final int RECTANGLE = 10; |
|
255 |
if (fframe instanceof FFrameView && |
|
256 |
(((FFrameView) fframe).getFMap() != null)) { |
|
257 |
////TODO((FFrameView) getFFrames().get(i)).getFMap().setCancelDrawing(b); |
|
258 |
} |
|
259 |
} |
|
260 |
} |
|
118 | 261 |
|
119 |
/** DOCUMENT ME! */ |
|
120 |
public static final int ACTUALIZADO = 11; |
|
262 |
/** |
|
263 |
* Obtiene el ArrayList con todos los FFrames que se han a?adido al Layout. |
|
264 |
* |
|
265 |
* @return Array con todos los fframes que contiene el Layout. |
|
266 |
*/ |
|
267 |
public ArrayList getFFrames() { |
|
268 |
return m_fframes; |
|
269 |
} |
|
121 | 270 |
|
122 |
/** DOCUMENT ME! */ |
|
123 |
public static final int SELECT = 12; |
|
271 |
/** |
|
272 |
* Obtiene el rect que se ajusta al tama?o de la ventana, para ver el folio |
|
273 |
* entero. |
|
274 |
*/ |
|
275 |
public void fullRect() { |
|
276 |
rect.setRect(origin.x, origin.y, getWidth() - (origin.x * 2), |
|
277 |
getHeight() - (origin.x * 2)); |
|
124 | 278 |
|
125 |
/** DOCUMENT ME! */ |
|
126 |
public static final int POINT = 13; |
|
279 |
if (m_attributes.isLandSpace()) { |
|
280 |
rect = m_attributes.getRectangleLandscape(rect, getWidth(), |
|
281 |
getHeight()); |
|
282 |
} else { |
|
283 |
rect = m_attributes.getRectanglePortrait(rect, getWidth(), |
|
284 |
getHeight()); |
|
285 |
} |
|
127 | 286 |
|
128 |
/** DOCUMENT ME! */ |
|
129 |
public static final int LINE = 14; |
|
287 |
status = DESACTUALIZADO; |
|
288 |
repaint(); |
|
289 |
} |
|
130 | 290 |
|
131 |
/** DOCUMENT ME! */ |
|
132 |
public static final int POLYLINE = 15; |
|
291 |
/** |
|
292 |
* M?todo para imprimir el Layout sin modificar la matriz de |
|
293 |
* transformaci?n. |
|
294 |
* |
|
295 |
* @param g2 |
|
296 |
*/ |
|
297 |
public void drawLayoutPrint(Graphics2D g2) { |
|
298 |
setCancelDrawing(false); |
|
133 | 299 |
|
134 |
/** DOCUMENT ME! */ |
|
135 |
public static final int RECTANGLESIMPLE = 16; |
|
300 |
setCursor(Cursor.getDefaultCursor()); |
|
136 | 301 |
|
137 |
/** DOCUMENT ME! */ |
|
138 |
public static final int CIRCLE = 17; |
|
302 |
double scale = 0; |
|
139 | 303 |
|
140 |
/** DOCUMENT ME! */ |
|
141 |
public static final int POLYGON = 18; |
|
304 |
///if (rect.width > rect.height) { |
|
305 |
/// scale = rect.width / m_attributes.m_sizePaper.getAlto() * 1; |
|
306 |
///} else { |
|
307 |
scale = rect.height / m_attributes.m_sizePaper.getAlto() * 1; |
|
142 | 308 |
|
143 |
/** DOCUMENT ME! */ |
|
144 |
public static final int GRAPHICS = 19; |
|
309 |
///} |
|
310 |
AffineTransform escalado = new AffineTransform(); |
|
311 |
AffineTransform translacion = new AffineTransform(); |
|
312 |
translacion.setToTranslation(rect.getMinX(), rect.getMinY()); |
|
313 |
escalado.setToScale(scale, scale); |
|
314 |
m_MatrizTransf.setToIdentity(); |
|
315 |
m_MatrizTransf.concatenate(translacion); |
|
316 |
m_MatrizTransf.concatenate(escalado); |
|
317 |
m_attributes.setDistanceUnitX(rect); |
|
318 |
m_attributes.setDistanceUnitY(rect); |
|
145 | 319 |
|
146 |
/** DOCUMENT ME! */ |
|
147 |
public static final int RECTANGLESYMBOL = 20; |
|
320 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
321 |
try { |
|
322 |
((IFFrame) getFFrames().get(i)).print(g2, getAT()); |
|
323 |
} catch (DriverException e) { |
|
324 |
e.printStackTrace(); |
|
325 |
} |
|
326 |
} |
|
148 | 327 |
|
149 |
/** DOCUMENT ME! */
|
|
150 |
public static final int RECTANGLEGROUP = 21;
|
|
328 |
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
|
329 |
}
|
|
151 | 330 |
|
152 |
/** DOCUMENT ME! */ |
|
153 |
public static final int VIEW_ZOOMIN = 22; |
|
331 |
/** |
|
332 |
* Clip sobre el rect?ngulo visible. |
|
333 |
* |
|
334 |
* @param g2d Graphics sobre el que hacer el clip. |
|
335 |
*/ |
|
336 |
private void clipVisibleRect(Graphics2D g2d) { |
|
337 |
rectVisible = this.getVisibleRect(); |
|
338 |
g2d.clipRect((int) rectVisible.getMinX(), (int) rectVisible.getMinY(), |
|
339 |
(int) rectVisible.getWidth(), (int) rectVisible.getHeight()); |
|
340 |
} |
|
154 | 341 |
|
155 |
/** DOCUMENT ME! */ |
|
156 |
public static final int VIEW_ZOOMOUT = 23; |
|
342 |
/** |
|
343 |
* Inicializa los componentes. |
|
344 |
*/ |
|
345 |
private void initComponents() { |
|
346 |
m_attributes = new Attributes(); |
|
347 |
m_attributes.setDistanceUnitX(rect); |
|
348 |
m_attributes.setDistanceUnitY(rect); |
|
349 |
actionDelFFrame(); |
|
350 |
} |
|
157 | 351 |
|
158 |
/** DOCUMENT ME! */ |
|
159 |
public static final int VIEW_FULL = 24; |
|
352 |
/** |
|
353 |
* Crea un ActionEvent para controlar las teclas que se pulsen cuando este |
|
354 |
* el Layout Focusable a true. |
|
355 |
*/ |
|
356 |
private void actionDelFFrame() { |
|
357 |
Action doNothing = new AbstractAction() { |
|
358 |
public void actionPerformed(ActionEvent e) { |
|
359 |
for (int i = getFFrames().size() - 1; i >= 0; i--) { |
|
360 |
IFFrame fframe = (IFFrame) getFFrames().get(i); |
|
160 | 361 |
|
161 |
/** DOCUMENT ME! */ |
|
162 |
public static final int VIEW_PAN = 25; |
|
163 |
public static final int SET_TAG=26; |
|
164 |
/** DOCUMENT ME! */ |
|
165 |
public static final Image iLayoutpan = new ImageIcon(Abrir.class.getClassLoader() |
|
166 |
.getResource("images/LayoutHand.gif")).getImage(); |
|
362 |
if (fframe.getSelected() != FFrame.NOSELECT) { |
|
363 |
getFFrames().remove(i); |
|
364 |
} |
|
365 |
} |
|
167 | 366 |
|
168 |
/** DOCUMENT ME! */
|
|
169 |
public static final Image ipan = new ImageIcon(Abrir.class.getClassLoader()
|
|
170 |
.getResource("images/Hand.gif")).getImage();
|
|
367 |
refresh();
|
|
368 |
}
|
|
369 |
};
|
|
171 | 370 |
|
172 |
/** DOCUMENT ME! */ |
|
173 |
public static final Image iLayoutzoomin = new ImageIcon(Abrir.class.getClassLoader() |
|
174 |
.getResource("images/LayoutZoomInCursor.gif")).getImage(); |
|
371 |
this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), |
|
372 |
"doNothing"); |
|
373 |
this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), |
|
374 |
"doNothing"); |
|
375 |
this.getActionMap().put("doNothing", doNothing); |
|
376 |
} |
|
175 | 377 |
|
176 |
/** DOCUMENT ME! */ |
|
177 |
public static final Image izoomin = new ImageIcon(Abrir.class.getClassLoader() |
|
178 |
.getResource("images/ZoomInCursor.gif")).getImage(); |
|
378 |
/** |
|
379 |
* paintComponent del Layout. |
|
380 |
* |
|
381 |
* @param g Graphics del Layout. |
|
382 |
*/ |
|
383 |
protected void paintComponent(Graphics g) { |
|
384 |
super.paintComponent(g); |
|
179 | 385 |
|
180 |
/** DOCUMENT ME! */ |
|
181 |
public static final Image iLayoutzoomout = new ImageIcon(Abrir.class.getClassLoader() |
|
182 |
.getResource("images/LayoutZoomOutCursor.gif")).getImage(); |
|
386 |
switch (status) { |
|
387 |
case ZOOM_MAS: |
|
388 |
logger.debug("zoom mas"); |
|
389 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
183 | 390 |
|
184 |
/** DOCUMENT ME! */ |
|
185 |
public static final Image izoomout = new ImageIcon(Abrir.class.getClassLoader() |
|
186 |
.getResource("images/ZoomOutCursor.gif")).getImage(); |
|
391 |
g.drawImage(img, 0, 0, this); |
|
392 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
393 |
g.setColor(Color.black); |
|
394 |
g.setXORMode(Color.white); |
|
187 | 395 |
|
188 |
/** DOCUMENT ME! */ |
|
189 |
public static final Image iinfo = new ImageIcon(Abrir.class.getClassLoader() |
|
190 |
.getResource("images/InfoCursor.gif")).getImage(); |
|
396 |
Rectangle r = new Rectangle(); |
|
191 | 397 |
|
192 |
/** DOCUMENT ME! */ |
|
193 |
public static final Image icrux = new ImageIcon(Abrir.class.getClassLoader() |
|
194 |
.getResource("images/CruxCursor.png")).getImage(); |
|
195 |
|
|
196 |
public static final Image itag = new ImageIcon(Abrir.class.getClassLoader() |
|
197 |
.getResource("images/tagCursor.gif")).getImage(); |
|
198 |
|
|
199 |
private Point origin = new Point(50, 50); |
|
200 |
private Point rectOrigin = new Point(origin); |
|
201 |
private Rectangle2D.Double rect = new Rectangle2D.Double(rectOrigin.x, |
|
202 |
rectOrigin.y, 400, 300); |
|
203 |
private Point m_FirstPoint = new Point(0, 0); |
|
204 |
private Point m_PointAnt = new Point(0, 0); |
|
205 |
private Point m_LastPoint = new Point(0, 0); |
|
206 |
private EventsHandler events; |
|
207 |
private int tool = ZOOM_MAS; |
|
208 |
private int status = DESACTUALIZADO; |
|
209 |
private BufferedImage img = null; |
|
210 |
private AffineTransform m_MatrizTransf; |
|
211 |
private Rectangle2D rectVisible; |
|
212 |
private IFFrameDialog fframedialog = null; |
|
213 |
private ArrayList m_fframes = new ArrayList(); |
|
214 |
private FConfigLayoutDialog m_configLayout = null; |
|
215 |
private MapProperties m_propertiesLayout = null; |
|
216 |
private Attributes m_attributes = null; |
|
217 |
private PrintService[] m_cachePrintServices = null; |
|
218 |
private PrintRequestAttributeSet m_cachePrintRequestAtributeSet = null; |
|
219 |
private PrintService m_cachePrintService = null; |
|
220 |
private boolean m_bCancelDrawing = false; |
|
221 |
private boolean isCuadricula = false; |
|
222 |
private boolean initial = true; |
|
223 |
private ProjectMap map = null; |
|
224 |
private Rectangle reSel = null; |
|
225 |
private boolean isReSel = true; |
|
226 |
// private String m_name = null; |
|
227 |
private boolean m_showRuler = true; |
|
228 |
private FLayoutDraw layoutPaint = null; |
|
229 |
private boolean isDrawCuadricula=true; |
|
230 |
public static Hashtable nums=new Hashtable(); |
|
231 |
private Doc doc=null; |
|
232 |
private PrintRequestAttributeSet att=null; |
|
233 |
/** |
|
234 |
* Creates a new Layout object. |
|
235 |
*/ |
|
236 |
public Layout() { |
|
237 |
this.setLayout(null); |
|
238 |
events = new EventsHandler(this); |
|
239 |
layoutPaint = new FLayoutDraw(this); |
|
240 |
addComponentListener(events); |
|
241 |
addMouseMotionListener(events); |
|
242 |
addMouseListener(events); |
|
243 |
m_MatrizTransf = new AffineTransform(); |
|
244 |
m_MatrizTransf.setToIdentity(); |
|
245 |
this.initComponents(); |
|
246 |
} |
|
398 |
r.setFrameFromDiagonal(m_FirstPoint, m_LastPoint); |
|
399 |
g.drawRect(r.x, r.y, r.width, r.height); |
|
247 | 400 |
|
248 |
/** |
|
249 |
* Rellena el ProjectMap del Layout. |
|
250 |
* |
|
251 |
* @param m ProjectMap. |
|
252 |
*/ |
|
253 |
public void setProjectMap(ProjectMap m) { |
|
254 |
map = m; |
|
255 |
} |
|
401 |
break; |
|
256 | 402 |
|
257 |
/** |
|
258 |
* Devuelve el rect?ngulo de selecci?n por rect?ngulo. |
|
259 |
* |
|
260 |
* @return Rect?ngulo de selecci?n. |
|
261 |
*/ |
|
262 |
public Rectangle getReSel() { |
|
263 |
return reSel; |
|
264 |
} |
|
403 |
case RECTANGLE: |
|
404 |
logger.debug("rectangle"); |
|
405 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
265 | 406 |
|
266 |
/** |
|
267 |
* Devuelve true si se debe dibujar el rect?ngulo de selecci?n y realizar |
|
268 |
* la sellecci?n. |
|
269 |
* |
|
270 |
* @return true si se realiza la selecci?n por rect?ngulo. |
|
271 |
*/ |
|
272 |
public boolean isReSel() { |
|
273 |
return isReSel; |
|
274 |
} |
|
407 |
g.drawImage(img, 0, 0, this); |
|
408 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
409 |
g.setColor(Color.black); |
|
410 |
g.setXORMode(Color.white); |
|
275 | 411 |
|
276 |
/** |
|
277 |
* Rellena con true si se debe de dibujar y seleccionar por rect?ngulo de |
|
278 |
* selecci?n. |
|
279 |
* |
|
280 |
* @param b boolean. |
|
281 |
*/ |
|
282 |
public void setIsReSel(boolean b) { |
|
283 |
isReSel = b; |
|
284 |
} |
|
412 |
Rectangle re = new Rectangle(); |
|
413 |
re.setFrameFromDiagonal(m_FirstPoint, m_LastPoint); |
|
285 | 414 |
|
286 |
/** |
|
287 |
* Devuelve true si el dibujado ha sido cancelado. |
|
288 |
* |
|
289 |
* @return true si el dibujado ha sido cancelado. |
|
290 |
*/ |
|
291 |
public synchronized boolean isDrawingCancelled() { |
|
292 |
return m_bCancelDrawing; |
|
293 |
} |
|
415 |
if (isCuadricula()) { |
|
416 |
FLayoutUtilities.setRectGrid(re, |
|
417 |
m_attributes.getUnitInPixelsX(), |
|
418 |
m_attributes.getUnitInPixelsY(), m_MatrizTransf); |
|
419 |
} |
|
294 | 420 |
|
295 |
/** |
|
296 |
* Pone el dibuja a cancelado o no seg?n se quiera. |
|
297 |
* |
|
298 |
* @param b true si se quiere cancelar el dibujado. |
|
299 |
*/ |
|
300 |
public synchronized void setCancelDrawing(boolean b) { |
|
301 |
m_bCancelDrawing = b; |
|
421 |
g.drawRect(re.x, re.y, re.width, re.height); |
|
302 | 422 |
|
303 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
304 |
IFFrame fframe = (IFFrame) getFFrames().get(i); |
|
423 |
break; |
|
305 | 424 |
|
306 |
if (fframe instanceof FFrameView && |
|
307 |
(((FFrameView) fframe).getFMap() != null)) { |
|
308 |
////TODO((FFrameView) getFFrames().get(i)).getFMap().setCancelDrawing(b); |
|
309 |
} |
|
310 |
} |
|
311 |
} |
|
425 |
case PAN: |
|
426 |
logger.debug("pan"); |
|
312 | 427 |
|
313 |
/** |
|
314 |
* Obtiene el ArrayList con todos los FFrames que se han a?adido al Layout. |
|
315 |
* |
|
316 |
* @return Array con todos los fframes que contiene el Layout. |
|
317 |
*/ |
|
318 |
public ArrayList getFFrames() { |
|
319 |
return m_fframes; |
|
320 |
} |
|
428 |
//g.setXORMode(Color.black); |
|
429 |
rect.x = rectOrigin.x + (m_LastPoint.x - m_PointAnt.x); |
|
430 |
rect.y = rectOrigin.y + (m_LastPoint.y - m_PointAnt.y); |
|
321 | 431 |
|
322 |
/** |
|
323 |
* DOCUMENT ME! |
|
324 |
* |
|
325 |
* @param frames DOCUMENT ME! |
|
326 |
*/ |
|
327 |
private void setFFrames(ArrayList frames) { |
|
328 |
m_fframes = frames; |
|
329 |
} |
|
432 |
//g.clearRect(0, 0, getWidth(), getHeight()); |
|
433 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
330 | 434 |
|
331 |
/** |
|
332 |
* Obtiene el rect que se ajusta al tama?o de la ventana, para ver el folio |
|
333 |
* entero. |
|
334 |
*/ |
|
335 |
public void fullRect() { |
|
336 |
rect.setRect(origin.x, origin.y, getWidth() - (origin.x * 2), |
|
337 |
getHeight() - (origin.x * 2)); |
|
435 |
if (img != null) { |
|
436 |
g.drawImage(img, (getLastPoint().x - getPointAnt().x), |
|
437 |
(m_LastPoint.y - m_PointAnt.y), this); |
|
438 |
} |
|
338 | 439 |
|
339 |
if (m_attributes.isLandSpace()) { |
|
340 |
rect = m_attributes.getRectangleLandscape(rect, getWidth(), |
|
341 |
getHeight()); |
|
342 |
} else { |
|
343 |
rect = m_attributes.getRectanglePortrait(rect, getWidth(), |
|
344 |
getHeight()); |
|
345 |
} |
|
440 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
346 | 441 |
|
347 |
status = DESACTUALIZADO; |
|
348 |
repaint(); |
|
349 |
} |
|
442 |
break; |
|
350 | 443 |
|
351 |
/** |
|
352 |
* M?todo para imprimir el Layout sin modificar la matriz de |
|
353 |
* transformaci?n. |
|
354 |
* |
|
355 |
* @param g2 |
|
356 |
*/ |
|
357 |
public void drawLayoutPrint(Graphics2D g2) { |
|
358 |
setCancelDrawing(false); |
|
359 |
|
|
360 |
setCursor(Cursor.getDefaultCursor()); |
|
444 |
case VIEW_PAN: |
|
361 | 445 |
|
362 |
double scale = 0; |
|
446 |
// logger.debug("View pan"); |
|
447 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
448 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
363 | 449 |
|
364 |
///if (rect.width > rect.height) { |
|
365 |
/// scale = rect.width / m_attributes.m_sizePaper.getAlto() * 1; |
|
366 |
///} else { |
|
367 |
scale = rect.height / m_attributes.m_sizePaper.getAlto() * 1; |
|
450 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
451 |
if (getFFrames().get(i) instanceof FFrameView) { |
|
452 |
FFrameView fframe = (FFrameView) getFFrames().get(i); |
|
368 | 453 |
|
369 |
///} |
|
370 |
AffineTransform escalado = new AffineTransform(); |
|
371 |
AffineTransform translacion = new AffineTransform(); |
|
372 |
translacion.setToTranslation(rect.getMinX(), rect.getMinY()); |
|
373 |
escalado.setToScale(scale, scale); |
|
374 |
m_MatrizTransf.setToIdentity(); |
|
375 |
m_MatrizTransf.concatenate(translacion); |
|
376 |
m_MatrizTransf.concatenate(escalado); |
|
377 |
m_attributes.setDistanceUnitX(rect); |
|
378 |
m_attributes.setDistanceUnitY(rect); |
|
454 |
if (fframe.getSelected() != FFrame.NOSELECT) { |
|
455 |
Rectangle2D.Double rec = fframe.getBoundingBox(getAT()); |
|
379 | 456 |
|
380 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
381 |
try { |
|
382 |
((IFFrame) getFFrames().get(i)).print(g2, getAT()); |
|
383 |
} catch (DriverException e) { |
|
384 |
e.printStackTrace(); |
|
385 |
} |
|
386 |
} |
|
387 |
|
|
388 |
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
389 |
} |
|
457 |
if (img != null) { |
|
458 |
//g.drawImage(img, 0, 0, this); |
|
459 |
rec = (Rectangle2D.Double) rec.createIntersection(getVisibleRect()); |
|
390 | 460 |
|
391 |
/** |
|
392 |
* Clip sobre el rect?ngulo visible. |
|
393 |
* |
|
394 |
* @param g2d Graphics sobre el que hacer el clip. |
|
395 |
*/ |
|
396 |
private void clipVisibleRect(Graphics2D g2d) { |
|
397 |
rectVisible = this.getVisibleRect(); |
|
398 |
g2d.clipRect((int) rectVisible.getMinX(), (int) rectVisible.getMinY(), |
|
399 |
(int) rectVisible.getWidth(), (int) rectVisible.getHeight()); |
|
400 |
} |
|
461 |
//((Graphics2D)g).clearRect((int)rec.x,(int)rec.y,(int)rec.width,(int)rec.height); |
|
462 |
} |
|
401 | 463 |
|
402 |
/** |
|
403 |
* Inicializa los componentes. |
|
404 |
*/ |
|
405 |
private void initComponents() { |
|
406 |
m_attributes = new Attributes(); |
|
407 |
m_attributes.setDistanceUnitX(rect); |
|
408 |
m_attributes.setDistanceUnitY(rect); |
|
409 |
actionDelFFrame(); |
|
410 |
} |
|
464 |
if (fframe.getBufferedImage() != null) { |
|
465 |
layoutPaint.drawHandlers((Graphics2D) g, |
|
466 |
Color.black); |
|
467 |
g.clipRect((int) rec.x, (int) rec.y, |
|
468 |
(int) rec.width, (int) rec.height); |
|
411 | 469 |
|
412 |
/** |
|
413 |
* Crea un ActionEvent para controlar las teclas que se pulsen cuando este |
|
414 |
* el Layout Focusable a true. |
|
415 |
*/ |
|
416 |
private void actionDelFFrame() { |
|
417 |
Action doNothing = new AbstractAction() { |
|
418 |
public void actionPerformed(ActionEvent e) { |
|
419 |
for (int i = getFFrames().size() - 1; i >= 0; i--) { |
|
420 |
IFFrame fframe = (IFFrame) getFFrames().get(i); |
|
470 |
//g.setColor(Color.gray); |
|
471 |
//g.fillRect(0,0,getWidth(),getHeight()); |
|
472 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
473 |
layoutPaint.drawRuler((Graphics2D) g, |
|
474 |
Color.black); |
|
421 | 475 |
|
422 |
if (fframe.getSelected() != FFrame.NOSELECT) { |
|
423 |
getFFrames().remove(i); |
|
424 |
} |
|
425 |
} |
|
476 |
g.drawImage(fframe.getBufferedImage(), |
|
477 |
m_LastPoint.x - m_PointAnt.x, |
|
478 |
m_LastPoint.y - m_PointAnt.y, this); |
|
479 |
System.out.println( |
|
480 |
"m_LastPoint.x - m_PointAnt.x" + |
|
481 |
(m_LastPoint.x - m_PointAnt.x)); |
|
482 |
System.out.println( |
|
483 |
"m_LastPoint.y - m_PointAnt.y" + |
|
484 |
(m_LastPoint.y - m_PointAnt.y)); |
|
485 |
} |
|
486 |
} |
|
487 |
} |
|
488 |
} |
|
426 | 489 |
|
427 |
refresh(); |
|
428 |
} |
|
429 |
}; |
|
490 |
//g.setXORMode(Color.black); |
|
491 |
break; |
|
430 | 492 |
|
431 |
this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), |
|
432 |
"doNothing"); |
|
433 |
this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), |
|
434 |
"doNothing"); |
|
435 |
this.getActionMap().put("doNothing", doNothing); |
|
436 |
} |
|
493 |
case SELECT: |
|
494 |
logger.debug("select"); |
|
495 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
437 | 496 |
|
438 |
/** |
|
439 |
* paintComponent del Layout. |
|
440 |
* |
|
441 |
* @param g Graphics del Layout. |
|
442 |
*/ |
|
443 |
protected void paintComponent(Graphics g) { |
|
444 |
super.paintComponent(g); |
|
497 |
g.drawImage(img, 0, 0, this); |
|
445 | 498 |
|
446 |
switch (status) { |
|
447 |
case ZOOM_MAS: |
|
448 |
logger.debug("zoom mas"); |
|
449 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
499 |
if (isReSel) { |
|
500 |
reSel = new Rectangle(); |
|
501 |
reSel.setFrameFromDiagonal(m_FirstPoint, m_LastPoint); |
|
502 |
g.drawRect(reSel.x, reSel.y, reSel.width, reSel.height); |
|
503 |
} |
|
450 | 504 |
|
451 |
g.drawImage(img, 0, 0, this); |
|
452 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
453 |
g.setColor(Color.black); |
|
454 |
g.setXORMode(Color.white); |
|
505 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
506 |
IFFrame fframe = (IFFrame) getFFrames().get(i); |
|
455 | 507 |
|
456 |
Rectangle r = new Rectangle(); |
|
508 |
if (fframe.getSelected() != FFrame.NOSELECT) { |
|
509 |
g.setColor(Color.black); |
|
510 |
fframe.drawHandlers((Graphics2D) g); |
|
457 | 511 |
|
458 |
r.setFrameFromDiagonal(m_FirstPoint, m_LastPoint);
|
|
459 |
g.drawRect(r.x, r.y, r.width, r.height);
|
|
512 |
int difx = (m_LastPoint.x - m_FirstPoint.x);
|
|
513 |
int dify = (m_LastPoint.y - m_FirstPoint.y);
|
|
460 | 514 |
|
461 |
break; |
|
515 |
if ((Math.abs(difx) > 3) || (Math.abs(dify) > 3)) { |
|
516 |
Rectangle2D rectangle = fframe.getMovieRect(difx, |
|
517 |
dify); |
|
462 | 518 |
|
463 |
case RECTANGLE: |
|
464 |
logger.debug("rectangle"); |
|
465 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
519 |
if (rectangle != null) { |
|
520 |
if (isCuadricula) { |
|
521 |
FLayoutUtilities.setRectGrid(rectangle, |
|
522 |
m_attributes.getUnitInPixelsX(), |
|
523 |
m_attributes.getUnitInPixelsY(), |
|
524 |
m_MatrizTransf); |
|
525 |
} |
|
466 | 526 |
|
467 |
g.drawImage(img, 0, 0, this); |
|
468 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
469 |
g.setColor(Color.black); |
|
470 |
g.setXORMode(Color.white); |
|
527 |
g.drawRect((int) rectangle.getMinX(), |
|
528 |
(int) rectangle.getMinY(), |
|
529 |
(int) rectangle.getWidth(), |
|
530 |
(int) rectangle.getHeight()); |
|
531 |
} |
|
532 |
} |
|
533 |
} |
|
534 |
} |
|
471 | 535 |
|
472 |
Rectangle re = new Rectangle(); |
|
473 |
re.setFrameFromDiagonal(m_FirstPoint, m_LastPoint); |
|
536 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
474 | 537 |
|
475 |
if (isCuadricula()) { |
|
476 |
FLayoutUtilities.setRectGrid(re, |
|
477 |
m_attributes.getUnitInPixelsX(), |
|
478 |
m_attributes.getUnitInPixelsY(), m_MatrizTransf); |
|
479 |
} |
|
538 |
break; |
|
480 | 539 |
|
481 |
g.drawRect(re.x, re.y, re.width, re.height); |
|
540 |
case GRAPHICS: |
|
541 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
542 |
g.drawImage(img, 0, 0, this); |
|
543 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
482 | 544 |
|
483 |
break;
|
|
545 |
break;
|
|
484 | 546 |
|
485 |
case PAN: |
|
486 |
logger.debug("pan"); |
|
547 |
case DESACTUALIZADO: |
|
548 |
logger.debug("desactualizado"); |
|
549 |
img = new BufferedImage(getWidth(), getHeight(), |
|
550 |
BufferedImage.TYPE_INT_ARGB); |
|
487 | 551 |
|
488 |
//g.setXORMode(Color.black); |
|
489 |
rect.x = rectOrigin.x + (m_LastPoint.x - m_PointAnt.x); |
|
490 |
rect.y = rectOrigin.y + (m_LastPoint.y - m_PointAnt.y); |
|
552 |
Graphics gimag = img.getGraphics(); |
|
553 |
clipVisibleRect((Graphics2D) gimag); |
|
491 | 554 |
|
492 |
//g.clearRect(0, 0, getWidth(), getHeight()); |
|
493 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
555 |
if (initial) { |
|
556 |
fullRect(); |
|
557 |
initial = false; |
|
558 |
} |
|
494 | 559 |
|
495 |
if (img != null) { |
|
496 |
g.drawImage(img, (getLastPoint().x - getPointAnt().x), |
|
497 |
(m_LastPoint.y - m_PointAnt.y), this); |
|
498 |
} |
|
560 |
try { |
|
561 |
layoutPaint.drawLayout((Graphics2D) gimag, img); |
|
562 |
} catch (DriverException e) { |
|
563 |
e.printStackTrace(); |
|
564 |
} |
|
499 | 565 |
|
500 |
layoutPaint.drawRuler((Graphics2D) g, Color.black);
|
|
566 |
layoutPaint.drawRectangle((Graphics2D) g);
|
|
501 | 567 |
|
502 |
break; |
|
568 |
g.drawImage(img, 0, 0, this); |
|
569 |
layoutPaint.drawHandlers((Graphics2D) g, Color.black); |
|
570 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
503 | 571 |
|
504 |
case VIEW_PAN:
|
|
572 |
break;
|
|
505 | 573 |
|
506 |
// logger.debug("View pan"); |
|
507 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
508 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
574 |
case ACTUALIZADO: |
|
575 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
509 | 576 |
|
510 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
511 |
if (getFFrames().get(i) instanceof FFrameView) { |
|
512 |
FFrameView fframe = (FFrameView) getFFrames().get(i); |
|
577 |
g.drawImage(img, 0, 0, this); |
|
578 |
layoutPaint.drawHandlers((Graphics2D) g, Color.black); |
|
579 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
580 |
} |
|
581 |
} |
|
513 | 582 |
|
514 |
if (fframe.getSelected() != FFrame.NOSELECT) { |
|
515 |
Rectangle2D.Double rec = fframe.getBoundingBox(getAT()); |
|
583 |
/** |
|
584 |
* A?ade un fframe al Arraylist m_fframes. |
|
585 |
* |
|
586 |
* @param frame fframe a a?adir. |
|
587 |
* @param clearSelection para que se quede seleccionado ?nicamente el que |
|
588 |
* a?adimos y false si lo que se pretende es que no se |
|
589 |
* deseleccionen lo que ya est?n seleccionados. |
|
590 |
*/ |
|
591 |
public void addFFrame(IFFrame frame, boolean clearSelection) { |
|
592 |
if (clearSelection) { |
|
593 |
for (int i = getFFrames().size() - 1; i >= 0; i--) { |
|
594 |
IFFrame fframe1 = (IFFrame) getFFrames().get(i); |
|
595 |
fframe1.setSelected(false); |
|
596 |
} |
|
597 |
} |
|
516 | 598 |
|
517 |
if (img != null) { |
|
518 |
|
|
519 |
//g.drawImage(img, 0, 0, this); |
|
520 |
|
|
521 |
rec = (Rectangle2D.Double) rec.createIntersection(getVisibleRect()); |
|
522 |
//((Graphics2D)g).clearRect((int)rec.x,(int)rec.y,(int)rec.width,(int)rec.height); |
|
523 |
} |
|
599 |
if (frame instanceof FFrameView && |
|
600 |
(((FFrameView) frame).getFMap() != null)) { |
|
601 |
((FFrameView) frame).getFMap().getViewPort().addExtentListener(this); |
|
602 |
} |
|
524 | 603 |
|
525 |
if (fframe.getBufferedImage() != null) { |
|
526 |
layoutPaint.drawHandlers((Graphics2D) g, |
|
527 |
Color.black); |
|
528 |
g.clipRect((int) rec.x, (int) rec.y, |
|
529 |
(int) rec.width, (int) rec.height); |
|
604 |
if (nums.containsKey(frame.getClass())) { |
|
605 |
nums.put(frame.getClass(), |
|
606 |
new Integer(Integer.parseInt(nums.get(frame.getClass()) |
|
607 |
.toString()) + 1)); |
|
608 |
} else { |
|
609 |
nums.put(frame.getClass(), new Integer(0)); |
|
610 |
} |
|
530 | 611 |
|
531 |
//g.setColor(Color.gray); |
|
532 |
//g.fillRect(0,0,getWidth(),getHeight()); |
|
533 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
534 |
layoutPaint.drawRuler((Graphics2D) g, |
|
535 |
Color.black); |
|
612 |
frame.setNum(Integer.parseInt(nums.get(frame.getClass()).toString())); |
|
613 |
getFFrames().add(frame); |
|
614 |
frame.setSelected(true); |
|
615 |
} |
|
536 | 616 |
|
537 |
g.drawImage(fframe.getBufferedImage(), |
|
538 |
m_LastPoint.x - m_PointAnt.x, |
|
539 |
m_LastPoint.y - m_PointAnt.y, this); |
|
540 |
System.out.println( |
|
541 |
"m_LastPoint.x - m_PointAnt.x" + |
|
542 |
(m_LastPoint.x - m_PointAnt.x)); |
|
543 |
System.out.println( |
|
544 |
"m_LastPoint.y - m_PointAnt.y" + |
|
545 |
(m_LastPoint.y - m_PointAnt.y)); |
|
546 |
} |
|
547 |
} |
|
548 |
} |
|
549 |
} |
|
617 |
/** |
|
618 |
* Abre el di?logo de propiedades del folio, pasando como par?metro el |
|
619 |
* PrinterJob. |
|
620 |
* |
|
621 |
* @param job |
|
622 |
*/ |
|
623 |
public void showPagePropertiesWindow(PrinterJob job) { |
|
624 |
PageFormat pf1; //=new PageFormat(); |
|
550 | 625 |
|
551 |
//g.setXORMode(Color.black); |
|
552 |
break; |
|
626 |
pf1 = m_attributes.getPageFormat(); |
|
627 |
pf1 = job.pageDialog(pf1); |
|
628 |
m_attributes.setPageFormat(pf1); |
|
629 |
refresh(); |
|
630 |
} |
|
553 | 631 |
|
554 |
case SELECT: |
|
555 |
logger.debug("select"); |
|
556 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
632 |
/** |
|
633 |
* Refresca el Layout. |
|
634 |
*/ |
|
635 |
public void refresh() { |
|
636 |
rect = m_attributes.obtainRect(false, rect, getWidth(), getHeight()); |
|
637 |
status = DESACTUALIZADO; |
|
638 |
repaint(); |
|
639 |
} |
|
557 | 640 |
|
558 |
g.drawImage(img, 0, 0, this); |
|
641 |
/** |
|
642 |
* Obtiene el rect?ngulo que representa el folio con las caracter?sticas |
|
643 |
* que contiene attributes y diferenciando si es para visualizar en |
|
644 |
* pantalla o para imprimir. |
|
645 |
* |
|
646 |
* @param isPrint si es para imprimir. |
|
647 |
*/ |
|
648 |
public void obtainRect(boolean isPrint) { |
|
649 |
m_attributes.obtainRect(isPrint, rect, getWidth(), getHeight()); |
|
650 |
} |
|
559 | 651 |
|
560 |
if (isReSel) { |
|
561 |
reSel = new Rectangle(); |
|
562 |
reSel.setFrameFromDiagonal(m_FirstPoint, m_LastPoint); |
|
563 |
g.drawRect(reSel.x, reSel.y, reSel.width, reSel.height); |
|
564 |
} |
|
652 |
/** |
|
653 |
* Muestra el di?logo de configuraci?n del Layout. |
|
654 |
*/ |
|
655 |
public void showFConfig() { |
|
656 |
FConfigLayoutDialog m_configLayout = new FConfigLayoutDialog(this); |
|
657 |
PluginServices.getMDIManager().addView(m_configLayout); |
|
658 |
} |
|
565 | 659 |
|
566 |
for (int i = 0; i < getFFrames().size(); i++) { |
|
567 |
IFFrame fframe = (IFFrame) getFFrames().get(i); |
|
660 |
/** |
|
661 |
* Mestra el di?logo de propiedades del Layout. |
|
662 |
*/ |
|
663 |
public void showFProperties() { |
|
664 |
if (map == null) { |
|
665 |
map = new ProjectMap(); |
|
666 |
map.setModel(this); |
|
667 |
map.setName(getName()); |
|
668 |
} |
|
568 | 669 |
|
569 |
if (fframe.getSelected() != FFrame.NOSELECT) {
|
|
570 |
g.setColor(Color.black);
|
|
571 |
fframe.drawHandlers((Graphics2D) g);
|
|
670 |
m_propertiesLayout = new MapProperties(map);
|
|
671 |
PluginServices.getMDIManager().addView(m_propertiesLayout);
|
|
672 |
}
|
|
572 | 673 |
|
573 |
int difx = (m_LastPoint.x - m_FirstPoint.x); |
|
574 |
int dify = (m_LastPoint.y - m_FirstPoint.y); |
|
674 |
/** |
|
675 |
* Muestra el di?logo de imprimir pasandole el printerJob como par?metro. |
|
676 |
* |
|
677 |
* @param job |
|
678 |
*/ |
|
679 |
public void showPrintDialog(PrinterJob job) { |
|
680 |
if (job != null) { |
|
681 |
job.printDialog(); |
|
575 | 682 |
|
576 |
if ((Math.abs(difx) > 3) || (Math.abs(dify) > 3)) { |
|
577 |
Rectangle2D rectangle = fframe.getMovieRect(difx, |
|
578 |
dify); |
|
683 |
try { |
|
684 |
job.setPrintable((Printable) PluginServices.getExtension( |
|
685 |
com.iver.cit.gvsig.Print.class)); |
|
686 |
job.print(); |
|
687 |
} catch (PrinterException e) { |
|
688 |
e.printStackTrace(); |
|
689 |
} |
|
690 |
} else { |
|
691 |
boolean print = false; |
|
579 | 692 |
|
580 |
if (rectangle != null) { |
|
581 |
if (isCuadricula) { |
|
582 |
FLayoutUtilities.setRectGrid(rectangle, |
|
583 |
m_attributes.getUnitInPixelsX(), |
|
584 |
m_attributes.getUnitInPixelsY(), |
|
585 |
m_MatrizTransf); |
|
586 |
} |
|
693 |
//Actualizar attributes |
|
694 |
att = m_attributes.toPrintAttributes(); |
|
587 | 695 |
|
588 |
g.drawRect((int) rectangle.getMinX(), |
|
589 |
(int) rectangle.getMinY(), |
|
590 |
(int) rectangle.getWidth(), |
|
591 |
(int) rectangle.getHeight()); |
|
592 |
} |
|
593 |
} |
|
594 |
} |
|
595 |
} |
|
696 |
//------------------ The Printing things --------------------- // |
|
697 |
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE; |
|
596 | 698 |
|
597 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
699 |
// returns the set of printers that support printing a specific document type (such as GIF) |
|
700 |
// with a specific set of attributes (such as two sided). |
|
701 |
// PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); |
|
702 |
// interestingly, the printer dialog's default behavior has changed with the new API: by default the dialog is not shown. |
|
703 |
// So we must use the ServiceUI class to create a print dialog |
|
704 |
// returns the default print service. |
|
705 |
if (m_cachePrintServices == null) { |
|
706 |
m_cachePrintServices = PrintServiceLookup.lookupPrintServices(flavor, |
|
707 |
null); |
|
708 |
} |
|
598 | 709 |
|
599 |
break;
|
|
710 |
PrintService defaultService = null;
|
|
600 | 711 |
|
601 |
case GRAPHICS: |
|
602 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
603 |
g.drawImage(img, 0, 0, this); |
|
604 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
712 |
if (m_cachePrintService == null) { |
|
713 |
defaultService = PrintServiceLookup.lookupDefaultPrintService(); |
|
714 |
} |
|
605 | 715 |
|
606 |
break; |
|
716 |
if (m_cachePrintService == null) { |
|
717 |
m_cachePrintService = ServiceUI.printDialog(null, 200, 200, |
|
718 |
m_cachePrintServices, defaultService, flavor, att); |
|
607 | 719 |
|
608 |
case DESACTUALIZADO: |
|
609 |
logger.debug("desactualizado"); |
|
610 |
img = new BufferedImage(getWidth(), getHeight(), |
|
611 |
BufferedImage.TYPE_INT_ARGB); |
|
720 |
// m_cachePrintRequestAtributeSet = new HashPrintRequestAttributeSet(); |
|
721 |
// m_cachePrintRequestAtributeSet.addAll(pras); |
|
722 |
} else { |
|
723 |
m_cachePrintService = ServiceUI.printDialog(null, 200, 200, |
|
724 |
m_cachePrintServices, m_cachePrintService, flavor, att); |
|
725 |
} |
|
612 | 726 |
|
613 |
Graphics gimag = img.getGraphics(); |
|
614 |
clipVisibleRect((Graphics2D) gimag); |
|
727 |
if (m_cachePrintService != null) { |
|
728 |
DocPrintJob jobNuevo = m_cachePrintService.createPrintJob(); |
|
729 |
PrintJobListener pjlistener = new PrintJobAdapter() { |
|
730 |
public void printDataTransferCompleted(PrintJobEvent e) { |
|
731 |
System.out.println("Fin de impresi?n"); |
|
732 |
} |
|
733 |
}; |
|
615 | 734 |
|
616 |
if (initial) { |
|
617 |
fullRect(); |
|
618 |
initial = false; |
|
619 |
} |
|
735 |
jobNuevo.addPrintJobListener(pjlistener); |
|
620 | 736 |
|
621 |
try { |
|
622 |
layoutPaint.drawLayout((Graphics2D) gimag, img); |
|
623 |
} catch (DriverException e) { |
|
624 |
e.printStackTrace(); |
|
625 |
} |
|
626 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
737 |
// DocAttributeSet das = new HashDocAttributeSet(); |
|
738 |
doc = new SimpleDoc((Printable) PluginServices.getExtension( |
|
739 |
com.iver.cit.gvsig.Print.class), flavor, null); |
|
627 | 740 |
|
628 |
g.drawImage(img, 0, 0, this); |
|
629 |
layoutPaint.drawHandlers((Graphics2D) g, Color.black); |
|
630 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
741 |
try { |
|
742 |
jobNuevo.print(doc, att); |
|
631 | 743 |
|
632 |
break; |
|
633 |
|
|
634 |
case ACTUALIZADO: |
|
635 |
layoutPaint.drawRectangle((Graphics2D) g); |
|
636 |
|
|
637 |
g.drawImage(img, 0, 0, this); |
|
638 |
layoutPaint.drawHandlers((Graphics2D) g, Color.black); |
|
639 |
layoutPaint.drawRuler((Graphics2D) g, Color.black); |
|
640 |
} |
|
641 |
} |
|
642 |
|
|
643 |
/** |
|
644 |
* A?ade un fframe al Arraylist m_fframes. |
|
645 |
* |
|
646 |
* @param frame fframe a a?adir. |
|
647 |
* @param clearSelection para que se quede seleccionado ?nicamente el que |
|
648 |
* a?adimos y false si lo que se pretende es que no se |
|
649 |
* deseleccionen lo que ya est?n seleccionados. |
|
650 |
*/ |
|
651 |
public void addFFrame(IFFrame frame, boolean clearSelection) { |
|
652 |
if (clearSelection) { |
|
653 |
for (int i = getFFrames().size() - 1; i >= 0; i--) { |
|
654 |
IFFrame fframe1 = (IFFrame) getFFrames().get(i); |
|
655 |
fframe1.setSelected(false); |
|
656 |
} |
|
657 |
} |
|
658 |
|
|
659 |
if (frame instanceof FFrameView && |
|
660 |
(((FFrameView) frame).getFMap() != null)) { |
|
661 |
((FFrameView) frame).getFMap().getViewPort().addExtentListener(this); |
|
662 |
} |
|
663 |
if (nums.containsKey(frame.getClass())){ |
|
664 |
nums.put(frame.getClass(),new Integer(Integer.parseInt(nums.get(frame.getClass()).toString())+1)); |
|
665 |
}else{ |
|
666 |
nums.put(frame.getClass(),new Integer(0)); |
|
667 |
} |
|
668 |
|
|
669 |
frame.setNum(Integer.parseInt(nums.get(frame.getClass()).toString())); |
|
670 |
getFFrames().add(frame); |
|
671 |
frame.setSelected(true); |
|
672 |
|
|
673 |
} |
|
674 |
|
|
675 |
/** |
|
676 |
* Abre el di?logo de propiedades del folio, pasando como par?metro el |
|
677 |
* PrinterJob. |
|
678 |
* |
|
679 |
* @param job |
|
680 |
*/ |
|
681 |
public void showPagePropertiesWindow(PrinterJob job) { |
|
682 |
PageFormat pf1; //=new PageFormat(); |
|
683 |
|
|
684 |
pf1 = m_attributes.getPageFormat(); |
|
685 |
pf1 = job.pageDialog(pf1); |
|
686 |
m_attributes.setPageFormat(pf1); |
|
687 |
refresh(); |
|
688 |
} |
|
689 |
|
|
690 |
/** |
|
691 |
* Refresca el Layout. |
|
692 |
*/ |
|
693 |
public void refresh() { |
|
694 |
rect = m_attributes.obtainRect(false, rect, getWidth(), getHeight()); |
|
695 |
status = DESACTUALIZADO; |
|
696 |
repaint(); |
|
697 |
} |
|
698 |
|
|
699 |
/** |
|
700 |
* Obtiene el rect?ngulo que representa el folio con las caracter?sticas |
|
701 |
* que contiene attributes y diferenciando si es para visualizar en |
|
702 |
* pantalla o para imprimir. |
|
703 |
* |
|
704 |
* @param isPrint si es para imprimir. |
|
705 |
*/ |
|
706 |
public void obtainRect(boolean isPrint) { |
|
707 |
m_attributes.obtainRect(isPrint, rect, getWidth(), getHeight()); |
|
708 |
} |
|
709 |
|
|
710 |
/** |
|
711 |
* Muestra el di?logo de configuraci?n del Layout. |
|
712 |
*/ |
|
713 |
public void showFConfig() { |
|
714 |
FConfigLayoutDialog m_configLayout = new FConfigLayoutDialog(this); |
|
715 |
PluginServices.getMDIManager().addView(m_configLayout); |
|
716 |
} |
|
717 |
|
|
718 |
/** |
|
719 |
* Mestra el di?logo de propiedades del Layout. |
|
720 |
*/ |
|
721 |
public void showFProperties() { |
|
722 |
if (map == null) { |
|
723 |
map = new ProjectMap(); |
|
724 |
map.setModel(this); |
|
725 |
map.setName(getName()); |
|
726 |
} |
|
727 |
|
|
728 |
m_propertiesLayout = new MapProperties(map); |
|
729 |
PluginServices.getMDIManager().addView(m_propertiesLayout); |
|
730 |
} |
|
731 |
|
|
732 |
/** |
|
733 |
* Muestra el di?logo de imprimir pasandole el printerJob como par?metro. |
|
734 |
* |
|
735 |
* @param job |
|
736 |
*/ |
|
737 |
public void showPrintDialog(PrinterJob job) { |
|
738 |
if (job!=null){ |
|
739 |
job.printDialog(); |
|
740 |
try { |
|
741 |
job.setPrintable((Printable) PluginServices.getExtension(com.iver.cit.gvsig.Print.class)); |
|
742 |
job.print(); |
|
743 |
} catch (PrinterException e) { |
|
744 |
e.printStackTrace(); |
|
744 |
// m_attributes. |
|
745 |
} catch (PrintException pe) { |
|
746 |
pe.printStackTrace(); |
|
745 | 747 |
} |
746 |
}else{
|
|
747 |
boolean print = false;
|
|
748 |
}
|
|
749 |
}
|
|
748 | 750 |
|
749 |
//Actualizar attributes |
|
750 |
|
|
751 |
att = m_attributes.toPrintAttributes(); |
|
752 |
|
|
753 |
//------------------ The Printing things --------------------- // |
|
754 |
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE; |
|
751 |
/* try { |
|
752 |
print = job.printDialog(att); |
|
753 |
} catch (Exception e) { |
|
754 |
logger.error("Abriendo el Di?logo de imprimir"); //System.out.println("Excepci?n "+e); |
|
755 |
} |
|
756 |
if (print) { |
|
757 |
job.setPrintable((Printable) App.instance.getPc().getExtension(com.iver.cit.gvsig.Print.class)); |
|
758 |
try { |
|
759 |
job.print(att); |
|
760 |
} catch (Exception ex) { |
|
761 |
ex.printStackTrace(); |
|
762 |
} |
|
763 |
} */ |
|
764 |
fullRect(); |
|
765 |
} |
|
755 | 766 |
|
756 |
// returns the set of printers that support printing a specific document type (such as GIF) |
|
757 |
// with a specific set of attributes (such as two sided). |
|
758 |
// PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); |
|
759 |
|
|
767 |
/** |
|
768 |
* Sustituye el puntero del rat?n por la imagen que se le pasa como |
|
769 |
* par?metro. |
|
770 |
* |
|
771 |
* @param image |
|
772 |
*/ |
|
773 |
public void setMapCursor(Image image) { |
|
774 |
Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(image, |
|
775 |
new Point(16, 16), ""); |
|
776 |
setCursor(cur); |
|
777 |
} |
|
760 | 778 |
|
761 |
// interestingly, the printer dialog's default behavior has changed with the new API: by default the dialog is not shown. |
|
762 |
// So we must use the ServiceUI class to create a print dialog |
|
763 |
// returns the default print service. |
|
764 |
if (m_cachePrintServices == null) |
|
765 |
m_cachePrintServices = PrintServiceLookup.lookupPrintServices(flavor, null); |
|
766 |
|
|
767 |
PrintService defaultService = null; |
|
768 |
if (m_cachePrintService == null) |
|
769 |
defaultService = PrintServiceLookup.lookupDefaultPrintService(); |
|
770 |
|
|
771 |
if (m_cachePrintService == null) |
|
772 |
{ |
|
773 |
|
|
774 |
m_cachePrintService = ServiceUI.printDialog(null, 200, 200, |
|
775 |
m_cachePrintServices, defaultService, flavor, att); |
|
776 |
|
|
777 |
// m_cachePrintRequestAtributeSet = new HashPrintRequestAttributeSet(); |
|
778 |
// m_cachePrintRequestAtributeSet.addAll(pras); |
|
779 |
} |
|
780 |
else |
|
781 |
m_cachePrintService = ServiceUI.printDialog(null, 200, 200, |
|
782 |
m_cachePrintServices, m_cachePrintService, flavor, att); |
|
783 |
|
|
784 |
if (m_cachePrintService != null) |
|
785 |
{ |
|
786 |
DocPrintJob jobNuevo = m_cachePrintService.createPrintJob(); |
|
787 |
PrintJobListener pjlistener = new PrintJobAdapter() { |
|
788 |
public void printDataTransferCompleted(PrintJobEvent e) { |
|
789 |
System.out.println("Fin de impresi?n"); |
|
790 |
} |
|
791 |
}; |
|
792 |
jobNuevo.addPrintJobListener(pjlistener); |
|
793 |
|
|
794 |
// DocAttributeSet das = new HashDocAttributeSet(); |
|
795 |
doc =new SimpleDoc((Printable) PluginServices.getExtension(com.iver.cit.gvsig.Print.class), flavor, null); |
|
796 |
|
|
797 |
try { |
|
798 |
|
|
799 |
jobNuevo.print(doc, att); |
|
779 |
/** |
|
780 |
* Cambia el puntero del raton al cusor que se le introduce como par?metro. |
|
781 |
* |
|
782 |
* @param cursor cursor a mostrar en el puntero del rat?n. |
|
783 |
*/ |
|
784 |
public void setMapCursor(Cursor cursor) { |
|
785 |
setCursor(cursor); |
|
786 |
} |
|
800 | 787 |
|
801 |
// m_attributes. |
|
802 |
} catch (PrintException pe) { |
|
803 |
pe.printStackTrace(); |
|
804 |
} |
|
805 |
} |
|
806 |
} |
|
788 |
/** |
|
789 |
* Pone como seleccionada a la herramienta a partir de su n?mero. |
|
790 |
* |
|
791 |
* @param i |
|
792 |
*/ |
|
793 |
public void setTool(int i) { |
|
794 |
tool = i; |
|
807 | 795 |
|
808 |
/* try { |
|
809 |
print = job.printDialog(att); |
|
810 |
} catch (Exception e) { |
|
811 |
logger.error("Abriendo el Di?logo de imprimir"); //System.out.println("Excepci?n "+e); |
|
812 |
} |
|
796 |
if (getTool() == PAN) { |
|
797 |
setMapCursor(ipan); |
|
798 |
} else if (getTool() == ZOOM_MAS) { |
|
799 |
setMapCursor(izoomin); |
|
800 |
} else if (getTool() == ZOOM_MENOS) { |
|
801 |
setMapCursor(izoomout); |
|
802 |
} else if (getTool() == RECTANGLEVIEW) { |
|
803 |
setMapCursor(icrux); |
|
804 |
} else if (getTool() == RECTANGLEPICTURE) { |
|
805 |
setMapCursor(icrux); |
|
806 |
} else if (getTool() == RECTANGLESCALEBAR) { |
|
807 |
setMapCursor(icrux); |
|
808 |
} else if (getTool() == RECTANGLELEGEND) { |
|
809 |
setMapCursor(icrux); |
|
810 |
} else if (getTool() == RECTANGLETEXT) { |
|
811 |
setMapCursor(icrux); |
|
812 |
} else if (getTool() == SELECT) { |
|
813 |
setCursor(Cursor.getDefaultCursor()); |
|
814 |
} else if (getTool() == SET_TAG) { |
|
815 |
setMapCursor(itag); |
|
816 |
} else if (getTool() == POINT) { |
|
817 |
setMapCursor(iPoint); |
|
818 |
} else if (getTool() == LINE) { |
|
819 |
setMapCursor(iRect); |
|
820 |
} else if (getTool() == RECTANGLESIMPLE) { |
|
821 |
setMapCursor(iRectangle); |
|
822 |
} else if (getTool() == POLYLINE) { |
|
823 |
setMapCursor(iLine); |
|
824 |
} else if (getTool() == POLYGON) { |
|
825 |
setMapCursor(iPoligon); |
|
826 |
} else if (getTool() == CIRCLE) { |
|
827 |
setMapCursor(iCircle); |
|
828 |
} |
|
829 |
} |
|
813 | 830 |
|
814 |
if (print) { |
|
815 |
job.setPrintable((Printable) App.instance.getPc().getExtension(com.iver.cit.gvsig.Print.class)); |
|
816 |
try { |
|
817 |
job.print(att); |
|
818 |
} catch (Exception ex) { |
|
819 |
ex.printStackTrace(); |
|
820 |
} |
|
821 |
} */ |
|
831 |
/** |
|
832 |
* Se crean aqu? los dialogos cada vez que se necesitan. |
|
833 |
* |
|
834 |
* @param fframe Rectangle que representa el lugar que ocupara el elemento |
|
835 |
* a?adido. |
|
836 |
* |
|
837 |
* @return true si se debe de a?adir el fframe. |
|
838 |
*/ |
|
839 |
public boolean openFFrameDialog(IFFrame fframe) { |
|
840 |
switch (tool) { |
|
841 |
case RECTANGLEVIEW: |
|
842 |
fframedialog = new FFrameViewDialog(this, (FFrameView) fframe); |
|
822 | 843 |
|
823 |
fullRect(); |
|
824 |
} |
|
844 |
break; |
|
825 | 845 |
|
826 |
/** |
|
827 |
* Sustituye el puntero del rat?n por la imagen que se le pasa como |
|
828 |
* par?metro. |
|
829 |
* |
|
830 |
* @param image |
Also available in: Unified diff