Revision 9282 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameOverView.java

View differences:

FFrameOverView.java
1 1
package com.iver.cit.gvsig.gui.layout.fframes;
2 2

  
3
import java.awt.Color;
4
import java.awt.Dimension;
5
import java.awt.Graphics2D;
6
import java.awt.geom.AffineTransform;
7
import java.awt.geom.Line2D;
8
import java.awt.geom.Rectangle2D;
9
import java.awt.image.BufferedImage;
10

  
3 11
import com.iver.andami.PluginServices;
4 12
import com.iver.andami.messages.NotificationManager;
5

  
6 13
import com.iver.cit.gvsig.fmap.DriverException;
7 14
import com.iver.cit.gvsig.fmap.MapContext;
8 15
import com.iver.cit.gvsig.fmap.ViewPort;
9 16
import com.iver.cit.gvsig.fmap.layers.XMLException;
17
import com.iver.cit.gvsig.gui.layout.Layout;
18
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
19
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrameViewDependence;
10 20
import com.iver.cit.gvsig.project.documents.view.ProjectView;
11 21

  
12
import java.awt.Color;
13
import java.awt.Dimension;
14
import java.awt.Graphics2D;
15
import java.awt.geom.AffineTransform;
16
import java.awt.geom.Line2D;
17
import java.awt.geom.Point2D;
18
import java.awt.geom.Rectangle2D;
19
import java.awt.image.BufferedImage;
20 22

  
21

  
22 23
/**
23 24
 * FFrame para introducir el localizador de una vista en el Layout.
24 25
 *
......
41 42
    public void draw(Graphics2D g, AffineTransform at, Rectangle2D rv,
42 43
        BufferedImage imgBase) throws DriverException {
43 44
        super.draw(g, at, rv, imgBase);
44

  
45
        refresh();
45 46
        Rectangle2D r = getBoundingBox(at);
46

  
47
        if ((assoc_map != null) &&
47
        try {
48
			getMapContext().getViewPort().setExtent(getMapContext().getFullExtent());
49
		} catch (DriverException e) {
50
			e.printStackTrace();
51
		}
52
		if ((assoc_map != null) &&
48 53
                (assoc_map.getViewPort().getExtent() != null) &&
49 54
                (getMapContext().getViewPort().getExtent() != null)) {
50 55
            ViewPort vp = getMapContext().getViewPort();
51
            Rectangle2D extentView = vp.getAdjustedExtent();
52 56
            ViewPort vpOrig = assoc_map.getViewPort();
53 57

  
54 58
            if (extent == null) {
55 59
                extent = vpOrig.getAdjustedExtent();
56 60
            }
61
            vp.refreshExtent();
62
            Rectangle2D extentPixels=vp.fromMapRectangle(extent);
63

  
64
            extentPixels.setFrame(extentPixels.getX(),extentPixels.getY()-extentPixels.getHeight(),extentPixels.getWidth(),extentPixels.getHeight());
57 65
            Rectangle2D clip=g.getClipBounds();
58 66
            g.setClip((int)r.getX(),(int)r.getY(),(int)r.getWidth(),(int)r.getHeight());
59

  
60
            AffineTransform affineTransform = vp.getAffineTransform();
61
            Rectangle2D extentBounding=vp.toMapRectangle(r);
62
            //Point2D p = vp.toMapPoint((int) r.getX(), (int) r.getY());
63
            g.setTransform(affineTransform);
64 67
            g.setColor(Color.red);
65
            //Rectangle2D.intersect(extent,extentBounding,extent);
66
            g.draw(extent);
68
            g.draw(extentPixels);
69
            System.err.println("extentPixels = "+extentPixels.getX()+", "+extentPixels.getY()+", "+extentPixels.getWidth()+", "+extentPixels.getHeight());
67 70
            g.setColor(new Color(100, 100, 100, 100));
68
            g.fill(extent);
69

  
71
            g.fill(extentPixels);
70 72
            // dibujamos las l?neas vertical y horizontal
71
            Point2D pRightUp = vp.toMapPoint((int) (r.getWidth() + r.getX()), 0);
73
            double pRightUp = (int) (r.getWidth() + r.getX());
72 74

  
73
            Line2D.Double linVert = new Line2D.Double(extent.getCenterX(),
74
                    extentView.getMinY(), extent.getCenterX(), extentBounding.getY());
75
            Line2D.Double linHoriz = new Line2D.Double(extentBounding.getX(),
76
                    extent.getCenterY(), pRightUp.getX(), extent.getCenterY());
75
            Line2D.Double linVert = new Line2D.Double(extentPixels.getCenterX(),
76
                    r.getY(), extentPixels.getCenterX(), r.getMaxY());
77
            Line2D.Double linHoriz = new Line2D.Double(r.getX(),
78
                    extentPixels.getCenterY(), pRightUp, extentPixels.getCenterY());
77 79

  
78 80
            g.setColor(Color.darkGray);
79 81
            g.draw(linVert);
80 82
            g.draw(linHoriz);
81
            g.setTransform(new AffineTransform());
82 83
            g.setClip((int)clip.getX(),(int)clip.getY(),(int)clip.getWidth(),(int)clip.getHeight());
83

  
84

  
85 84
            extent = null;
85
            System.err.println("Dibujando FFrameOverView ...");
86 86
        }
87

  
87 88
    }
89
    /**
90
     * DOCUMENT ME!
91
     *
92
     * @param g DOCUMENT ME!
93
     * @param at DOCUMENT ME!
94
     * @param rv DOCUMENT ME!
95
     * @param imgBase DOCUMENT ME!
96
     *
97
     * @throws DriverException DOCUMENT ME!
98
     */
