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 |
} |