Revision 9392 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/FLayoutDraw.java

View differences:

FLayoutDraw.java
72 72
import com.iver.andami.PluginServices;
73 73
import com.iver.cit.gvsig.Print;
74 74
import com.iver.cit.gvsig.fmap.DriverException;
75
import com.iver.cit.gvsig.gui.layout.Attributes;
76
import com.iver.cit.gvsig.gui.layout.Layout;
77 75
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
76
import com.iver.cit.gvsig.project.documents.layout.gui.Layout;
78 77
import com.lowagie.text.Document;
79 78
import com.lowagie.text.DocumentException;
80 79
import com.lowagie.text.pdf.PdfContentByte;
......
111 110
     */
112 111
    public void drawLayout(Graphics2D g2, BufferedImage imgBase)
113 112
        throws DriverException {
114
        layout.setCancelDrawing(false);
113
        layout.getLayoutControl().setCancelDrawing(false);
115 114
        double scale = 0;
116
        scale = layout.getRect().height / layout.getAtributes().m_sizePaper.getAlto() * 1;
115
        scale = layout.getLayoutControl().getRect().height / layout.getLayoutContext().getAtributes().m_sizePaper.getAlto() * 1;
117 116
        AffineTransform escalado = new AffineTransform();
118 117
        AffineTransform translacion = new AffineTransform();
119
        translacion.setToTranslation(layout.getRect().getMinX(),
120
            layout.getRect().getMinY());
118
        translacion.setToTranslation(layout.getLayoutControl().getRect().getMinX(),
119
            layout.getLayoutControl().getRect().getMinY());
121 120
        escalado.setToScale(scale, scale);
122
        layout.getAT().setToIdentity();
123
        layout.getAT().concatenate(translacion);
124
        layout.getAT().concatenate(escalado);
125
        layout.getAtributes().setDistanceUnitX(layout.getRect());
126
        layout.getAtributes().setDistanceUnitY(layout.getRect());
127
        IFFrame[] fframes=layout.getFFrames();
121
        layout.getLayoutControl().getAT().setToIdentity();
122
        layout.getLayoutControl().getAT().concatenate(translacion);
123
        layout.getLayoutControl().getAT().concatenate(escalado);
124
        layout.getLayoutContext().getAtributes().setDistanceUnitX(layout.getLayoutControl().getRect());
125
        layout.getLayoutContext().getAtributes().setDistanceUnitY(layout.getLayoutControl().getRect());
126
        IFFrame[] fframes=layout.getLayoutContext().getFFrames();
128 127
        for (int i = 0; i < fframes.length; i++) {
129 128
        	IFFrame f = fframes[i];
130 129
    		//original, lento (NO MAC)
131
    		f.draw(g2, layout.getAT(), layout.getVisibleRect(),imgBase);
130
    		f.draw(g2, layout.getLayoutControl().getAT(), layout.getLayoutControl().getVisibleRect(),imgBase);
132 131
        	// ESTILO MAC
133 132
        	/* if (f instanceof FFrameView)
134 133
        	{
135 134
        		FFrameView fframe = (FFrameView) f;
136
        		BufferedImage img = new BufferedImage((int) layout.getWidth(),
137
    				(int) layout.getHeight(), BufferedImage.TYPE_INT_ARGB);
135
        		BufferedImage img = new BufferedImage((int) layout.getLayoutControl().getWidth(),
136
    				(int) layout.getLayoutControl().getHeight(), BufferedImage.TYPE_INT_ARGB);
138 137

  
139 138

  
140
        		fframe.draw(img.createGraphics(), layout.getAT(),	layout.getVisibleRect(), imgBase);
141
        		g2.drawImage(img, 0, 0, layout);
139
        		fframe.draw(img.createGraphics(), layout.getLayoutControl().getAT(),	layout.getLayoutControl().getVisibleRect(), imgBase);
140
        		g2.drawImage(img, 0, 0, layout.getLayoutControl());
142 141
        		fframe.setBufferedImage(img);
143 142
        	}
144 143
        	else
145 144
        	{
146
        		f.draw(g2, layout.getAT(), layout.getVisibleRect(),imgBase);
145
        		f.draw(g2, layout.getLayoutControl().getAT(), layout.getLayoutControl().getVisibleRect(),imgBase);
147 146
        	} */
148 147

  
149 148
            //          Dibuja el s?mbolo de que contiene un tag.
......
153 152
        }
154 153

  
155 154
        if (!(fframes.length==0)) {
156
            layout.setStatus(Layout.ACTUALIZADO);
155
            layout.getLayoutControl().setStatus(LayoutControl.ACTUALIZADO);
157 156
        } else {
158
            layout.setStatus(Layout.DESACTUALIZADO);
157
            layout.getLayoutControl().setStatus(LayoutControl.DESACTUALIZADO);
159 158
        }
160 159
    }