99
    public void print(Graphics2D g, AffineTransform at)
100
    throws DriverException {
101
    	draw(g, at, null, null);
102
//    	Rectangle2D rect=getBoundingBox(at);
103
//    	Point2D mp1 = FLayoutFunctions.toMapPoint(new Point2D.Double(rect.getX(),rect.getY()), getATMap());
104
//		Point2D mp2 = FLayoutFunctions.toMapPoint(new Point2D.Double(rect.getMaxX(),rect.getMaxY()), getATMap());
88 105

  
106
//    	 ViewPort vpOrig = assoc_map.getViewPort();
107
//
108
//         if (extent == null) {
109
//             extent = vpOrig.getAdjustedExtent();
110
//         }
111
//         g.setColor(Color.blue);
112
//         g.draw(extent);
113
//        Rectangle2D r = getBoundingBox(at);
114
//
115
//        if ((assoc_map != null) &&
116
//                (assoc_map.getViewPort().getExtent() != null) &&
117
//                (getMapContext().getViewPort().getExtent() != null)) {
118
//            ViewPort vp = getMapContext().getViewPort();
119
//            Rectangle2D extentView = vp.getAdjustedExtent();
120
//            ViewPort vpOrig = assoc_map.getViewPort();
121
//
122
//            if (extent == null) {
123
//                extent = vpOrig.getAdjustedExtent();
124
//            }
125
//            Rectangle2D clip=g.getClipBounds();
126
//            g.setClip((int)r.getX(),(int)r.getY(),(int)r.getWidth(),(int)r.getHeight());
127
//
128
//            AffineTransform affineTransform = vp.getAffineTransform();
129
//            Rectangle2D extentBounding=vp.toMapRectangle(r);
130
//            //Point2D p = vp.toMapPoint((int) r.getX(), (int) r.getY());
131
//            g.setTransform(affineTransform);
132
//            g.setColor(Color.red);
133
//            //Rectangle2D.intersect(extent,extentBounding,extent);
134
//            g.setStroke(new BasicStroke(5));
135
//            g.drawRect((int)extent.getX(),(int)extent.getY(),(int)extent.getWidth(),(int)extent.getHeight());
136
//            g.setStroke(new BasicStroke(0));
137
//            g.setColor(new Color(100, 100, 100, 100));
138
//            g.fill(extent);
139
//
140
//            // dibujamos las l?neas vertical y horizontal
141
//            Point2D pRightUp = vp.toMapPoint((int) (r.getWidth() + r.getX()), 0);
142
//
143
//            Line2D.Double linVert = new Line2D.Double(extent.getCenterX(),
144
//                    extentView.getMinY(), extent.getCenterX(), extentBounding.getY());
145
//            Line2D.Double linHoriz = new Line2D.Double(extentBounding.getX(),
146
//                    extent.getCenterY(), pRightUp.getX(), extent.getCenterY());
147
//
148
//            g.setColor(Color.darkGray);
149
//            g.draw(linVert);
150
//            g.draw(linHoriz);
151
//            g.setTransform(new AffineTransform());
152
//            g.setClip((int)clip.getX(),(int)clip.getY(),(int)clip.getWidth(),(int)clip.getHeight());
153
//
154
//
155
//            extent = null;
156
//        }
157
    }
158

  
89 159
    /**
90 160
     * Inserta el ProjectView de donde obtener las propiedades de la vista a
91 161
     * mostrar.
......
134 204
                    e1);
135 205
            }
136 206
        }
137
    }
138 207

  
208
	}
209

  
139 210
    /**
140 211
     * @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#getNameFFrame()
141 212
     */
142 213
    public String getNameFFrame() {
143 214
        return PluginServices.getText(this, "Localizador") + num;
144 215
    }
216
    public IFFrame cloneFFrame(Layout layout) {
217
        FFrameOverView frame = new FFrameOverView();
218
        frame.setLevel(this.getLevel());
219
        frame.setNum(this.num);
220
        frame.setName(this.getName());
221
        frame.setBoundBox(this.getBoundBox());
222
        frame.setTag(this.getTag());
223
        frame.m_Mode = this.m_Mode;
224
        frame.m_typeScale = this.m_typeScale;
225
        frame.m_extension = this.m_extension;
226
        frame.m_quality = this.m_quality;
227
        frame.m_viewing = this.m_viewing;
228
        frame.m_bLinked = this.m_bLinked;
229
        frame.m_mapUnits = this.m_mapUnits;
230
        frame.setRotation(this.getRotation());
231

  
232
        frame.m_Scale = this.m_Scale;
233
        frame.view=this.getView();
234
        frame.m_fmap = this.getMapContext();
235
        frame.setSelected(this.getSelected()!=IFFrame.NOSELECT);
236
        frame.setLayout(layout);
237
        frame.assoc_map=this.assoc_map;
238
        frame.extent=this.extent;
239
        if (frame instanceof IFFrameViewDependence) {
240
            ((IFFrameViewDependence) frame).initDependence(layout.getAllFFrames());
241
        }
242
        cloneActions(frame);
243
        return frame;
244
    }
145 245
}

Also available in: Unified diff