Revision 9075 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameLegend.java

View differences:

FFrameLegend.java
43 43
import java.awt.Color;
44 44
import java.awt.Font;
45 45
import java.awt.Graphics2D;
46
import java.awt.Image;
46 47
import java.awt.Rectangle;
47 48
import java.awt.geom.AffineTransform;
48 49
import java.awt.geom.Rectangle2D;
......
56 57
import com.iver.cit.gvsig.fmap.layers.FLayer;
57 58
import com.iver.cit.gvsig.fmap.layers.FLayers;
58 59
import com.iver.cit.gvsig.fmap.layers.FLyrAnnotation;
60
import com.iver.cit.gvsig.fmap.layers.FLyrRaster;
59 61
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
60 62
import com.iver.cit.gvsig.fmap.layers.layerOperations.Classifiable;
63
import com.iver.cit.gvsig.fmap.layers.layerOperations.IHasImageLegend;
61 64
import com.iver.cit.gvsig.fmap.rendering.ClassifiedLegendInfo;
62 65
import com.iver.cit.gvsig.gui.layout.Layout;
63 66
import com.iver.cit.gvsig.project.documents.exceptions.SaveException;
......
234 237
                    	n[0]++;
235 238
                    drawLegendOrToFFrame(g, re, h, (FLayers) layer, n, layout);
236 239
                    n[0]++;
237
                } else if (layer instanceof AlphanumericData) {
240
                } else if (layer instanceof AlphanumericData && !(layer instanceof IHasImageLegend) ) {
238 241
                    AlphanumericData cO = (AlphanumericData) layer;
239 242

  
240 243
                    if (((Classifiable) cO).getLegend() instanceof ClassifiedLegendInfo && !(cO instanceof FLyrAnnotation)) {
......
299 302
                        }
300 303
                        n[0]++;
301 304
                    }
302
                }else{
305
                }else if (layer instanceof IHasImageLegend){
306
                	Image image=((IHasImageLegend)layer).getImageLegend();
307
                	String path=((IHasImageLegend)layer).getPathImage();
308
                	FFramePicture picture=new FFramePicture();
309
                	BufferedImage bi = new BufferedImage(image.getWidth(null),
310
                            image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
311
                    Graphics2D biContext = bi.createGraphics();
312
                    biContext.drawImage(image, 0, 0, null);
313
                    picture.setImage(bi);
314
                    double dY = n[0] * h;
315
                    Rectangle2D rectImage=new Rectangle2D.Double(re.getX(),re.getY()+dY,re.getWidth(),h);
316
                   if (layout!=null) {
317
                    	picture.setBoundBox(FLayoutUtilities.toSheetRect(rectImage, layout.getAT()));
318
                    	picture.setPath(path);
319
                    	layout.addFFrame(picture, false, true);
320
                    }else {
321
                    	picture.setBoundBox(FLayoutUtilities.toSheetRect(rectImage,new AffineTransform()));
322
                        picture.draw(g,new AffineTransform(),re,bi);
323
                    }
324
                    n[0]++;
325
                }else {
303 326
                	double dX = 0;
304 327
                    double dY = n[0] * h;
305 328

  

Also available in: Unified diff