Statistics
| Revision:

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

History | View | Annotate | Download (2.86 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.project.Project;
14
import com.iver.cit.gvsig.project.documents.layout.ProjectMap;
15
import com.iver.cit.gvsig.project.documents.layout.ProjectMapFactory;
16
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameText;
17
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameView;
18
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
19
import com.iver.cit.gvsig.project.documents.layout.gui.Layout;
20

    
21
public class PrintingManager {
22
        FLyrVect layer;
23
        Layout layout;
24

    
25
        public PrintingManager(FLayer layerProvin) {
26
                layer = (FLyrVect) layerProvin;
27
                ProjectExtension aux = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);
28
                Project theProject = aux.getProject();
29
                layout = ((ProjectMap) theProject.getProjectDocumentByName(
30
                                "FichaCurso", ProjectMapFactory.registerName)).getModel();
31
                
32
        }
33

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

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

    
84
}