Statistics
| Revision:

svn-document-layout / trunk / org.gvsig.app.document.layout2.app / org.gvsig.app.document.layout2.app.mainplugin / src / main / java / org / gvsig / app / project / documents / layout / DefaultLayoutControl.java @ 228

History | View | Annotate | Download (20.6 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.project.documents.layout;
23

    
24
import java.awt.Color;
25
import java.awt.Cursor;
26
import java.awt.Graphics;
27
import java.awt.Graphics2D;
28
import java.awt.Image;
29
import java.awt.Point;
30
import java.awt.Rectangle;
31
import java.awt.Toolkit;
32
import java.awt.geom.AffineTransform;
33
import java.awt.geom.Rectangle2D;
34
import java.awt.image.BufferedImage;
35
import java.awt.image.MemoryImageSource;
36
import java.util.HashMap;
37

    
38
import javax.swing.JComponent;
39

    
40
import org.gvsig.andami.PluginsLocator;
41
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
42
import org.gvsig.app.project.documents.layout.fframes.IFFrameEditableVertex;
43
import org.gvsig.app.project.documents.layout.fframes.IFFrameUseFMap;
44
import org.gvsig.app.project.documents.layout.geometryadapters.GeometryAdapter;
45
import org.gvsig.app.project.documents.layout.geometryadapters.PolyLineAdapter;
46
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
47
import org.gvsig.app.project.documents.layout.tools.LayoutAddBoxListenerImpl;
48
import org.gvsig.app.project.documents.layout.tools.LayoutAddCircleListenerImpl;
49
import org.gvsig.app.project.documents.layout.tools.LayoutAddLegendListenerImpl;
50
import org.gvsig.app.project.documents.layout.tools.LayoutAddLineListenerImpl;
51
import org.gvsig.app.project.documents.layout.tools.LayoutAddNorthListenerImpl;
52
import org.gvsig.app.project.documents.layout.tools.LayoutAddOverViewListenerImpl;
53
import org.gvsig.app.project.documents.layout.tools.LayoutAddPictureListenerImpl;
54
import org.gvsig.app.project.documents.layout.tools.LayoutAddPointListenerImpl;
55
import org.gvsig.app.project.documents.layout.tools.LayoutAddPolygonListenerImpl;
56
import org.gvsig.app.project.documents.layout.tools.LayoutAddPolylineListenerImpl;
57
import org.gvsig.app.project.documents.layout.tools.LayoutAddRectangleListenerImpl;
58
import org.gvsig.app.project.documents.layout.tools.LayoutAddScaleListenerImpl;
59
import org.gvsig.app.project.documents.layout.tools.LayoutAddTextListenerImpl;
60
import org.gvsig.app.project.documents.layout.tools.LayoutAddViewListenerImpl;
61
import org.gvsig.app.project.documents.layout.tools.LayoutEditGraphicsListenerImpl;
62
import org.gvsig.app.project.documents.layout.tools.LayoutPanListenerImpl;
63
import org.gvsig.app.project.documents.layout.tools.LayoutSelectListenerImpl;
64
import org.gvsig.app.project.documents.layout.tools.LayoutViewPanListenerImpl;
65
import org.gvsig.app.project.documents.layout.tools.LayoutViewZoomInListenerImpl;
66
import org.gvsig.app.project.documents.layout.tools.LayoutViewZoomOutListenerImpl;
67
import org.gvsig.app.project.documents.layout.tools.LayoutZoomInListenerImpl;
68
import org.gvsig.app.project.documents.layout.tools.LayoutZoomOutListenerImpl;
69
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutBehavior;
70
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutEditBehavior;
71
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutMoveBehavior;
72
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutPointBehavior;
73
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutRectangleBehavior;
74
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutSelectBehavior;
75
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutViewMoveBehavior;
76
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutViewZoomBehavior;
77
import org.gvsig.app.project.documents.layout.tools.behavior.LayoutZoomBehavior;
78
import org.gvsig.app.project.documents.layout.tools.listener.ILayoutGraphicListener;
79
import org.gvsig.fmap.dal.exception.ReadException;
80
import org.gvsig.tools.observer.Observable;
81

    
82
/**
83
 * Control of Layout.
84
 * 
85
 * @author Vicente Caballero Navarro
86
 */
87
public class DefaultLayoutControl extends JComponent implements LayoutControl {
88
    private static final int DESACTUALIZADO = 4;
89
    private static final int ACTUALIZADO = 5;
90
    
91
    private static final long serialVersionUID = -8290006366669291510L;
92

    
93
    public static final String PERSISTENCE_DEFINITION_NAME = "LayoutControl";
94

    
95
    private int status = DESACTUALIZADO;
96
    private Rectangle2D rectVisible;
97
    private BufferedImage img = null;
98
    private BufferedImage imgRuler = null;
99
    private boolean initial = true;
100
    private LayoutContext layoutContext;
101
    private Point origin = new Point(50, 50);
102
    private Point rectOrigin = new Point(origin);
103
    private Rectangle2D.Double rect = new Rectangle2D.Double(rectOrigin.x,
104
        rectOrigin.y, 400, 300);
105
    private FLayoutDraw layoutDraw = null;
106
    private FLayoutFunctions layoutFunctions = null;
107
    private LayoutBehavior currentLayoutTool = null;
108
    private Image imageCursor = null;
109
    private HashMap namesLayoutTools = new HashMap();
110
    private Point m_FirstPoint = new Point(0, 0);
111
    private Point m_PointAnt = new Point(0, 0);
112
    private Point m_LastPoint = new Point(0, 0);
113
    private LayoutEvents layoutEvents;
114
    private Point position;
115
    private GeometryAdapter geometryAdapter = new PolyLineAdapter();
116

    
117
    // private String prevTool;
118
    private String currentTool;
119
    private boolean m_bCancelDrawing = false;
120
    private Rectangle reSel = null;
121
    private boolean isReSel = true;
122
    private FLayoutZooms layoutZooms;
123
        private LayoutPanel layoutPanel;
124

    
125
    private static Cursor transparentCursor = Toolkit.getDefaultToolkit()
126
        .createCustomCursor(
127
            Toolkit.getDefaultToolkit().createImage(
128
                new MemoryImageSource(16, 16, new int[16 * 16], 0, 16)),
129
            new Point(0, 0), "invisiblecursor");
130

    
131
    /**
132
     * Create a new object of LayoutControl.
133
     * 
134
     * @param layout
135
     */
136
    public DefaultLayoutControl() {  
137
               
138
    }
139
    
140
    public void initialize(LayoutPanel layoutPanel){
141
            setFocusable(true);
142
            this.layoutPanel = layoutPanel;
143
        layoutDraw = new FLayoutDraw(layoutPanel);
144
        layoutEvents = new LayoutEvents(layoutPanel);
145
        layoutZooms = new FLayoutZooms(layoutPanel);
146
        layoutFunctions = new FLayoutFunctions(layoutPanel);
147
        addComponentListener(layoutEvents);
148
        addMouseMotionListener(layoutEvents);
149
        addMouseListener(layoutEvents);
150

    
151
        LayoutPanListenerImpl lpl = new LayoutPanListenerImpl(layoutPanel);
152
        addLayoutTool("layoutpan", new LayoutMoveBehavior(lpl));
153

    
154
        LayoutZoomInListenerImpl lzil = new LayoutZoomInListenerImpl(layoutPanel);
155
        addLayoutTool("layoutzoomin", new LayoutZoomBehavior(lzil));
156

    
157
        LayoutZoomOutListenerImpl lzol = new LayoutZoomOutListenerImpl(layoutPanel);
158
        addLayoutTool("layoutzoomout", new LayoutZoomBehavior(lzol));
159

    
160
        LayoutAddViewListenerImpl lavl = new LayoutAddViewListenerImpl(layoutPanel);
161
        addLayoutTool("layoutaddview", new LayoutRectangleBehavior(lavl));
162

    
163
        LayoutAddOverViewListenerImpl laovl =
164
            new LayoutAddOverViewListenerImpl(layoutPanel);
165
        addLayoutTool("layoutaddoverview", new LayoutRectangleBehavior(laovl));
166

    
167
        LayoutAddPictureListenerImpl lapl =
168
            new LayoutAddPictureListenerImpl(layoutPanel);
169
        addLayoutTool("layoutaddpicture", new LayoutRectangleBehavior(lapl));
170

    
171
        LayoutAddNorthListenerImpl lanorthl =
172
            new LayoutAddNorthListenerImpl(layoutPanel);
173
        addLayoutTool("layoutaddnorth", new LayoutRectangleBehavior(lanorthl));
174

    
175
        LayoutAddScaleListenerImpl lasl =
176
            new LayoutAddScaleListenerImpl(layoutPanel);
177
        addLayoutTool("layoutaddscale", new LayoutRectangleBehavior(lasl));
178

    
179
        LayoutAddLegendListenerImpl lall =
180
            new LayoutAddLegendListenerImpl(layoutPanel);
181
        addLayoutTool("layoutaddlegend", new LayoutRectangleBehavior(lall));
182

    
183
        LayoutAddTextListenerImpl latl = new LayoutAddTextListenerImpl(layoutPanel);
184
        addLayoutTool("layoutaddtext", new LayoutRectangleBehavior(latl));
185

    
186
        LayoutAddBoxListenerImpl labl = new LayoutAddBoxListenerImpl(layoutPanel);
187
        addLayoutTool("layoutaddbox", new LayoutRectangleBehavior(labl));
188

    
189
        LayoutAddPointListenerImpl lapointl =
190
            new LayoutAddPointListenerImpl(layoutPanel);
191
        addLayoutTool("layoutaddpoint", new LayoutPointBehavior(lapointl));
192

    
193
        LayoutAddLineListenerImpl lalinel =
194
            new LayoutAddLineListenerImpl(layoutPanel);
195
        addLayoutTool("layoutaddline", new LayoutPointBehavior(lalinel));
196

    
197
        LayoutAddPolygonListenerImpl lapolygonl =
198
            new LayoutAddPolygonListenerImpl(layoutPanel);
199
        addLayoutTool("layoutaddpolygon", new LayoutPointBehavior(lapolygonl));
200

    
201
        LayoutAddPolylineListenerImpl lapolylinel =
202
            new LayoutAddPolylineListenerImpl(layoutPanel);
203
        addLayoutTool("layoutaddpolyline", new LayoutPointBehavior(lapolylinel));
204

    
205
        LayoutAddCircleListenerImpl lacirclel =
206
            new LayoutAddCircleListenerImpl(layoutPanel);
207
        addLayoutTool("layoutaddcircle", new LayoutPointBehavior(lacirclel));
208

    
209
        LayoutAddRectangleListenerImpl larectanglel =
210
            new LayoutAddRectangleListenerImpl(layoutPanel);
211
        addLayoutTool("layoutaddrectangle", new LayoutPointBehavior(
212
            larectanglel));
213

    
214
        LayoutViewPanListenerImpl lvpl = new LayoutViewPanListenerImpl(layoutPanel);
215
        addLayoutTool("layoutviewpan", new LayoutViewMoveBehavior(lvpl));
216

    
217
        LayoutViewZoomInListenerImpl lvzil =
218
            new LayoutViewZoomInListenerImpl(layoutPanel);
219
        addLayoutTool("layoutviewzoomin", new LayoutViewZoomBehavior(lvzil));
220

    
221
        LayoutViewZoomOutListenerImpl lvzol =
222
            new LayoutViewZoomOutListenerImpl(layoutPanel);
223
        addLayoutTool("layoutviewzoomout", new LayoutViewZoomBehavior(lvzol));
224

    
225
        LayoutSelectListenerImpl lselectl =
226
            new LayoutSelectListenerImpl(layoutPanel);
227
        addLayoutTool("layoutselect", new LayoutSelectBehavior(lselectl));
228

    
229
        LayoutEditGraphicsListenerImpl leditl =
230
            new LayoutEditGraphicsListenerImpl(layoutPanel);
231
        addLayoutTool("layoutedit", new LayoutEditBehavior(leditl));
232
    }
233

    
234
    public String getCurrentTool() {
235
        return currentTool;
236
    }
237

    
238
    public void addLayoutTool(String name, LayoutBehavior tool) {
239
        namesLayoutTools.put(name, tool);
240
        tool.setLayoutControl(this);
241
    }
242

    
243
    public void setLayoutContext(LayoutContext lc) {
244
        layoutContext = lc;
245
        layoutContext.addObserver(this);
246
        fullRect();
247
    }
248

    
249
    /**
250
     * paintComponent of Layout.
251
     * 
252
     * @param g
253
     *            Graphics of Layout.
254
     */
255
    protected void paintComponent(Graphics g) {
256
        clipVisibleRect((Graphics2D) g);
257

    
258
        Rectangle rClip = g.getClipBounds();
259

    
260
        if (rClip == null) {
261
            System.err.println("clip = null");
262
        }
263

    
264
        switch (status) {
265
        case DESACTUALIZADO:
266
            if (getWidth() == 0) {
267
                return;
268
            }
269

    
270
            img =
271
                new BufferedImage(getWidth(), getHeight(),
272
                    BufferedImage.TYPE_INT_ARGB);
273
            imgRuler =
274
                new BufferedImage(getWidth(), getHeight(),
275
                    BufferedImage.TYPE_INT_ARGB);
276

    
277
            Graphics gimag = img.getGraphics();
278
            Graphics gimgRuler = imgRuler.getGraphics();
279
            clipVisibleRect((Graphics2D) gimag);
280

    
281
            try {
282
                layoutDraw.drawLayout((Graphics2D) gimag, img);
283
            } catch (ReadException e) {
284
                e.printStackTrace();
285
            }
286

    
287
            g.setClip(rClip);
288
            layoutDraw.drawRectangle((Graphics2D) g);
289

    
290
            g.drawImage(img, 0, 0, this);
291
            g.setClip(rClip);
292

    
293
            layoutDraw.drawGrid((Graphics2D) gimgRuler);
294
            layoutDraw.drawRuler((Graphics2D) gimgRuler, Color.black);
295
            setStatus(ACTUALIZADO);
296
            repaint();
297

    
298
            break;
299

    
300
        case ACTUALIZADO:
301
            layoutDraw.drawRectangle((Graphics2D) g);
302

    
303
            if (currentLayoutTool != null) {
304
                currentLayoutTool.paintComponent(g);
305
            } else {
306
                g.drawImage(img, 0, 0, this);
307

    
308
                layoutDraw.drawHandlers((Graphics2D) g, Color.black);
309
            }
310

    
311
            g.setClip(rClip);
312
            drawCursor(g);
313
        }
314
    }
315

    
316
    private void setStatus(int s) {
317
        status = s;
318
    }
319

    
320
    /**
321
     * Clip on visible rectangle.
322
     * 
323
     * @param g2d
324
     *            Graphics.
325
     */
326
    private void clipVisibleRect(Graphics2D g2d) {
327
        rectVisible = this.getVisibleRect();
328
        g2d.clipRect((int) rectVisible.getMinX(), (int) rectVisible.getMinY(),
329
            (int) rectVisible.getWidth(), (int) rectVisible.getHeight());
330
    }
331

    
332
    public BufferedImage getImgRuler() {
333
        return imgRuler;
334
    }
335

    
336
    public void fullRect() {
337
        rect.setRect(origin.x, origin.y, getWidth() - (origin.x * 2),
338
            getHeight() - (origin.x * 2));
339

    
340
        if (layoutContext.getAttributes().isLandscape()) {
341
            rect =
342
                layoutContext.getAttributes().getRectangleLandscape(rect,
343
                    getWidth(), getHeight());
344
        } else {
345
            rect =
346
                layoutContext.getAttributes().getRectanglePortrait(rect,
347
                    getWidth(), getHeight());
348
        }
349

    
350
        refresh();
351
    }
352

    
353
    public Rectangle2D.Double getRect() {
354
        return rect;
355
    }
356

    
357
    public void setRect(Rectangle2D r) {
358
        rect.setRect(r);
359
    }
360

    
361
    public BufferedImage getImage() {
362
        return img;
363
    }
364

    
365
    /**
366
     * Draw the cursor on the Graphics.
367
     * 
368
     * @param g
369
     *            Graphics.
370
     */
371
    private void drawCursor(Graphics g) {
372
        if ((imageCursor != null) && (position != null)) {
373
            Point pAdjusted = position;
374
            g.drawImage(imageCursor, (int) pAdjusted.getX() - 16,
375
                (int) pAdjusted.getY() - 16, this);
376
        }
377
    }
378

    
379
    public void setMapCursor(Image image) {
380
        imageCursor = image;
381
    }
382

    
383
    public void setTool(String toolName) {
384
        LayoutBehavior layoutTool =
385
            (LayoutBehavior) namesLayoutTools.get(toolName);
386
        currentLayoutTool = layoutTool;
387
        currentLayoutTool.setLayoutControl(this);
388
        currentTool = toolName;
389
        this.setMapCursor(layoutTool.getImageCursor());
390

    
391
        if (getCurrentLayoutTool().getListener() instanceof ILayoutGraphicListener) {
392
            geometryAdapter =
393
                ((ILayoutGraphicListener) getCurrentLayoutTool().getListener())
394
                    .createGeometryAdapter();
395
        }
396

    
397
        if (getCurrentTool().equals("layoutedit")) {
398
            startEdit();
399
        } else {
400
            stopEdit();
401
        }
402
    }
403

    
404
        public void setDefaultTool() {
405
        PluginsLocator.getMainFrame().setSelectedTool("selection-select-by-rectangle-layout");
406
        setTool("layoutselect");
407
        }
408

    
409
    public void startEdit() {
410
        IFFrame[] fframes = layoutContext.getFFrames();
411

    
412
        for (int i = 0; i < fframes.length; i++) {
413
            IFFrame frame = fframes[i];
414

    
415
            if (frame instanceof IFFrameEditableVertex) {
416
                if (frame.getSelected() != IFFrame.NOSELECT) {
417
                    ((IFFrameEditableVertex) frame).startEditing();
418
                } else {
419
                    ((IFFrameEditableVertex) frame).stopEditing();
420
                }
421
            }
422
        }
423

    
424
        refresh();
425
    }
426

    
427
    public void stopEdit() {
428
        boolean refresh = false;
429
        IFFrame[] fframes = layoutContext.getFFrames();
430

    
431
        for (int i = 0; i < fframes.length; i++) {
432
            IFFrame frame = fframes[i];
433

    
434
            if (frame instanceof IFFrameEditableVertex) {
435
                if (((IFFrameEditableVertex) frame).isEditing()) {
436
                    ((IFFrameEditableVertex) fframes[i]).stopEditing();
437
                    refresh = true;
438
                }
439
            }
440
        }
441

    
442
        if (refresh) {
443
            refresh();
444
        }
445
    }
446

    
447
    public Point getRectOrigin() {
448
        return rectOrigin;
449
    }
450

    
451
    public FLayoutDraw getLayoutDraw() {
452
        return layoutDraw;
453
    }
454

    
455
    public LayoutBehavior getCurrentLayoutTool() {
456
        return currentLayoutTool;
457
    }
458

    
459
    public Point getFirstPoint() {
460
        return m_FirstPoint;
461
    }
462

    
463
    public Point getPointAnt() {
464
        return m_PointAnt;
465
    }
466

    
467
    public Point getLastPoint() {
468
        return m_LastPoint;
469
    }
470

    
471
    public void setFirstPoint() {
472
        m_FirstPoint = position;
473
    }
474

    
475
    public void setPointAnt() {
476
        m_PointAnt = position;
477
    }
478

    
479
    public void setLastPoint() {
480
        m_LastPoint = position;
481
    }
482

    
483
    public void setPosition(Point point2) {
484
        if (layoutContext.isAdjustingToGrid()
485
            && getCurrentLayoutTool().isAdjustable()) {
486
            position =
487
                FLayoutUtilities.getPointGrid(point2, layoutContext
488
                    .getAttributes().getHGridGapCm(), layoutContext
489
                    .getAttributes().getVGridGapCm(), layoutContext.getAT());
490
        } else {
491
            position = point2;
492
        }
493
    }
494

    
495
    public Point getPosition() {
496
        return position;
497
    }
498

    
499
    public AffineTransform getAT() {
500
        return layoutContext.getAT();
501
    }
502

    
503
    public GeometryAdapter getGeometryAdapter() {
504
        return geometryAdapter;
505
    }
506

    
507
    public void delLastPoint() {
508
        getGeometryAdapter().delLastPoint();
509
    }
510

    
511
    public int addGeometryAdapterPoint() {
512
        return getGeometryAdapter().addPoint(
513
            FLayoutUtilities.toSheetPoint(getPosition(), getAT()));
514
    }
515

    
516
    public void setGeometryAdapterPoinPosition() {
517
        getGeometryAdapter().pointPosition(
518
            FLayoutUtilities.toSheetPoint(getPosition(), getAT()));
519
    }
520

    
521
    public void clearMouseImage() {
522
        setCursor(transparentCursor);
523
    }
524

    
525
    public void refresh() {
526
        setStatus(DESACTUALIZADO);
527
        invalidate();
528
        repaint();
529
    }
530

    
531
    public synchronized boolean isDrawingCancelled() {
532
        return m_bCancelDrawing;
533
    }
534

    
535
    public synchronized void setCancelDrawing(boolean b) {
536
        m_bCancelDrawing = b;
537

    
538
        for (int i = 0; i < layoutContext.getFFrames().length; i++) {
539
            IFFrame fframe = layoutContext.getFFrame(i);
540

    
541
            if (fframe instanceof IFFrameUseFMap
542
                && (((IFFrameUseFMap) fframe).getMapContext() != null)) {
543
                // //TODO((FFrameView)
544
                // getFFrames().get(i)).getFMap().setCancelDrawing(b);
545
            }
546
        }
547
    }
548

    
549
    public Rectangle getReSel() {
550
        return reSel;
551
    }
552

    
553
    public boolean isReSel() {
554
        return isReSel;
555
    }
556

    
557
    public void setIsReSel(boolean b) {
558
        isReSel = b;
559
    }
560

    
561
    public void viewFull() throws ReadException {
562
        IFFrame[] fframes = layoutContext.getSelectedFFrames();
563

    
564
        for (int i = 0; i < fframes.length; i++) {
565
            if (fframes[i] instanceof IFFrameUseFMap) {
566
                IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
567

    
568
                if (fframe.getMapContext() != null) {
569
                    fframe.fullExtent();
570
                }
571

    
572
                fframe.refresh();
573
            }
574
        }
575

    
576
        refresh();
577
    }
578

    
579
    public FLayoutZooms getLayoutZooms() {
580
        return layoutZooms;
581
    }
582

    
583
    public FLayoutFunctions getLayoutFunctions() {
584
        return layoutFunctions;
585
    }
586

    
587
    public LayoutContext getLayoutContext() {
588
        return layoutContext;
589
    }
590

    
591
    public void setGeometryAdapter(GeometryAdapter adapter) {
592
        geometryAdapter = adapter;
593
    }
594

    
595
    public JComponent getComponent() {
596
        return this;
597
    }
598

    
599
    public void update(Observable observable, Object notification) {
600
       if ((notification != null) && (notification instanceof LayoutNotification)){
601
               LayoutNotification layoutNotification = (LayoutNotification)notification;
602
           if (LayoutNotification.LAYOUT_VALIDATED.equals(layoutNotification.getType())){
603
               status = ACTUALIZADO;
604
           }else if (LayoutNotification.LAYOUT_INVALIDATED.equals(layoutNotification.getType())){
605
               status = DESACTUALIZADO;
606
           }else if (LayoutNotification.LAYOUT_REFRESH.equals(layoutNotification.getType())){
607
               refresh();
608
           }
609
       }
610
    }
611
}