161 160

  
......
165 164
     * @param g Graphics2D
166 165
     */
167 166
    public void drawRectangle(Graphics2D g) {
168
        double unidadesX = layout.getAtributes().getUnitInPixelsX();
169
        double unidadesY = layout.getAtributes().getUnitInPixelsY();
167
        double unidadesX = layout.getLayoutContext().getAtributes().getUnitInPixelsX();
168
        double unidadesY = layout.getLayoutContext().getAtributes().getUnitInPixelsY();
170 169

  
171 170
        if ((unidadesX == 0) && (unidadesY == 0)) {
172 171
            return;
......
174 173

  
175 174
        g.setColor(Color.darkGray);
176 175

  
177
        Rectangle2D.Double rectBig = new Rectangle2D.Double(layout.getRect().x,
178
                layout.getRect().y, layout.getRect().width,
179
                layout.getRect().height);
176
        Rectangle2D.Double rectBig = new Rectangle2D.Double(layout.getLayoutControl().getRect().x,
177
                layout.getLayoutControl().getRect().y, layout.getLayoutControl().getRect().width,
178
                layout.getLayoutControl().getRect().height);
180 179

  
181 180
        g.fill3DRect((int) rectBig.x + 7, (int) rectBig.y + 7,
182 181
            (int) rectBig.width, (int) rectBig.height, true);
183 182

  
184 183
        Rectangle2D.Double r = new Rectangle2D.Double();
185 184

  
186
        if (layout.getAtributes().isMargin()) {
187
            r = new Rectangle2D.Double((layout.getRect().x +
185
        if (layout.getLayoutContext().getAtributes().isMargin()) {
186
            r = new Rectangle2D.Double((layout.getLayoutControl().getRect().x +
188 187
                    FLayoutUtilities.fromSheetDistance(
189
                        layout.getAtributes().m_area[2], layout.getAT())),
190
                    (layout.getRect().y +
188
                        layout.getLayoutContext().getAtributes().m_area[2], layout.getLayoutControl().getAT())),
189
                    (layout.getLayoutControl().getRect().y +
191 190
                    FLayoutUtilities.fromSheetDistance(
192
                        layout.getAtributes().m_area[0], layout.getAT())),
193
                    (layout.getRect().width -
194
                    FLayoutUtilities.fromSheetDistance(layout.getAtributes().m_area[2] +
195
                        layout.getAtributes().m_area[3], layout.getAT())),
196
                    (layout.getRect().height -
197
                    FLayoutUtilities.fromSheetDistance(layout.getAtributes().m_area[0] +
198
                        layout.getAtributes().m_area[1], layout.getAT())));
191
                        layout.getLayoutContext().getAtributes().m_area[0], layout.getLayoutControl().getAT())),
192
                    (layout.getLayoutControl().getRect().width -
193
                    FLayoutUtilities.fromSheetDistance(layout.getLayoutContext().getAtributes().m_area[2] +
194
                        layout.getLayoutContext().getAtributes().m_area[3], layout.getLayoutControl().getAT())),
195
                    (layout.getLayoutControl().getRect().height -
196
                    FLayoutUtilities.fromSheetDistance(layout.getLayoutContext().getAtributes().m_area[0] +
197
                        layout.getLayoutContext().getAtributes().m_area[1], layout.getLayoutControl().getAT())));
199 198
        } else {
200
            r.setRect(layout.getRect());
199
            r.setRect(layout.getLayoutControl().getRect());
201 200
        }
202 201

  
203 202
        g.setColor(Color.white);
204
        g.fill(layout.getRect());
203
        g.fill(layout.getLayoutControl().getRect());
205 204

  
206 205
        g.setColor(Color.darkGray);
207
        g.drawRect((int) layout.getRect().getMinX(),
208
            (int) layout.getRect().getMinY(),
209
            (int) layout.getRect().getWidth(),
210
            (int) layout.getRect().getHeight());
206
        g.drawRect((int) layout.getLayoutControl().getRect().getMinX(),
207
            (int) layout.getLayoutControl().getRect().getMinY(),
208
            (int) layout.getLayoutControl().getRect().getWidth(),
209
            (int) layout.getLayoutControl().getRect().getHeight());
211 210

  
212
        if (layout.getAtributes().isMargin()) {
211
        if (layout.getLayoutContext().getAtributes().isMargin()) {
213 212
            g.setColor(Color.black);
214 213

  
215 214
            g.drawRect((int) r.x, (int) r.y, (int) r.width, (int) r.height);
......
223 222
     */
224 223
    public void drawGrid(Graphics2D g) {
225 224
        int unidadesMin = 6;
226
        double unidadesX = layout.getAtributes().getUnitInPixelsX();
227
        double unidadesY = layout.getAtributes().getUnitInPixelsY();
225
        double unidadesX = layout.getLayoutContext().getAtributes().getUnitInPixelsX();
226
        double unidadesY = layout.getLayoutContext().getAtributes().getUnitInPixelsY();
228 227

  
229 228
        if ((unidadesX == 0) && (unidadesY == 0)) {
230 229
            return;
......
232 231

  
233 232
        Rectangle2D.Double r = new Rectangle2D.Double();
234 233

  
235
        if (layout.getAtributes().isMargin()) {
236
            r = new Rectangle2D.Double((layout.getRect().x +
234
        if (layout.getLayoutContext().getAtributes().isMargin()) {
235
            r = new Rectangle2D.Double((layout.getLayoutControl().getRect().x +
237 236
                    FLayoutUtilities.fromSheetDistance(
238
                        layout.getAtributes().m_area[2], layout.getAT())),
239
                    (layout.getRect().y +
237
                        layout.getLayoutContext().getAtributes().m_area[2], layout.getLayoutControl().getAT())),
238
                    (layout.getLayoutControl().getRect().y +
240 239
                    FLayoutUtilities.fromSheetDistance(
241
                        layout.getAtributes().m_area[0], layout.getAT())),
242
                    (layout.getRect().width -
243
                    FLayoutUtilities.fromSheetDistance(layout.getAtributes().m_area[2] +
244
                        layout.getAtributes().m_area[3], layout.getAT())),
245
                    (layout.getRect().height -
246
                    FLayoutUtilities.fromSheetDistance(layout.getAtributes().m_area[0] +
247
                        layout.getAtributes().m_area[1], layout.getAT())));
240
                        layout.getLayoutContext().getAtributes().m_area[0], layout.getLayoutControl().getAT())),
241
                    (layout.getLayoutControl().getRect().width -
242
                    FLayoutUtilities.fromSheetDistance(layout.getLayoutContext().getAtributes().m_area[2] +
243
                        layout.getLayoutContext().getAtributes().m_area[3], layout.getLayoutControl().getAT())),
244
                    (layout.getLayoutControl().getRect().height -
245
                    FLayoutUtilities.fromSheetDistance(layout.getLayoutContext().getAtributes().m_area[0] +
246
                        layout.getLayoutContext().getAtributes().m_area[1], layout.getLayoutControl().getAT())));
248 247
        } else {
249
            r.setRect(layout.getRect());
248
            r.setRect(layout.getLayoutControl().getRect());
250 249
        }
251 250

  
252 251
        g.setColor(Color.darkGray);
253 252

  
254 253
        if (((unidadesX > unidadesMin) || (unidadesY > unidadesMin)) &&
255
                layout.getGridVisible()) {
254
                layout.getLayoutContext().isGridVisible()) {
256 255
            double ax = r.getMinX();
257 256
            double ay;
258 257

  
......
276 275
     * @param color Color de la regla.
277 276
     */
278 277
    public void drawRuler(Graphics2D g, Color color) {
279
        if (layout.getRuler()) {
278
        if (layout.getLayoutContext().getRuler()) {
280 279
            int ini = 10;
281 280
            int w = 30;
282 281
            int wi = 16;
283 282

  
284 283
            g.setColor(new Color(250, 255, 250, 180));
285
            g.fillRect(ini, w, wi, layout.getHeight() - w);
286
            g.fillRect(w, ini, layout.getWidth() - w, wi);
284
            g.fillRect(ini, w, wi, layout.getLayoutControl().getHeight() - w);
285
            g.fillRect(w, ini, layout.getLayoutControl().getWidth() - w, wi);
287 286

  
288 287
            g.setColor(new Color(100, 155, 150, 180));
289
            g.fillRect(w, ini, (int) layout.getRect().x - w, wi);
290
            g.fillRect((int) layout.getRect().getMaxX(), ini,
291
                layout.getWidth() - (int) layout.getRect().getMaxX(), wi);
288
            g.fillRect(w, ini, (int) layout.getLayoutControl().getRect().x - w, wi);
289
            g.fillRect((int) layout.getLayoutControl().getRect().getMaxX(), ini,
290
                layout.getLayoutControl().getWidth() - (int) layout.getLayoutControl().getRect().getMaxX(), wi);
292 291

  
293
            g.fillRect(ini, w, wi, (int) layout.getRect().y - w);
294
            g.fillRect(ini, (int) layout.getRect().getMaxY(), wi,
295
                layout.getHeight() - (int) layout.getRect().getMaxY());
292
            g.fillRect(ini, w, wi, (int) layout.getLayoutControl().getRect().y - w);
293
            g.fillRect(ini, (int) layout.getLayoutControl().getRect().getMaxY(), wi,
294
                layout.getLayoutControl().getHeight() - (int) layout.getLayoutControl().getRect().getMaxY());
296 295

  
297
            if (layout.getAtributes().isMargin()) {
296
            if (layout.getLayoutContext().getAtributes().isMargin()) {
298 297
                g.setColor(new Color(50, 55, 50, 180));
299
                g.fillRect((int) layout.getRect().x, ini,
298
                g.fillRect((int) layout.getLayoutControl().getRect().x, ini,
300 299
                    (int) FLayoutUtilities.fromSheetDistance(
301
                        layout.getAtributes().m_area[2], layout.getAT()), wi);
302
                g.fillRect((int) layout.getRect().getMaxX() -
300
                        layout.getLayoutContext().getAtributes().m_area[2], layout.getLayoutControl().getAT()), wi);
301
                g.fillRect((int) layout.getLayoutControl().getRect().getMaxX() -
303 302
                    (int) FLayoutUtilities.fromSheetDistance(
304
                        layout.getAtributes().m_area[3], layout.getAT()), ini,
303
                        layout.getLayoutContext().getAtributes().m_area[3], layout.getLayoutControl().getAT()), ini,
305 304
                    (int) FLayoutUtilities.fromSheetDistance(
306
                        layout.getAtributes().m_area[3], layout.getAT()), wi);
305
                        layout.getLayoutContext().getAtributes().m_area[3], layout.getLayoutControl().getAT()), wi);
307 306

  
308
                g.fillRect(ini, (int) layout.getRect().y, wi,
307
                g.fillRect(ini, (int) layout.getLayoutControl().getRect().y, wi,
309 308
                    (int) FLayoutUtilities.fromSheetDistance(
310
                        layout.getAtributes().m_area[0], layout.getAT()));
309
                        layout.getLayoutContext().getAtributes().m_area[0], layout.getLayoutControl().getAT()));
311 310
                g.fillRect(ini,
312
                    (int) layout.getRect().getMaxY() -
311
                    (int) layout.getLayoutControl().getRect().getMaxY() -
313 312
                    (int) FLayoutUtilities.fromSheetDistance(
314
                        layout.getAtributes().m_area[1], layout.getAT()), wi,
313
                        layout.getLayoutContext().getAtributes().m_area[1], layout.getLayoutControl().getAT()), wi,
315 314
                    (int) FLayoutUtilities.fromSheetDistance(
316
                        layout.getAtributes().m_area[1], layout.getAT()));
315
                        layout.getLayoutContext().getAtributes().m_area[1], layout.getLayoutControl().getAT()));
317 316
            }
318 317

  
319 318
            g.setColor(color);
320
            g.drawLine(w, wi + ini, layout.getWidth(), wi + ini);
321
            g.drawLine(w, ini, layout.getWidth(), ini);
322
            g.drawLine(ini, w, ini, layout.getHeight());
323
            g.drawLine(wi + ini, w, wi + ini, layout.getHeight());
319
            g.drawLine(w, wi + ini, layout.getLayoutControl().getWidth(), wi + ini);
320
            g.drawLine(w, ini, layout.getLayoutControl().getWidth(), ini);
321
            g.drawLine(ini, w, ini, layout.getLayoutControl().getHeight());
322
            g.drawLine(wi + ini, w, wi + ini, layout.getLayoutControl().getHeight());
324 323

  
325
            drawLineY(g, 5, 12, 22, layout.getRect().y, 0);
326
            drawLineX(g, 5, 12, 22, layout.getRect().x, 0);
324
            drawLineY(g, 5, 12, 22, layout.getLayoutControl().getRect().y, 0);
325
            drawLineX(g, 5, 12, 22, layout.getLayoutControl().getRect().x, 0);
327 326

  
328
            if (FLayoutUtilities.fromSheetDistance(1, layout.getAT()) > 15) {
329
                drawLineY(g, 1, 12, 22, layout.getRect().y, 0);
330
                drawLineX(g, 1, 12, 22, layout.getRect().x, 0);
327
            if (FLayoutUtilities.fromSheetDistance(1, layout.getLayoutControl().getAT()) > 15) {
328
                drawLineY(g, 1, 12, 22, layout.getLayoutControl().getRect().y, 0);
329
                drawLineX(g, 1, 12, 22, layout.getLayoutControl().getRect().x, 0);
331 330

  
332
                if (FLayoutUtilities.fromSheetDistance(1, layout.getAT()) > 25) {
333
                    drawLineY(g, 1, 18, 22, layout.getRect().y, 0.5);
334
                    drawLineY(g, 0.1, 21, 22, layout.getRect().y, 0);
335
                    drawLineX(g, 1, 18, 22, layout.getRect().x, 0.5);
336
                    drawLineX(g, 0.1, 21, 22, layout.getRect().x, 0);
331
                if (FLayoutUtilities.fromSheetDistance(1, layout.getLayoutControl().getAT()) > 25) {
332
                    drawLineY(g, 1, 18, 22, layout.getLayoutControl().getRect().y, 0.5);
333
                    drawLineY(g, 0.1, 21, 22, layout.getLayoutControl().getRect().y, 0);
334
                    drawLineX(g, 1, 18, 22, layout.getLayoutControl().getRect().x, 0.5);
335
                    drawLineX(g, 0.1, 21, 22, layout.getLayoutControl().getRect().x, 0);
337 336
                }
338 337
            }
339 338
        }
......
352 351
     */
353 352
    private void drawLineY(Graphics2D g, double dist, int init, int end,
354 353
        double y, double desp) {
355
        double distY = FLayoutUtilities.fromSheetDistance(dist, layout.getAT());
354
        double distY = FLayoutUtilities.fromSheetDistance(dist, layout.getLayoutControl().getAT());
356 355
        double rota = Math.toRadians(90);
357 356

  
358 357
        if (distY > 4) {
359 358
            double despY = FLayoutUtilities.fromSheetDistance(desp,
360
                    layout.getAT());
359
                    layout.getLayoutControl().getAT());
361 360

  
362 361
            double posUnitY = y + despY;
363 362
            double posUnitYNeg = posUnitY;
364 363
            int num = 0;
365 364
            double iniY = 40;
366 365
            Point2D.Double pfin = FLayoutUtilities.fromSheetPoint(new Point2D.Double(
367
                        layout.getWidth(), layout.getHeight()), layout.getAT());
366
                        layout.getLayoutControl().getWidth(), layout.getLayoutControl().getHeight()), layout.getLayoutControl().getAT());
368 367

  
369 368
            while (posUnitY < (pfin.y - 5)) {
370 369
                posUnitYNeg -= distY;
......
421 420
     */
422 421
    private void drawLineX(Graphics2D g, double dist, int init, int end,
423 422
        double x, double desp) {
424
        double distX = FLayoutUtilities.fromSheetDistance(dist, layout.getAT());
423
        double distX = FLayoutUtilities.fromSheetDistance(dist, layout.getLayoutControl().getAT());
425 424

  
426 425
        if (distX > 4) {
427 426
            double despX = FLayoutUtilities.fromSheetDistance(desp,
428
                    layout.getAT());
427
                    layout.getLayoutControl().getAT());
429 428
            double posUnitX = x + despX;
430 429
            double posUnitXNeg = posUnitX;
431 430
            int num = 0;
432 431
            double iniX = 40;
433 432
            Point2D.Double pfin = FLayoutUtilities.fromSheetPoint(new Point2D.Double(
434
                        layout.getWidth(), layout.getHeight()), layout.getAT());
433
                        layout.getLayoutControl().getWidth(), layout.getLayoutControl().getHeight()), layout.getLayoutControl().getAT());
435 434

  
436 435
            while (posUnitX < (pfin.x - 5)) {
437 436
                posUnitXNeg -= distX;
......
479 478
     */
480 479
    public void drawHandlers(Graphics2D g, Color color) {
481 480
        g.setColor(color);
482
        IFFrame[] fframes=layout.getFFrames();
481
        IFFrame[] fframes=layout.getLayoutContext().getFFrames();
483 482
        for (int i = 0; i < fframes.length; i++) {
484 483
            IFFrame fframe = fframes[i];
485 484

  
......
635 634
                // see e702 Determining When a Print Job Has Finished
636 635
                //PrintJobWatcher pjDone = new PrintJobWatcher(job);
637 636
//              Actualizar attributes
638
                 PrintRequestAttributeSet att = layout.getAtributes()
637
                 PrintRequestAttributeSet att = layout.getLayoutContext().getAtributes()
639 638
                                                      .toPrintAttributes();
640 639
                // Print it
641 640
                job.print(doc, att);
......
671 670
            e.printStackTrace();
672 671
        }
673 672
        */
674
         layout.fullRect();
673
         layout.getLayoutControl().fullRect();
675 674
    }
676 675

  
677 676

  
......
686 685
        double h = 0;
687 686
        Document document = new Document();
688 687

  
689
        if (layout.getAtributes().isLandSpace()) {
690
            w = ((layout.getAtributes().m_sizePaper.getAlto() * Attributes.DPISCREEN) / Attributes.PULGADA);
691
            h = ((layout.getAtributes().m_sizePaper.getAncho() * Attributes.DPISCREEN) / Attributes.PULGADA);
688
        if (layout.getLayoutContext().getAtributes().isLandSpace()) {
689
            w = ((layout.getLayoutContext().getAtributes().m_sizePaper.getAlto() * Attributes.DPISCREEN) / Attributes.PULGADA);
690
            h = ((layout.getLayoutContext().getAtributes().m_sizePaper.getAncho() * Attributes.DPISCREEN) / Attributes.PULGADA);
692 691
        } else {
693
            w = ((layout.getAtributes().m_sizePaper.getAncho() * Attributes.DPISCREEN) / Attributes.PULGADA);
694
            h = ((layout.getAtributes().m_sizePaper.getAlto() * Attributes.DPISCREEN) / Attributes.PULGADA);
692
            w = ((layout.getLayoutContext().getAtributes().m_sizePaper.getAncho() * Attributes.DPISCREEN) / Attributes.PULGADA);
693
            h = ((layout.getLayoutContext().getAtributes().m_sizePaper.getAlto() * Attributes.DPISCREEN) / Attributes.PULGADA);
695 694
        }
696 695

  
697 696
        document.setPageSize(new com.lowagie.text.Rectangle((float) w, (float) h));
......
708 707
            Graphics2D g2 = cb.createGraphicsShapes((float) w, (float) h);
709 708

  
710 709
            try {
711
                if (layout.getAtributes().isLandSpace()) {
710
                if (layout.getLayoutContext().getAtributes().isLandSpace()) {
712 711
                    g2.rotate(Math.toRadians(-90), 0 + (w / (h / w)),
713 712
                        0 + (h / 2));
714 713
                    print.print(g2, new PageFormat(), 0);
......
732 731

  
733 732
        document.close();
734 733

  
735
        layout.fullRect();
734
        layout.getLayoutControl().fullRect();
736 735
      }
737 736
}

Also available in: Unified diff