Statistics
| Revision:

root / trunk / examples / exaTemplateLayout / src / com / iver / templateLayout / PrintingManager.java @ 6885

History | View | Annotate | Download (2.58 KB)

1
package com.iver.templateLayout;
2

    
3
import com.hardcode.gdbms.engine.values.ValueWriter;
4
import com.iver.andami.PluginServices;
5
import com.iver.cit.gvsig.ProjectExtension;
6
import com.iver.cit.gvsig.fmap.DriverException;
7
import com.iver.cit.gvsig.fmap.core.IFeature;
8
import com.iver.cit.gvsig.fmap.layers.FBitSet;
9
import com.iver.cit.gvsig.fmap.layers.FLayer;
10
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
11
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
12
import com.iver.cit.gvsig.fmap.layers.layerOperations.Selectable;
13
import com.iver.cit.gvsig.gui.layout.Layout;
14
import com.iver.cit.gvsig.gui.layout.fframes.FFrameText;
15
import com.iver.cit.gvsig.gui.layout.fframes.FFrameView;
16
import com.iver.cit.gvsig.gui.layout.fframes.IFFrame;
17
import com.iver.cit.gvsig.project.Project;
18

    
19
public class PrintingManager {
20
        FLyrVect layer;
21
        Layout layout;
22

    
23
        public PrintingManager(FLayer layerProvin) {
24
                layer = (FLyrVect) layerProvin;
25
                ProjectExtension aux = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);
26
                Project theProject = aux.getProject();
27
                layout = theProject.getLayoutByName("FichaCurso").getModel();
28
                
29
        }
30

    
31
        public void startPrinting() throws DriverException {
32
                Selectable select = (Selectable) layer;
33
                FBitSet bs = select.getSelection();
34
                SelectableDataSource rs = layer.getRecordset();
35
                
36
                for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) {
37
                        // operate on index i here }
38
                        IFeature feat = layer.getSource().getFeature(i);
39
                        
40
                        IFFrame[] theFrames = layout.getFFrames();
41
                        for (int j=0; j < theFrames.length; j++)
42
                        {
43
                                if (theFrames[j].getTag() != null)
44
                                {
45
                                        try {
46
                                                processFrame(theFrames[j], feat, rs );
47
                                        } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
48
                                                e.printStackTrace();
49
                                                throw new DriverException(e);
50
                                        }
51
                                }
52
                        }
53
                        layout.refresh();
54
                        layout.showPrintDialog(null);
55
                }
56
                
57
        }
58

    
59
        private void processFrame(IFFrame frame, IFeature feat, SelectableDataSource rs) throws com.hardcode.gdbms.engine.data.driver.DriverException {
60
                String tag = frame.getTag();
61
                if (tag.compareTo("VISTA1")==0)
62
                {
63
                        FFrameView fv = (FFrameView) frame;
64
                        fv.getMapContext().getViewPort().setExtent(feat.getGeometry().getBounds2D());
65
                }
66
                if (frame instanceof FFrameText)
67
                {
68
                        FFrameText ft = (FFrameText) frame;
69
                        ft.clearText();
70
                        int fieldId = rs.getFieldIndexByName(tag);
71
                        ft.addText(feat.getAttribute(fieldId).getStringValue(ValueWriter.internalValueWriter));
72
                }
73
//                if (tag.compareTo("1")==0)
74
//                {
75
//                        FFrameView fv = (FFrameView) frame;
76
//                        fv.getFMap().getViewPort().setExtent(feat.getGeometry().getBounds2D());
77
//                }
78
                
79
        }
80

    
81
}