root / trunk / examples / exaTemplateLayout / src / com / iver / templateLayout / PrintingManager.java @ 6885
History | View | Annotate | Download (2.58 KB)
1 | 6423 | fjp | 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 | 6885 | fjp | fv.getMapContext().getViewPort().setExtent(feat.getGeometry().getBounds2D()); |
65 | 6423 | fjp | } |
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 | } |